Come utilizzare i migliori strumenti di hacking di Linux

I sistemi operativi basati su Linux e Unix sono stati al centro dei settori della sicurezza delle informazioni, della sicurezza delle reti, della crittografia, ecc. Sono dotati di un'ampia varietà di strumenti destinati a scopi di sicurezza informatica.

Diamo un'occhiata a tre di questi strumenti: Aircrack-ng, Jack The Ripper e Radare2.

Suite Aircrack-ng

La suite Aircrack-ng è forse il set più utilizzato di strumenti per lo sniffing della rete WiFi e l'acquisizione di password. Ha lo scopo di decifrare le password di rete wireless del protocollo IEEE 802.11, che sono per lo più protette dagli standard Wifi Protected Access (WPA) o Wifi Protected Access 2 (WPA2) e autenticate dal metodo di autenticazione Pre-Shared Key (PSK).

Offre programmi separati per monitorare lo stato dei dispositivi di rete, acquisire pacchetti e scaricare file, decifrare password, ecc.

Nota che crackare WPA/WPA2 usando cripto-algoritmi è stato trovato dai ricercatori quasi impossibile. Quindi, il modo per craccare WPA/WPA2 con programmi come aircrack-ng è Brute Force e richiede un dizionario di password per craccarlo. Ciò significa che può decifrare la password solo se la password è una parola del dizionario.

Puoi facilmente installare Aircrack-ng sul tuo sistema utilizzando lo script di installazione fornito da packagecloud.io. Apri il terminale ed esegui i seguenti comandi in base al tipo di sistema operativo Linux.

Nelle distribuzioni basate su Debian, eseguire il seguente comando:

curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash

Per Red Hat Package Manager (RPM), eseguire il seguente comando:

curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash

Ora proviamo a decifrare la password di una rete Wi-Fi locale utilizzando Aircrack-ng.

Prima di tutto, esegui il comando iwconfig per trovare il nome dell'interfaccia di rete wireless.

iwconfig

Qui, wlp2s0 è il nome della mia interfaccia wireless. ESSID, ovvero il nome della rete è "tmp", che è il nome della rete Wifi a cui sono connesso.

Useremo il airmon-ng comando per avviare un'interfaccia del monitor di rete su wlp2s0.

sudo airmon-ng start wlp2s0

Cerca la riga alla fine per trovare l'interfaccia della modalità monitor. Nell'esempio sopra, è lun0. Ora inizieremo a catturare i pacchetti di rete eseguendo il airodump-ng in poi lun0.

sudo airodump-ng mon0 -w log

Visualizza un monitor dei pacchetti di rete catturati da reti diverse. Il -w log parte è per salvare i pacchetti di rete nei file di registro. Il prefisso dei file di registro sarà la parte specificata dopo -w, in questo caso "log".

Affinché il programma catturi la chiave hash della passphrase, deve avvenire un handshake WPA sulla rete, ovvero un utente dovrebbe provare a connettersi ad essa. L'utente può disconnettere da solo il suo Wifi e riconnettersi ad esso. Nell'angolo in alto a destra ora, notifica che è stata rilevata una stretta di mano WPA.

Ora premi Ctrl + C per terminare il dump. Puoi vedere i file di registro generati nella cartella corrente.

Il prossimo e ultimo passo è eseguire aircrack-ng con un dizionario per vedere quale parola corrisponde alla chiave hash intercettata dalla stretta di mano.

aircrack-ng log-01.cap -w tmpdict.txt 

Qui log-01.cap è il file di log generato da airodump-ng comando e tmpdict.txt è il file del dizionario. Diversi grandi dizionari sono disponibili online che possono essere scaricati e utilizzati qui.

Per selezionare una rete di destinazione, immettere il numero di indice per la rete dall'elenco di reti mostrato sullo schermo.

Se una chiave viene trovata nel dizionario, si fermerà e visualizzerà il seguente messaggio.

È ovvio che in caso di file di dizionario più grandi, il programma impiegherà più tempo per l'esecuzione, poiché controlla ogni voce nel dizionario.

Come accennato in precedenza, la password può essere decifrata solo se è presente nel file del dizionario. La sicurezza WPA è abbastanza forte che l'uso di qualsiasi algoritmo crittografico non consentirà il cracking della password. Quindi, è una buona pratica avere una password lunga e forte con più caratteri speciali sul tuo dispositivo Wifi, in modo che qualsiasi tipo di attività di cracking della password non riesca mai.

Giovanni lo Squartatore

John the Ripper è uno strumento utilizzato per decifrare password Unix deboli. È uno strumento molto facile da usare invocato sui file di password. Funziona in tre modalità.

Modalità singola

Controlla tutti i campi GECOS per la password, ovvero controlla la password nelle informazioni sull'account utente; nome utente, nome, cognome, ecc.

sudo john --single /etc/shadow

Modalità elenco di parole

Controlla la password con ogni voce da un file di elenco di parole (dizionario).

sudo john --wordlist=passlist.txt /etc/shadow

Qui, la password dell'utente "user3" è "admin". John è stato in grado di decifrarlo perché la frase "admin" era presente nel file passlist.txt.

Modalità incrementale

Controlla tutte le possibili combinazioni per un intervallo configurato. Per impostazione predefinita, considera tutti i caratteri nel set di caratteri ASCII e tutte le lunghezze da 0 a 13. Inutile dire che, a seconda dell'intervallo configurato, questa modalità può richiedere un'enorme quantità di tempo per l'esecuzione.

La configurazione per questo può essere modificata in /etc/john/john.conf file.

sudo john --incremental /etc/shadow

Radare2

Radare2 (alias r2) è uno strumento di reverse engineering per Linux. Può disassemblare, eseguire il debug di un file binario eseguibile, con un enorme elenco di opzioni per manipolare i dati in fase di esecuzione.

Vediamo come disassemblare un programma C molto piccolo usando r2. Si noti che per utilizzare lo strumento è necessaria una conoscenza di base del linguaggio assembly.

Innanzitutto, crea un piccolo programma C in vim o in qualsiasi editor di tua scelta.

/*test.c*/ #include int main() { int i = 0; printf("%d\n", io); restituisce 0; }

Come puoi vedere, tutto ciò che fa questo programma è memorizzare la cifra 0 in una variabile e accedere alla variabile per stamparla.

Ora compileremo il programma.

gcc test.c -o test

Viene creato un file eseguibile nella directory corrente con il nome "test". Eseguilo per vedere l'output '0'.

./test

Installiamo r2 ora. Il nome del pacchetto in Ubuntu e distribuzioni simili è radare2.

sudo apt install radare2

Nota: Per le versioni precedenti di Ubuntu (versione 14.04 e precedenti), è necessario utilizzare apt-get dovrebbe essere usato al posto di adatto.

Ora avvieremo il prompt dei comandi r2 con il nostro file eseguibile, "test".

prova r2

Per ottenere l'elenco dei sottocomandi, inserisci ?. Per esempio. per ottenere l'elenco dei sottocomandi per il comando un, accedere un?

un?

Eseguiremo il sottocomando aa, che analizzerà il file binario completo. Non produrrà nulla. Ma dopo aver analizzato il binario, possiamo usare il P? sottocomandi per disassemblare il codice.

Successivamente, passiamo a principale funzione del programma. Ogni programma C eseguibile ha il principale funzione come punto di partenza.

è principale

Puoi vedere che il prefisso del prompt ha cambiato l'indirizzo di memoria corrente, cioè, il programma viene ora cercato all'indirizzo della funzione principale.

Successivamente usiamo il sottocomando PDF, che stamperà il disassemblaggio di una funzione. Lo chiamiamo con sym.main, che è il nome della funzione principale in linguaggio assembly.

pdf sym.main

Come possiamo vedere nello screenshot qui sopra, abbiamo lo smontaggio completo del nostro programma C. Ora possiamo analizzare cosa sta facendo il programma leggendo l'assembly.

Per esempio, mov dword [rbp-0x4], 0x0 è l'assegnazione di un valore (0) a una posizione di memoria rbp – puntatore di base, 0x4 — Dimensione della memoria richiesta per un numero intero.

abbiamo chiama sym.imp.printf, che stamperà il contenuto del registro eax, ovvero il valore 0.

Ci sono molte più opzioni per la manipolazione e il debug del flusso di un programma in r2. Puoi provare altre opzioni che vengono mostrate con il ? comando. Per salvare qualsiasi output di registro o disassemblaggio in un file, puoi reindirizzare l'output come di seguito:

pdf principale > principale.s

Questa era la panoramica di alcuni degli strumenti di hacking più utilizzati in Linux. Se hai trovato utile questa pagina, assicurati di condividerla nelle tue community online preferite.