Escalation dei privilegi con DCShadow
Oct 4, 2022
DCShadow è una funzionalità dello strumento open-source mimikatz. In un altro post del blog, trattiamo il modo in cui gli attaccanti possono utilizzare DCShadow per mantenere la persistenza in un dominio senza essere rilevati una volta ottenute le credenziali di amministratore. Ma DCShadow può anche consentire a un attaccante di elevare i propri privilegi.
Contenuti correlati selezionati:
Come può un Domain Admin elevare ulteriormente i propri diritti di accesso? Ottenendo diritti di amministratore in altre foreste. Sfruttando la SID History, un attaccante può aggiungere SID amministrativi al proprio account utente e ottenere diritti di livello amministrativo in altri domini e foreste fidati. In questo post, daremo un'occhiata a come funziona questo processo.
Passo 1. Scopri Trusts
Il primo passo è scoprire quali trust esistono. Ci sono diversi modi per farlo, ma due che sfrutteremo tramite PowerShell sono il framework PowerSploit e il modulo PowerShell di Active Directory.
Per ogni trust che troviamo, dobbiamo verificare se il filtraggio SID è abilitato. Se lo è, allora gli SID storici non possono essere utilizzati per accedere alla foresta dall'altra parte del trust. Tuttavia, se è disabilitato, siamo a cavallo. Spesso questa opzione viene lasciata disabilitata dopo le migrazioni per garantire che gli utenti non perdano l'accesso a nessun sistema e dato di cui hanno bisogno. Il seguente comando PowerShell scoprirà i trust e ne elencherà le opzioni, inclusa la verifica del filtraggio SID:
Get-NetDomainTrust | ForEach-Object{Get-ADTrust –filter * -server $_.TargetName}
L'output di questo comando è fornito di seguito. Puoi vedere che c'è un trust verso il dominio gobias.local dove il filtraggio SID è disabilitato (SidFilteringQuarantined = False), quindi saremo in grado di utilizzare gli SID storici per accedere alle risorse in quel dominio.
Per saperne di più sul filtraggio SID e sui trust, leggi questo post on TechNet.
Passaggio 2. Elevare i privilegi utilizzando la cronologia SID
Successivamente, dobbiamo aggiungere un SID amministrativo al nostro account utente in modo da poter accedere alle risorse nella foresta fidata. DCShadow ci sarà utile qui per due motivi:
- Non è possibile modificare nativamente la cronologia SID tramite applicazioni come AD Users & Computers.
- DCShadow effettuerà questa modifica senza alcuna rilevazione.
Dobbiamo solo scegliere un SID da aggiungere al nostro SID History. Eviteremo di utilizzare SID noti e utenti o gruppi integrati come Administrator e Domain Admins, poiché esistono controlli che permettono di assegnare questi SID solo ai loro oggetti equivalenti in altri domini. Utilizzando la ricognizione di dominio, dovremmo essere in grado di trovare un utente o un gruppo del dominio che vogliamo aggiungere al nostro token di accesso per ottenere diritti elevati.
Aggiungiamo il gruppo AD-Admins del forest gobias.local al nostro account utente utilizzando il seguente comando DCShadow:
lsadump::dcshadow /object:"CN=Jeff Warren,OU=Administrators,OU=Users,OU=JEFFLAB,DC=JEFFLAB,DC=local" /attribute:sidhistory /value:S-1-5-21-1722627474-2472677011-3296483304-1113
Per vedere il nostro valore SIDhistory appena aggiunto, possiamo eseguire lo script seguente:
Get-ADUser Jeff -Properties sIDHistory
Possiamo confermare che tutto ha funzionato accedendo nuovamente come questo utente ed eseguendo il comando whoami /groups per vedere la nuova appartenenza al gruppo. Il nostro utente sta ottenendo questo gruppo nel suo token solo attraverso la cronologia SID.
Passaggio 3. Utilizzare i Privilegi Elevati
Una volta ottenuti i diritti di accesso, esistono numerosi metodi per estrarre dati dalle foreste fidate. Uno dei più efficienti è utilizzare DCSync poiché non richiede l'esecuzione di alcun codice sul controller di dominio di destinazione.
Prima di aggiungere la cronologia SID al nostro account, il tentativo di eseguire DCSync contro la foresta di destinazione risultava in un accesso negato:
Ma dopo aver aggiunto l'SID storico al nostro account utente, siamo in grado di eseguire lo stesso comando con successo e ottenere l'hash della password per qualsiasi account, incluso l'account del servizio Kerberos krbtgt estremamente prezioso.
Rilevamento e risposta DCShadow
Il metodo principale utilizzato per rilevare DCShadow consiste nel trovare schemi di comportamento che corrispondono alla registrazione e alla cancellazione di controller di dominio canaglia e nel monitorare il traffico di replica che viene spinto da essi. Di default, Netwrix StealthDEFEND monitora attivamente tutti gli eventi di replica e di modifica del dominio alla ricerca di segni di DCShadow.
Netwrix Threat Prevention le politiche di blocco possono essere utilizzate per impedire all'account o alla postazione perpetratrice di eseguire ulteriori attività di replica, autenticazione e altre, che possono rallentare un attaccante e dare agli interventisti più tempo per eliminare completamente la minaccia.
Condividi su
Scopri di più
Informazioni sull'autore
Jeff Warren
Chief Product Officer
Jeff Warren supervisiona il portfolio di prodotti Netwrix, portando oltre un decennio di esperienza nella gestione e sviluppo di prodotti focalizzati sulla sicurezza. Prima di entrare in Netwrix, Jeff ha guidato l'organizzazione dei prodotti presso Stealthbits Technologies, dove ha utilizzato la sua esperienza come ingegnere del software per sviluppare soluzioni di sicurezza innovative su scala aziendale. Con un approccio pratico e un talento nel risolvere sfide di sicurezza complesse, Jeff è concentrato sulla costruzione di soluzioni pratiche che funzionano. È laureato in Information Systems presso l'Università del Delaware.
Scopri di più su questo argomento
Utilizzando Windows Defender Credential Guard per proteggere le credenziali Privileged Access Management
Cos'è Microsoft LAPS: Come puoi migliorarne la sicurezza?
Passaggi per controllare i diritti di amministratore locale
5 consigli principali per la soluzione Local Administrator Password Solution (LAPS)
Le migliori soluzioni di Privileged Access Management (PAM)