martedì 13 ottobre 2015

Il Mio Viaggio Nel Mondo Dell'Hacking - OverTheWire: Wargames (Bandit Level 0-2)

Poco tempo fa mi sono imbattuto in questo sito: OverTheWire: Wargames. Esso propone delle sfide "hacking" chiamate wargames. Ho pensato tra me e me "Why not?" ed ho iniziato dal livello Bandit (il sito stesso consiglia di iniziare da tale livello, il più facile). Ho completato le prime sfide. Mi si è aperto un mondo davanti. Ho deciso, quindi, di descrivere il mio viaggio nel mondo dell'hacking attraverso queste sfide. Non sarà una serie di Gameplay. Sarà un'opportunità per migliorare me stesso e chi legge, spiegherò il pensiero e il procedimento che c'è dietro il completamento delle sfide.

Bandit

Il livello Bandit consiste in alcune sfide dove occorre scoprire la password per passare al livello successivo. Le password si trovano sul server bandit.labs.overthewire.org ed è possibile connettersi ad esso tramite SSH.

SSH è un protocollo di connessione remota ad una macchina. In pratica mi connetto in remoto ad un PC ed eseguo dei comandi su esso. Ad esempio, posso visualizzare le cartelle, i file, creare cartelle (se il server me lo permette e non ci sono limitazioni), ecc...

La sfide consistono, appunto, nel connettersi a questo server e cercare, tra i vari file e cartelle, la password per il livello successivo.

Requisiti

Per giocare alle wargames, quindi, c'è bisogno di un sistema operativo Linux (per utilizzare il protocollo SSH). Io ti consiglio Kali Linux. Puoi tranquillamente installarlo su una penna USB e avviarlo. Ecco una guida che ti spiega come fare. Oppure puoi scaricarlo e avviarlo su una macchina virtuale (ad esempio VirtualBox).

Mano mano, scoprirai anche l'importanza di un sistema operativo Linux per un hacker.

Una volta che hai avviato il sistema operativo Linux apri il Terminale (il Prompt dei Comandi per intenderci). Ora siamo pronti per operare.

Livello 0

Bene. Il livello 0 di Bandit si presenta così: dobbiamo connetterci al server bandit.labs.overthewire.org con username bandit0 e password bandit0. C'è bisogno di conoscere l'inglese (lingua importante per un hacker).

Come facciamo a connetterci ad un server tramite protocollo SSH? Scopriamolo insieme. Digita da terminale ssh e poi premi Invio. Ti apparirà:


In pratica, ti viene mostrato come si usa SSH. L'ultima riga ti dice che devi digitare l'hostname, che nel nostro caso è bandit.labs.overthewire.org, eventualmente preceduto dall'username, nel nostro caso bandit0.

Per connetterci, dunque, dobbiamo scrivere da terminale (dopodiché premere Invio):
ssh bandit0@bandit.labs.overthewire.org
A volte, è probabile che ti chieda di continuare scrivendo "yes" oppure "no". Digita "yes" e premi Invio.


Ecco, ora ci chiede la password. La sappiamo: bandit0. Scrivila e premi Invio.


Ora ci siamo connessi. Il livello 0 ci ha chiesto solo di connetterci e l'abbiamo fatto. Livello completato!

Livello 1

Come passare dal livello 0 al livello 1. OverTheWire ci offre delle indicazioni se vai alla pagina Level 0 -> Level 1 (che non è altro che la pagine del livello 1).

Ci dice che sul server è presente il file readme che contiene la password per completare il livello 1. La password che troveremo ci servirà per accedere tramite SSH allo stesso server ma con username bandit1. Inoltre, ci vengono dati dei suggerimenti: i comandi di cui potremmo aver bisogno per superare il livello sono ls, cd, cat, file, du, find.

Ragioniamo: siamo connessi al server ed esso contiene un file chiamato readme che contiene ciò che cerchiamo. Ci viene in aiuto il comando ls. Questo comando ci fa visualizzare tutti i file e cartelle situati nel percorso dove attualmente ci troviamo.

Digita ls e premi Invio.


Bingo! Abbiamo trovato il file readme. Oltre ad esso non ci sono altri file nè cartelle.

Ora dobbiamo trovare un modo per visualizzare cosa c'è scritto nel file readme. Il comando cat ci scrive sul terminale tutto il contenuto di un file che gli diciamo. Digita, dunque:
cat readme
Ci viene stampata una scritta strana (sembra criptata). Bene, questa è la password per passare al livello 2. Copiala e segnatela sul blocco note.


Boom! Livello 1 completato.

Livello 2

Disconnettiti dal server scrivendo exit da terminale.

Riconnettiamoci, ma stavolta con username bandit1.
ssh bandit1@bandit.labs.overthewire.org
Come password inseriamo quella che abbiamo appena trovato.

Connessi! Andiamo alla pagina del livello 2. Ci dice che il file che contiene la password per il livello successivo si chiama "-" (un semplice trattino). Strano, molto strano.

Innanzitutto cerchiamo il file digitando da terminale:
ls
Ok. Abbiamo trovato il file, è nella directory principale (in cui ci troviamo appena connessi). Con lo stesso procedimento del livello precedente proviamo a vedere il contenuto del file grazie al comando cat:
cat -

Non ci viene mostrato nulla ed il cursore del terminale continua a lampeggiare. Il comando cat sembra essersi bloccato. Premi Ctrl + C per terminarlo.

Perché è successo questo? In pratica il trattino è un carattere speciale poiché con i trattini possono essere inseriti i parametri dei comandi. Dobbiamo fare in modo che il comando cat riconosca il trattino come nome del file di cui vedere il contenuto e non come carattere speciale per inserire un parametro. Ci viene in aiuto ./ che significa "cartella corrente", ovvero va a selezionare i file della cartella corrente. Scriveremo quindi:
cat ./-

In pratica nella cartella corrente (./) va a selezionare il file che si chiama "-".

Easy game! Password trovata. Segnatela su un blocco note che ci servirà per il prossimo livello che sarà un po' più arduo ma che comunque rientra nei limiti dell'aspirante hacker.

Conclusione

Spero che grazie a questi wargames tu stia imparando varie cose come l'utilizzare il terminale Linux e i differenti comandi (fino ad ora solo ls e cat).

Se vuoi che prosegua questa serie di articoli sui wargames o che ne cambi il format (ad esempio facendo video, anche se non voglio che diventi un Gameplay anziché un'opportunità di imparare) scrivi la tua opinione nei commenti.

19 commenti:

  1. Risposte
    1. Grande. Il tuo commento ed i commenti di chi, come me, ci mette impegno e passione nell'imparare l'arte dell'hacking mi caricano.

      Elimina
  2. Sono contento che hai ripreso FINALMENTE a fare guide, fai una guida su come hackerare un gioco online o la teoria, spiega i procedimenti teorici almno

    RispondiElimina
    Risposte
    1. Ciao Anonimo,

      l'ho già scritto in un altro commento (le richieste di guide sull'hacking dei giochi online sono parecchie) che, purtroppo, hackerare i giochi online (i multiplayer) non è semplice.

      Non basta un semplice Cheat Engine. Occorre comprendere a fondo il funzionamento e la gestione dei processi, gestione della RAM ed inoltre occorrono solide basi di un linguaggio di programmazione come C/C++.

      Potrei anche farne una guida ma essa diventerebbe "targetizzata" per una ristretta cerchia di persone che sanno programmare bene e sanno come un sistema operativo gestisce i processi. Ma chi già è esperto in tali tematiche non penso che legga questo blog che è adatto, attualmente, solo a chi è alle prime armi nel mondo dell'hacking.

      Al massimo potrei scrivere, come mi hai suggerito, degli articoli teorici che spieghino in maniera generale le varie tecniche per hackerare un gioco online (ad esempio DLL Injection).

      PS: Ti ringrazio per il tuo entusiasmo. Esso mette in moto la mia voglia e passione nello scrivere gli articoli.

      Elimina
    2. Driverfury ha ragione programmare dei cheats per i giochi multiplayer non è cosa semplice. Bisogna conoscere molto bene il C o C++, gestione della ram, modifica di un programma con la tecnica della dll injection. Per modificare un programma del quale non si dispone del codice sorgente bisogna per forza sapere il reverse engineering quindi conoscere l'assembly. Essendo giochi comporta anche avere conoscenza delle opengl\directx a seconda con quale framework è stato realizzato.
      Per non dimenticare che ci sono i cheat e gli Undetected cheat quelli che bypassano gli anti cheat vedi pb ecc.
      Io anni fa ne realizzai uno per COD4, prevedeva wallhack, chams e minimap ed era Undetected, ma vi posso garantire che una guida non basta, per imparare ci va un sacco di tempo di conoscenze e di notti a prendere a testate il muro perchè le cose non funzionano come dovrebbero. Qui potete trovate del materiale http://www.unknowncheats.me/forum/call-duty-4-modern-warfare/ c'era un'altro forum con tantissimo materiale ma sembra che abbia chiuso era http://www.gamedeception.net/forum.php

      Elimina
  3. Grande continua cosi! Le tue guiede sono utili,dettagliate,facili da imparare,ed efficaci!
    Continua a fare nuovi video magari con nuove tecniche ;)

    RispondiElimina
    Risposte
    1. Grazie. Per quanto riguarda i video, attualmente non ho il tempo per registrare e montare. Inoltre, per questa serie di guide in particolare, penso che siano piuttosto svantaggiosi, il tutto rischierebbe di diventare una serie di Gameplay.

      Elimina
  4. Perche' non riesco ad arrivare al livello 2? c'e quando mi chiede la password io la inserisco ma non mi fa entrare ho provato a fare copia ed incolla con ctrl+c e ctrl+ v e non mi fa entrare,ho scritto pure la password normalmente ma nemmeno mi fa entrare...MI AIUTI GRAZIE!!

    RispondiElimina
    Risposte
    1. Sul terminale Linux Ctrl + V per incollare non funziona. Seleziona la password col puntatore del mouse, tasto destro e copiala. Quando la devi inserire, premi il taso destro e incolla.

      Elimina
  5. Questo commento è stato eliminato dall'autore.

    RispondiElimina
  6. Spettacolare! Vedo questi wargame come una fantastica opportunità per imparare proprio a diventare un hacker! Grazie a persone come te i sogni di molti aspiranti hacker (come me) si possono realizzare :D

    RispondiElimina
  7. Spettacolare! Vedo questi wargame come una fantastica opportunità per imparare proprio a diventare un hacker! Grazie a persone come te i sogni di molti aspiranti hacker (come me) si possono realizzare :D

    RispondiElimina
    Risposte
    1. Grazie! Questi sono i commenti che voglio leggere.

      Elimina
  8. Se davvero si è appasionati di hacking bisogna usare una distro gnu/linux...kali linux e parrot sec sono le migliori..fai delle guide su come usare sql map, metasploit, vppn ecc...

    RispondiElimina
    Risposte
    1. Grazie Anonimo, mi hai dato delle idee per nuovi articoli.

      Elimina
  9. No non fare video preferisco capire da solo attraverso la lettura

    RispondiElimina
  10. voglio il resto della guida, sei un grnde

    RispondiElimina
    Risposte
    1. Certo che arriveranno altri video, non appena trovo un po' di tempo. Grazie a te.

      Elimina