GNU/Linux >> Linux Esercitazione >  >> Linux

Come guidare per decifrare gli hash delle password con Hashcat usando il metodo del dizionario

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...

BUON CRACKING!


Linux
  1. Guida completa per l'utilizzo di AsciiDoc in Linux

  2. SSHPass:come eseguire SSH in un server utilizzando uno script senza password (in modo non interattivo)

  3. Come installare e utilizzare Hashcat per il recupero della password su Linux:[Cyber ​​Forensics]

  4. Errore nell'utilizzo di GRANT con IDENTIFIED by password in MySQL

  5. Come ottenere una traccia dello stack per C++ usando gcc con le informazioni sul numero di riga?

Come reimpostare una password di Windows con Linux

Come integrare Grafana con Prometheus per il monitoraggio

Come modificare la password in Linux – Guida passo passo

Come cercare LDAP usando ldapsearch (con esempi)

Come proteggere GRUB con password in Linux?

Come aggiungere la protezione tramite password per una directory utilizzando cPanel