Come gli avversari ottengono persistenza utilizzando AdminSDHolder e SDProp
Jun 16, 2023
Once an adversary has compromised privileged credentials, for example, by exploiting an attack path, they want to make sure they don’t lose their foothold in the domain. That is, even if the accounts they have compromised are disabled or have their passwords reset, they want to be able to easily regain Domain Admin rights.
Un modo per ottenere questa persistenza è sfruttare le funzionalità di Active Directory che sono destinate a mantenere protetti gli account privilegiati: AdminSDHolder e SDProp. Questo articolo spiega come funziona questa tattica e come difendersi da essa.
Cosa sono AdminSDHolder e SDProp?
AdminSDHolder è un contenitore che esiste in ogni Active Directory domain per uno scopo speciale: la lista di controllo degli accessi (ACL) dell'oggetto AdminSDHolder viene utilizzata come modello per copiare i permessi a tutti i groups in Active Directory e ai loro membri. (Protected groups sono quei gruppi predefiniti che sono stati identificati come necessitanti di sicurezza aggiuntiva, inclusi Domain Admins, Administrators, Enterprise Admins e Schema Admins.)
Il processo SDProp applica l'ACL dell'oggetto AdminSDHolder a tutti i gruppi protetti e ai loro utenti membri ogni 60 minuti per impostazione predefinita. Poiché l'ACL per AdminSDHolder è progettato per essere molto restrittivo, questo processo normalmente contribuisce a rafforzare la sicurezza.
Tuttavia, se un attaccante modifica l'ACL di AdminSDHolder, allora quei permessi di accesso modificati verranno automaticamente applicati a tutti gli oggetti protetti. Ad esempio, un avversario potrebbe aggiungere un account utente sotto il proprio controllo all'ACL di AdminSDHolder e concedergli pieni permessi di controllo:
Anche se un amministratore nota un permesso inappropriato su un particolare oggetto protetto e lo rimuove, il processo SDProp lo riapplicherà semplicemente all'ACL modificato entro un'ora. Di conseguenza, questa strategia aiuta gli aggressori ad accedere a informazioni sensibili.
Valutare il proprio rischio utilizzando AdminCount
AdminCount è un attributo degli oggetti di Active Directory. Un valore di AdminCount pari a 1 indica che l'oggetto è (o è stato) membro di almeno un gruppo protetto. Di conseguenza, osservando tutti gli oggetti con un valore di AdminCount di 1, si può avere un'idea di quanto possa essere pervasiva un'attacco contro AdminSDHolder nel proprio ambiente.
Questa analisi può essere eseguita facilmente con PowerShell e un'operazione di filtro LDAP:
$ldapFilter = “(adminCount=l)”
$domain = New-Object System.DirectoryServices.DirectoryEntry
$search = New-Object System.DirectoryServices.DirectorySearcher
$search.SearchRoot = $domain
$search.PageSize = 1000
$search.Filter = $ldapFilter
$search.SearchScope = “Subtree”
$results = $search.FindAll()
foreach ($result in $results)
{
SuserEntry = $result.GetDirectoryEntry()
Write-host “Object Name = “ $userEntry.name
Write-host “Obect Class = “ $userEntry.objectClass
foreach($AdminCount in $userEntry.adminCount)
{
Write-host “AdminCount =” $AdminCount
Write-host “”
}
}
Un aspetto da considerare è che anche se un utente viene rimosso da un gruppo privilegiato, il suo valore AdminCount rimane 1; tuttavia, non è più considerato un oggetto protetto da Active Directory, quindi l'ACL di AdminSDHolder non verrà applicata. Nonostante ciò, è probabile che conservino una versione dei permessi di AdminSDHolder perché l'ereditarietà dei loro permessi rimarrà disabilitata come residuo del periodo in cui erano protetti dai permessi di AdminSDHolder. Pertanto, è ancora utile esaminare questi oggetti e, nella maggior parte dei casi, attivare l'ereditarietà dei permessi.
Protezione contro l'abuso di AdminSDHolder
Solo gli utenti con diritti amministrativi possono modificare l'ACL di AdminSDHolder, quindi il modo migliore per proteggersi da questa tattica di persistenza è prevenire il compromesso delle credenziali amministrative.
Inoltre, nel caso in cui un account amministrativo venga compromesso, è importante monitorare l'oggetto AdminSDHolder e ricevere avvisi su eventuali modifiche. Le modifiche non dovrebbero mai verificarsi, quindi qualsiasi avviso vale la pena di essere immediatamente investigato e annullato.
È anche importante segnalare regolarmente gli oggetti con un valore AdminCount di 1. Se qualcuno di questi oggetti non dovrebbe avere diritti amministrativi, posizionalo nel luogo corretto e assicurati che erediti i permessi.
Come Netwrix può aiutare
La soluzione Netwrix Active Directory Security Solution può supportare gli sforzi della tua organizzazione nella difesa contro attacchi che abusano di AdminSDHolder e SDProp. In particolare, puoi:
- Proteggi gli account privilegiati da compromissioni in modo che non possano essere utilizzati per modificare AdminSDHolder.
- Rilevate tempestivamente comportamenti sospetti che indicano un compromesso dell'identità.
- Monitora l'oggetto AdminSDHolder e ricevi avvisi su qualsiasi modifica apportata.
- Individua e rimuovi i permessi eccessivi per limitare i danni derivanti da credenziali compromesse.
- Rimani informato su qualsiasi modifica apportata al tuo ambiente Active Directory attraverso allarmi in tempo reale e report dettagliati.
Domande frequenti
Cos'è AdminSDHolder?
AdminSDHolder è un oggetto contenitore che viene creato in ogni dominio di Active Directory. La sua ACL viene applicata automaticamente a tutti i gruppi protetti nel dominio e ai loro membri.
Dove si trova AdminSDHolder?
Il contenitore AdminSDHolder si trova nel contenitore System (CN=System). Puoi vederlo abilitando le “Funzionalità Avanzate” in Active Directory Users and Computers (ADUC) console di gestione.
Cos'è AdminCount?
AdminCount è un attributo degli oggetti AD. Un valore di AdminCount pari a 1 indica che l'oggetto è (o è stato) membro di almeno un gruppo protetto.
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
Come aggiungere e rimuovere gruppi AD e oggetti nei gruppi con PowerShell
Attributi di Active Directory: Ultimo accesso
Fiducie in Active Directory
Attacchi ransomware di Active Directory
Come creare, eliminare, rinominare, disabilitare e unire computer in AD utilizzando PowerShell