Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

LLMNR Poisoning su Microsoft Active Directory: Analisi e Contromisure Efficaci

Alessandro Molinari : 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.

L’attacco:

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.


Distribuisci i nostri corsi di formazione diventando un nostro Affiliato

Se sei un influencer, gestisci una community, un blog, un profilo social o semplicemente hai tanta voglia di diffondere cultura digitale e cybersecurity, questo è il momento perfetto per collaborare con RHC Academy. Unisciti al nostro Affiliate Program: potrai promuovere i nostri corsi online e guadagnare provvigioni ad ogni corso venduto. Fai parte del cambiamento. Diffondi conoscenza, costruisci fiducia, genera valore.

Contattaci tramite WhatsApp al 375 593 1011 per richiedere ulteriori informazioni oppure scriviti alla casella di posta [email protected]



Supporta RHC attraverso:


Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.


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:

  1. Un dispositivo malevolo si inserisce nella rete locale e monitora il traffico LLMNR sulla rete, se stiamo conducendo un pentest, é utile lanciare lo strumento che useremo “responder” al mattino appena la maggior parte delle persone che lavorano nell’azienda che ci ha ingaggiati o subito dopo pranzo, quando le perse tornano al lavoro dopo la pausa, al fine di avere più traffico a disposizione da poter intercettare .
  2. Quando un dispositivo inizia a cercare di risolvere un nome di host utilizzando LLMNR, il dispositivo malevolo risponde con informazioni falsificate, affermando di essere il sistema cercato.
  3. Il dispositivo che ha effettuato la richiesta di risoluzione del nome riceve quindi una risposta falsificata ed inizia a comunicare con il dispositivo malevolo anziché con il dispositivo legittimo inviando il proprio IP , il nome utente e l’NTLM hash della password dell’utente.
  4. Tale hash (dipendendo dalla complessità della password) può essere craccato con uno strumento come Hashcat od addiritura utilizzato cosi com’è con un attacco “pass the hash”

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:

HASH CRACKING CON HASHCAT

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

MITIGAZIONE

Per difendersi dagli attacchi di LLMNR (Link-Local Multicast Name Resolution) Poisoning, è importante adottare diverse misure di sicurezza:

  1. Disabilitare LLMNR: La soluzione più efficace è disabilitare completamente LLMNR nelle impostazioni del sistema operativo dei tuoi dispositivi. Questo impedisce agli aggressori di sfruttare questo protocollo.
  2. Utilizza DNS: Assicurati che la tua rete utilizzi un server DNS affidabile e configura tutti i dispositivi per utilizzare esclusivamente il server DNS specificato. In questo modo, i dispositivi non cercheranno di risolvere i nomi tramite LLMNR.
  3. Implementa DHCP sicuro: Utilizza il protocollo DHCP (Dynamic Host Configuration Protocol) in modo sicuro per assegnare indirizzi IP ai dispositivi nella tua rete. Questo impedirà ai dispositivi di utilizzare indirizzi IP autoassegnati, che possono essere utilizzati per gli attacchi LLMNR Poisoning.
  4. Aggiorna e patcha: Mantieni sempre aggiornati i tuoi sistemi operativi, le applicazioni e i dispositivi. Le patch e gli aggiornamenti spesso correggono le vulnerabilità note.
  5. Firewall: Configura un firewall per bloccare il traffico LLMNR in ingresso e in uscita, a meno che non sia strettamente necessario. Questo può impedire agli aggressori di sfruttare il protocollo.
  6. Monitoraggio del traffico: Implementa un sistema di monitoraggio del traffico di rete per individuare attività sospette o anomalie che potrebbero indicare un attacco LLMNR Poisoning in corso.
  7. Educa gli utenti: Fornisci formazione agli utenti sulla sicurezza delle reti. Insegnagli a riconoscere i potenziali segni di attacchi e come segnalare comportamenti sospetti.
  8. Utilizza VPN: Utilizza una VPN (Virtual Private Network) per crittografare il traffico di rete tra i dispositivi nella tua rete. Questo può proteggere il traffico da attacchi di intercettazione.
  9. Segmenta la rete: Suddividi la tua rete in segmenti isolati in base alle funzioni e ai livelli di sicurezza necessari. Questo può limitare la diffusione di attacchi in caso di compromissione di un segmento.
  10. Regole di accesso (NAC): Configura regole di accesso per controllare chi può accedere ai tuoi dispositivi e alle risorse di rete. Limita l’accesso solo a utenti autorizzati.

Nel prossimo articolo vedremo come utilizzare l’hash senza doverlo crackare.

Th3R3dP1ll
Direttore di Crociera per 6 mesi all'anno, parla Italiano, Inglese, Tedesco, Francese, Spagnolo, Portoghese, Russo e sta attualmente studiando Giapponese (quest'ultima senza grandi risultati... :) ). Detiene Comptia A+ , Network+ , Security+ Pentest+ ed eJPT e sta studiando per eCCPT e PNPT. Nel tempo libero fa sport e legge/ascolta libri dai 60 ai 120 minuti al giorno. Sostiene che con grandi poteri arrivino grandi responsabilitá, come quelle di educare chi ha difficoltà a navigare il mondo digitale ed eventualmente difenderlo/a dai “pirati” e dalle entità che danneggiano il pianeta e la libertà delle persone. Sostiene inoltre che il futuro naturale della vita biologica sia la fusione ed integrazione con il digitale, transizione che tra l'altro è già iniziata con il movimento del transumanesimo del quale é sostenitore.

Lista degli articoli

Articoli in evidenza

Da AI white ad AI black il passo è breve. Nuovi strumenti per Script Kiddies bussano alle porte

I ricercatori di Okta  hanno notato che aggressori sconosciuti stanno utilizzando lo strumento di intelligenza artificiale generativa v0 di Vercel per creare pagine false che imitano qu...

Se è gratuito, il prodotto sei tu. Google paga 314 milioni di dollari per violazione dei dati agli utenti Android

Google è al centro di un’imponente causa in California che si è conclusa con la decisione di pagare oltre 314 milioni di dollari agli utenti di smartphone Android nello stato. Una giu...

CTF di RHC 2025. Ingegneria sociale in gioco: scopri la quarta “flag” non risolta

La RHC Conference 2025, organizzata da Red Hot Cyber, ha rappresentato un punto di riferimento per la comunità italiana della cybersecurity, offrendo un ricco programma di talk, workshop e compet...

Linux Pwned! Privilege Escalation su SUDO in 5 secondi. HackerHood testa l’exploit CVE-2025-32463

Nella giornata di ieri, Red Hot Cyber ha pubblicato un approfondimento su una grave vulnerabilità scoperta in SUDO (CVE-2025-32463), che consente l’escalation dei privilegi a root in ambie...

Hackers nordcoreani a libro paga. Come le aziende hanno pagato stipendi a specialisti IT nordcoreani

Il Dipartimento di Giustizia degli Stati Uniti ha annunciato la scoperta di un sistema su larga scala in cui falsi specialisti IT provenienti dalla RPDC i quali ottenevano lavoro presso aziende americ...