Password Guessing: Indovinare Credenziali per Forza Bruta (T1110.001)
La tecnica T1110.001 - Password Guessing appartiene alla tattica TA0006 (Credential Access) e rappresenta uno dei metodi più antichi e persistenti per ottenere accesso non autorizzato a sistemi remoti. L'attaccante, privo di conoscenza preliminare delle credenziali legittime, tenta iterativamente di indovinare le password su servizi esposti, spesso sfruttando liste di password comuni o dizionari ricavati da data breach pubblici.
I bersagli tipici sono servizi di management raggiungibili in rete: SSH (22), RDP (3389), SMB (445), LDAP (389), Kerberos (88), MSSQL (1433), MySQL (3306), VNC (5900) e portali web di autenticazione. In ambienti moderni la superficie si estende a SSO federati, applicazioni cloud come Office 365 e persino a interfacce Wi-Fi tramite API come wlanAPI.
La tecnica genera rumore significativo — in ambiente Windows produce eventi 4625 (logon failure) su SMB, mentre tentativi contro LDAP e Kerberos tendono a essere meno visibili nelle configurazioni di default. Il rischio operativo per l'attaccante è duplice: lockout degli account bersaglio e generazione di alert nei SOC. Nonostante ciò, i dati MITRE censiscono 2 gruppi APT e 9 famiglie malware che impiegano attivamente questa tecnica, dai webshell come China Chopper ai loader modulari come Emotet, fino a strumenti offensivi consolidati come CrackMapExec.
Per un red team, il password guessing va calibrato con estrema attenzione per evitare lockout massivi che comprometterebbero l'operazione e allerterebbero il cliente. La regola d'oro è low-and-slow: pochi tentativi per account, distribuiti nel tempo, mirati a credenziali statisticamente probabili.
Su bersagli SMB e servizi Windows, CrackMapExec (open source, ora evoluto in NetExec come fork mantenuto) è lo standard de facto. Un tentativo controllato contro un dominio si esprime tipicamente come:
nxc smb 10.10.10.0/24 -u users.txt -p 'Winter2024!' --continue-on-success
Il flag --continue-on-success permette lo spray di una singola password contro molti account, riducendo drasticamente il rischio di lockout rispetto al brute force classico. Prima di lanciare qualsiasi spray, è essenziale enumerare la lockout policy con nxc smb
Per SSH, Hydra (open source) resta lo strumento più diffuso, ma va usato con throttling aggressivo:
hydra -L users.txt -P passwords.txt -t 4 -W 30 ssh://target
Dove -t 4 limita i thread paralleli e -W 30 introduce attesa tra tentativi. Per RDP, NLBrute e lo stesso Hydra con modulo rdp sono opzioni valide, sebbene RDP moderno con NLA renda il guessing meno efficace senza credenziali parzialmente valide.
Su ambienti cloud e SSO, MSOLSpray (open source) permette password spray contro Azure AD/Entra ID gestendo automaticamente il rate limiting e rilevando MFA:
Invoke-MSOLSpray -UserList users.txt -Password 'Autumn2024!'
Per Office 365 e ADFS, o365spray (open source) offre funzionalità simili con supporto a enumerazione utenti preliminare. In fase di reconnaissance, strumenti come Kerbrute (open source) consentono di validare username via Kerberos senza generare eventi 4625, riducendo la visibilità:
kerbrute userenum --dc dc01.corp.local -d corp.local users.txt
Per database, CrackMapExec supporta moduli MSSQL nativi, mentre per MySQL/PostgreSQL Hydra rimane l'opzione più pratica. In laboratorio, ambienti come GOAD (Game Of Active Directory, open source) o DetectionLab (open source) sono ideali per calibrare le tecniche osservando in parallelo la telemetria generata.
Regola finale: documentare sempre nel Rules of Engagement il numero massimo di tentativi per account e le finestre temporali concordate.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo