Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Questa tecnica consente a un avversario di alterare il processo di autenticazione direttamente sul domain controller, iniettando credenziali fittizie nella memoria del processo LSASS. Il risultato è una backdoor silenziosa: l'attaccante può autenticarsi come qualsiasi utente del dominio usando una password universale — la cosiddetta Skeleton Key — senza modificare le password reali degli account.
La tecnica si colloca in tre tattiche distinte della kill chain. In Credential Access (TA0006) rappresenta un metodo per ottenere accesso alle credenziali di qualunque account di dominio. In Defense Evasion (TA0005) funziona perché le credenziali legittime degli utenti restano invariate, rendendo la compromissione invisibile ai controlli convenzionali. In Persistence (TA0003), infine, garantisce una presenza stabile finché il domain controller non viene riavviato, poiché la patch risiede solo in memoria.
L'impatto è devastante negli ambienti a singolo fattore di autenticazione: una volta patchato LSASS, l'intera infrastruttura Active Directory diventa accessibile con una sola password. Un riavvio del DC cancella la modifica dalla memoria, ma senza detection attiva l'attaccante può reiniettare il payload indisturbato. Dai dati disponibili risultano 1 gruppo APT, 1 software documentato e 4 mitigazioni applicabili — numeri contenuti che riflettono l'alto livello di privilegio necessario per eseguire questa tecnica, tipico di fasi avanzate dell'intrusione.
Per simulare questa tecnica in laboratorio è indispensabile un ambiente Active Directory isolato con almeno un domain controller Windows Server 2019 o 2022. Il test richiede privilegi di Domain Admin o equivalenti, poiché l'iniezione avviene nel processo LSASS del DC — un processo protetto ad alto privilegio.
Lo strumento di riferimento è Mimikatz (open source), che include il modulo misc::skeleton progettato esattamente per questo scenario. Prima di eseguire l'iniezione, è utile verificare lo stato di protezione del processo LSASS sul target. Da una sessione PowerShell elevata sul domain controller:
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL"
Se il valore è impostato a 1, la protezione Protected Process Light è attiva e l'iniezione standard fallirà. In laboratorio, per procedere con il test, si può disabilitare temporaneamente questa protezione — operazione che in produzione costituirebbe invece il primo indicatore di manomissione.
Con LSASS non protetto da PPL, l'iniezione si esegue dal domain controller stesso dopo aver ottenuto una sessione privilegiata:
mimikatz # privilege::debug mimikatz # misc::skeleton
Il modulo patcha in memoria le funzioni di autenticazione NTLM, iniettando la password di default mimikatz. A questo punto, da qualsiasi workstation del dominio, si può verificare l'autenticazione con la skeleton key:
net use \DC01\C$ /user:DOMINIO\qualsiasi_utente mimikatz
Se il comando restituisce accesso, l'iniezione ha funzionato. La password legittima dell'utente continua a funzionare normalmente — entrambe le credenziali sono valide in parallelo.
Per un approccio red team più strutturato, Cobalt Strike (a pagamento) permette di eseguire Mimikatz in-memory tramite il comando mimikatz nella beacon console, evitando di scrivere il binario su disco. In alternativa, il framework Impacket (open source) consente di interagire con il DC via rete per validare le credenziali iniettate usando lo script smbclient.py.
Al termine del test, un semplice riavvio del domain controller cancella la patch dalla memoria. Documentate nella timeline del report il momento esatto dell'iniezione, il SID dell'account utilizzato e tutti gli accessi eseguiti con la skeleton key, perché questi dati serviranno al blue team per calibrare le detection.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo