Abbiamo visto dal nostro precedente articolo Come installare Hashcat. Inoltre abbiamo visto l'uso di Hashcat con esempi pre-raggruppati. Ora, decidiamo le password sulle tue macchine Linux, un esempio del mondo reale!
Crea un utente su Linux
Innanzitutto su una finestra di terminale, crea un utente e imposta una password come mostrato di seguito. Puoi anche seguire Come creare manualmente un account utente Linux. Puoi impostare la password come:qwerty per questo scopo di esempio.
[root@cloud2 ~]# useradd ramya [root@cloud2 ~]# passwd ramya Changing password for user ramya. New password: Retype new password: passwd: all authentication tokens updated successfully.
Visualizzazione dell'hash della password
Nella finestra del terminale, esegui il comando seguente per visualizzare l'hash generato per la password "qwerty" per l'utente ramya .
[root@cloud2 ~]# tail -n 1 /etc/shadow ramya:$6$6SA.1X/l$JkVyIvJu.JAN6g8gIHyh9FWj3rAQ...yAf5hLFltzi1624A4rtcuxluzg75hh2bSGqv2bPZHaQYGHvD/ziOUD0:16790:0:99999:7:::
Trovare il tuo valore di sale
Osservando il valore hash sopra riportato, seguendo il nome utente “ramya “, Il valore $6$ indica l'hash della password di tipo 6 (SHA512). I caratteri dopo $6$, fino al prossimo $ indicano il sale.
In quanto sopra, il SALE è:6SA.1X/l
Segui questo articolo per saperne di più su Cos'è l'hashing delle password, Come vengono craccati gli hash, SALTS e i suoi casi d'uso, ecc.
Come trovare l'algoritmo di hashing usato su Linux
L'algoritmo di hashing è definito nel file:/etc/login.defs. Cerca la parola "ENCRYPT_METHOD" per trovare l'algoritmo di hashing definito:
[root@cloud2 ~]# grep -rn ENCRYPT_METHOD /etc/login.defs 65:ENCRYPT_METHOD SHA512
Come vedi, la mia macchina Linux utilizza il tipo di hash SHA-512.
Estrazione dell'hash dal file /etc/shadow e creare un file hash
[root@cloud2 ~]# tail /etc/shadow | grep "ramya" | awk -F':' '{print $2}' >> password.hash
Inserisci uno o più hash su una riga separata per decifrare più hash alla volta nel file password.hash.
Elenco delle password comuni disponibili online
Bene, useremo un elenco di password comuni per decifrare i nostri hash. Le password comuni possono essere scaricate dai seguenti link:
From John the Ripper tool: John.txt.bz2
From Cain & Abel : Cain.txt.bz2
500 Common Passwords : 500-worst-passwords.txt.bz2
370 Banned Twitter Passwords: twitter-banned.txt.bz2
Puoi anche ottenere alcune altre password che sono state trapelate o rubate da siti Web famosi come phpbb, myspace, hotmail ecc., Da qui.
Innanzitutto, proviamo con solo 500 password comuni.
Scarica le 500 password comuni
[root@cloud2 ~]# wget http://downloads.skullsecurity.org/passwords/500-worst-passwords.txt.bz2
[root@cloud2 ~]# bunzip 500-worst-passwords.txt.bz2
Decifrare l'hash usando Hashcat
L'utilizzo di base di hashcat è il seguente:
[root@cloud2 ~]# hashcat [options] hashfile [mask|wordfiles|directories]
Opzioni:
-m, --hash-type=NUM -a, --atack-mode=NUM -o, --ouput-file=NUM --remove Enable remove of hash once it is cracked.
Abbiamo visto dall'alto che il nostro hash è di tipo 6. Quindi useremo:–hash-type=1800 . Se il tuo /etc/login.defs usa MD5, allora il tipo di hash sarebbe –hash-type=500 e lo stesso vale per altri tipi di hash. Alcuni di loro sono mostrati di seguito:
100 = SHA1 500 = md5crypt, MD5(Unix) 1400 = SHA256 1700 = SHA512 1800 = SHA-512(Unix)
Poiché stiamo provando il cracking basato sul dizionario, useremo la modalità di attacco come –atack-mode=0 .Le altre modalità di attacco sono:
0 = Straight 1 = Combination 2 = Toggle-Case 3 = Brute-force 4 = Permutation 5 = Table-Lookup 8 = Prince
Puoi ottenere l'elenco di Hash-Type e modalità di attacco usando l'aiuto di hashcat.
Consente di inviare gli hash trovati in un nuovo file chiamato found.txt e rimuovere l'hash corrispondente dal file password.hash. Quindi alla fine il comando sarebbe:
[root@cloud2 ~]# hashcat -m 1800 -a 0 password.hash 500-worst-passwords.txt Initializing hashcat v2.00 with 2 threads and 32mb segment-size...
Added hashes from file password.hash: 1 (1 salts) Activating quick-digest mode for single-hash with salt
$6$EeKhjLd3$ogjAhHz5KFkcTUH6h5LP7j3HFhd83DL8KFXKbWQiisahKmexoA71yuJuM1MmbA.ZGU/qySl0xoo2FNqG6NNlv.:qwerty
All hashes have been recovered
Input.Mode: Dict (500-worst-passwords.txt) Index.....: 1/1 (segment), 500 (words), 3493 (bytes) Recovered.: 1/1 hashes, 1/1 salts Speed/sec.: - plains, 131 words Progress..: 132/500 (26.40%) Running...: 00:00:00:01 Estimated.: 00:00:00:02
Started: Mon Dec 21 12:14:20 2015 Stopped: Mon Dec 21 12:14:21 2015
[root@cloud2 ~]# cat found.txt $6$EeKhjLd3$ogjAhHz5KFkcTUH6h5LP7j3HFhd83DL8KFXKbWQiisahKmexoA71yuJuM1MmbA.ZGU/qySl0xoo2FNqG6NNlv.:qwerty
Dal calcolo sopra, siamo stati in grado di decifrare l'hash e vedresti l'hash, con la password crackata "qwerty" alla fine, come mostrato sopra:
Consente di creare molti account con password poco complesse. Ora decidiamo questi hash con una gamma più ampia di password del dizionario ottenute da più elenchi:
[root@cloud2 ~]# wget http://downloads.skullsecurity.org/passwords/john.txt.bz2 [root@cloud2 ~]# wget http://downloads.skullsecurity.org/passwords/cain.txt.bz2 [root@cloud2 ~]# wget http://downloads.skullsecurity.org/passwords/twitter-banned.txt.bz2 [root@cloud2 ~]# wget http://downloads.skullsecurity.org/passwords/500-worst-passwords.txt.bz2 [root@cloud2 ~]# bunzip2 john.txt.bz2 500-worst-passwords.txt.bz2 twitter-banned.txt.bz2 cain.txt.bz2 [root@cloud2 ~]# cat john.txt 500-worst-passwords.txt twitter-banned.txt cain.txt >> dictionary-passwords.txt
Ora abbiamo un enorme elenco di password che le persone normalmente usano nel file:dictionary-passwords.txt
Ora testiamo i nostri nuovi hash con queste numerose password.
[root@cloud2 ~]#hashcat -m 1800 -a 0 -o found.txt --remove password.hash dictionary-passwords.txt Initializing hashcat v2.00 with 2 threads and 32mb segment-size... Added hashes from file password.hash: 2 (2 salts) [s]tatus [p]ause [r]esume [b]ypass [q]uit => r Input.Mode: Dict (/tmp/dictionary-passwords.txt) Index.....: 1/1 (segment), 310683 (words), 3177794 (bytes) Recovered.: 0/2 hashes, 0/2 salts Speed/sec.: 251 plains, 125 words Progress..: 310683 /310683 (100.00%) Running...: 00:00:41:13 Estimated.: --:--:--:-- Started: Tue Dec 22 06:48:06 2015 Stopped: Tue Dec 22 07:29:19 2015
Fortunatamente, i nuovi hash non possono essere violati! Ciò significa che devi aumentare ancora di più la tua base di password...