Alessandro : 13 Settembre 2023 08:41
Questo articolo fa seguito ai tre precedenti nei quali abbiamo creato un laboratorio AD. Vi invito a prenderne visione prima di proseguire, se ancora non l’aveste fatto poiché dopo un introduzione teorica passeremo alla dimostrazione pratica di questa prima sezione concernente gli attacchi che possiamo mettere in pratica su AD.
Dopo la parte pratica indicheremo come sia possibile mitigare l’eventualità di tali attacchi, la cosa da notare é che non sfruttiamo delle falle nel sistema ma delle caratteristiche intrinseche di Windows AD.
Un attacco LLMNR (Link-Local Multicast Name Resolution) poisoning è una forma di attacco “on path” (precedentemente conosciuto come Man In the Middle e rinominato per motivi di partitá dei sessi) che mira a compromettere la risoluzione dei nomi di host su una rete locale.
Sei un Esperto di Formazione?
Entra anche tu nel Partner program!
Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.
Per ulteriori informazioni, scrivici ad [email protected] oppure su Whatsapp al 379 163 8765
Supporta RHC attraverso:
L’LLMNR è un protocollo utilizzato da sistemi Windows per risolvere i nomi di host quando il servizio DNS (Domain Name System) non è disponibile o non riesce a fornire una risposta. Questo protocollo opera tramite richieste di multicast inviate su una rete locale.
Ecco come funziona un attacco LLMNR poisoning:
Le conseguenze di un attacco LLMNR poisoning possono variare a seconda degli obiettivi dell’attaccante. Tuttavia, in generale, ciò può consentire all’attaccante di intercettare o manipolare il traffico di rete, compiere attacchi di tipo “man-in-the-middle” (MITM) e ottenere accesso non autorizzato a risorse o informazioni di rete sensibili.
Bene questa é la teoria, ma rimbocchiamoci ora le maniche ( o tiriamoci su il cappuccio della nostra “hoodie” 🙂) ,e passiamo alla pratica sul laboratorio creato in precedenza.
Dalla sezione “macchine virtuali” del nostro lab avviamo tutte e 4 le macchine:
e connettiamoci tramite SSH con la macchina kali, controllando successivamente che le atre macchine siano visibili sulla nostre rete:
controlliamo la nostra interfaccia di rete con il comando IP A ( eth0 ):
ed avviamo responder, per cercare di intercettare il traffico di rete che ci interessa:
responder -I eth0 -dwv
senza preoccuparci troppo, per ora. delle impostazioni che possiamo consultare con -help / man.
Ora come vediamo qui sopra , vediamo tutti i servers che RESPONDER ha attivato e che saranno “in the middle” tra noi e la vittima, RESPONDER sta inoltre ascoltando che avvenga un “evento” cioé la richiesta di risoluzione di una risorsa di rete , noi simuleremo la ricerca di una share di rete che non esiste, in modo che, quando il server risponderà in maniera negativa , tale richiesta sarà inoltrata a tutta la rete, e noi vi risponderemo spacciandoci per la risorsa richiesta.
Su una delle macchine windows cerchiamo una risorsa inesistente, una cosa che può capitare a qualsiasi utente per vari motivi (qui per semplicità ai fini della dimostrazione punto all IP della macchina KALI):
qui avremo in “agguato” il server SMB creato da responder che intercetterà il traffico dell’utente “sesposito”:
IP
username
NTLMv2 hash
da qui in avanti abbiamo due scelte: cercare di indovinare una password contro una lista di password deboli o molto usate (nel caso in cui sia in vigore un password policy debole potremmo avere successo) od usare l’hash cosi com’é in un attacco “pass the hash”.
Vediamo tramite il tool “hashcat” come si potrebbe fare nel primo caso.
Copiamo il nostro hash e lo inseriamo in un file di testo:
prima di tutto settiamo HASHCAT sul tipo di hash da crakkare , tra poco spiegherò meglio di cosa si tratta:
hashcat -m 5600 ntlmhash.txt wordlist
5600 corrisponde al tipo di hash NTLMv2 , tramite il comando —help e filtrando (la lista come vedrete è lunghissima, basta digitare “hashcat —help” per vederla tutta) con “grep” , otteniamo tale numero di modulo:
dopodiché ci servira una “wordlist” una lista di parole contro cui hashcat cercherà di crakkare il nostro hash, qui useremo la famosa “rockyou” 140 mega circa , milioni e milioni di password , ma vi soni moltissime liste a disposizione contenenti svariati miliardi di password,
https://github.com/danielmiessler/SecLists
ne troverete moltissime e di diverso tipo, ovviamente più la password è complessa e più sarà lungo il processo anche in diretta relazione alla CPU o meglio GPU che useremo.
ho copiato per comodità sulla mia home e decompresso la lista :
ora possiamo procedere :
hashcat -m 5600 ntlmhash.txt rockyou.txt
e…non funzionerà , perchè la vm a nostra disposizione non è abbastanza potente (in pratica stiamo chiedendo troppa potenza di calcolo rispetto a quella allocata da Azure per noi); fortunatamente possiamo fare tutto sulla nostra macchina locale! andiamo allora:
installiamo hashcat sulla macchina FISICA che stiamo usando (un mac per me) , scarichiamo la lista “rockyou ” e copiamo ed incolliamo il nostro hash in un file di testo:
e da qui la sintassi é la stessa:
ed ecco la password dell’utente “sesposito” :
So che starete pensando che nella vita reale, in un pentesting vero, la password sarebbe sicuramente piu complessa, ed é molto probabile ma in un pentest vero avreste probabilmente a disposizione un hardware per il cracking molto ma molto più potente una o meglio varie GPU (molto piu efficienti delle CPU) che lavorando insieme possono utilizzare
La velocità di un sistema di cracking basato su GPU può variare notevolmente in base a fattori come i modelli di GPU, il numero di GPU, l’ottimizzazione del software, la VRAM, la frequenza di clock e la complessità degli algoritmi e delle password. Le GPU di fascia alta possono eseguire miliardi o trilioni di operazioni al secondo. Più GPU, software ben ottimizzato e una maggiore VRAM generalmente si traducono in velocità di cracking più elevate. Tuttavia, la velocità effettiva dipende dalla configurazione specifica e dalla complessità del compito, con valori che vanno da migliaia a milioni di hash o tentativi di password al secondo. Hardware veloci ed ottimizzati in meno di un’ora possono quindi esaurire molti miliardi di passwords, e generalmente gli esseri umani non hanno un grande inventiva o sono semplicemente pigri. Inoltre conviene spesso provare combinazioni di password relative al nome dell’azienda magari con qualche numero del tipo : “Nomeazienda1*” o “Nomeazienda10!”.
Per difendersi dagli attacchi di LLMNR (Link-Local Multicast Name Resolution) Poisoning, è importante adottare diverse misure di sicurezza:
Nel prossimo articolo vedremo come utilizzare l’hash senza doverlo crackare.