Darren Mar-Elia

Nota: aggiornato al 30 marzo 2022

In occasione di una passata conferenza sulla protezione dell'identità ibrida, molti di noi hanno parlato del continuo utilizzo di Active Directory come oggetto di interesse negli attacchi malware. Che si tratti di estrarre da AD informazioni sugli accessi privilegiati, di compromettere gli account utente che portano a livelli crescenti di privilegio in AD o di colpire di proposito i controller di dominio AD con il ransomware, Active Directory ha un grosso bersaglio sulla schiena in questi giorni. Di conseguenza, sono state condotte numerose ricerche e discussioni sulla sicurezza in merito ai diversi percorsi di compromissione di AD. Una serie di metodi intelligenti sfrutta le autorizzazioni AD scarsamente delegate per prendere il controllo dei presidi di sicurezza AD privilegiati. Uno di questi metodi consiste nel raggiungere il punto in cui l'attaccante può persistere nell'ambiente senza essere individuato. Uno dei modi per farlo è creare o prendere il controllo di un account utente privilegiato in AD e poi nasconderlo agli occhi degli amministratori indiscreti.

Lettura correlata

Ad esempio, se dispone di permessi sufficienti su un oggetto utente, un utente malintenzionato può assumere la proprietà dell'utente, impostare un ACE di negazione della lettura per tutti gli utenti su quell'oggetto e l'oggetto viene sostanzialmente nascosto, come mostrato qui:

Figura 1: Un utente con il comando "nega lettura".

Si potrebbe inoltre impedire che l'utente sia visibile agli altri amministratori, negando l'autorizzazione "Elenca contenuto" a Tutti nell'UO nascosta nella schermata precedente. Questo impedirebbe a qualsiasi amministratore normale di accorgersi della presenza dell'utente e un utente malintenzionato potrebbe potenzialmente utilizzare l'account senza essere scoperto (o almeno trovato).

L'amico di Semperis Michael Dubinsky(@MichaelDubinsky) ha scritto un ottimo post sul blog su questo fenomeno di occultamento, insieme a uno script PowerShell per rilevare gli oggetti utente nascosti enumerando i Relative Identifier (RID) rimasti nel pool RID di AD e cercando poi di raggiungere il SID di ciascun oggetto. Se un SID cercato non può essere trovato utilizzando una chiamata LDAP standard, lo script indica che non si ha accesso a quell'oggetto, il che potrebbe indicare un oggetto nascosto.

Il nostro CTO Guy Teverovsky ha proposto un approccio alternativo e un'utilità, AD Hidden Object Detectorche raggiunge l'obiettivo di trovare gli oggetti nascosti di Active Directory utilizzando un approccio nuovo. Utilizza essenzialmente le stesse chiamate API che il nostro Directory Services Protector prodotto, per interrogare AD a livello di replica della directory. Questa chiamata di livello inferiore ci consente di determinare il numero di oggetti di cui AD è a conoscenza, indipendentemente dalle ACL presenti sull'oggetto, e di confrontarlo con il numero di oggetti per i quali abbiamo l'autorizzazione. Lo strumento restituisce quindi tutti gli oggetti trovati tramite la chiamata di replica, che non sono stati trovati tramite le normali chiamate LDAP. L'utility deve essere eseguita come utente privilegiato in AD, ma trova facilmente il mio oggetto "Hidden User", come mostrato nell'output dell'utility qui sotto.

utilità oggetti nascosti della directory attiva
Figura 2: Esecuzione di AD Hidden Object Detector per trovare gli oggetti nascosti.

Un aspetto positivo di questa utility è che può trovare qualsiasi tipo di oggetto nascosto, non solo gli oggetti dell'utente. Potete scaricare l'utility qui AD Hidden Object Detector e provarla. Fateci sapere cosa ne pensate e se trovate oggetti nascosti di Active Directory, beh, potrebbe essere il momento di scavare più a fondo e vedere chi si nasconde!