Abusing Active Directory ACLs/ACEs
Last updated
Last updated
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Questa pagina è principalmente un riepilogo delle tecniche da https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces e https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges. Per ulteriori dettagli, controlla gli articoli originali.
Questo privilegio concede a un attaccante il pieno controllo su un account utente target. Una volta confermati i diritti GenericAll
utilizzando il comando Get-ObjectAcl
, un attaccante può:
Cambiare la Password del Target: Utilizzando net user <username> <password> /domain
, l'attaccante può reimpostare la password dell'utente.
Kerberoasting Mirato: Assegnare un SPN all'account dell'utente per renderlo kerberoastable, quindi utilizzare Rubeus e targetedKerberoast.py per estrarre e tentare di decifrare gli hash del ticket-granting ticket (TGT).
Targeted ASREPRoasting: Disabilita la pre-autenticazione per l'utente, rendendo il suo account vulnerabile all'ASREPRoasting.
Questo privilegio consente a un attaccante di manipolare le appartenenze ai gruppi se ha diritti GenericAll
su un gruppo come Domain Admins
. Dopo aver identificato il nome distinto del gruppo con Get-NetGroup
, l'attaccante può:
Aggiungersi al Gruppo Domain Admins: Questo può essere fatto tramite comandi diretti o utilizzando moduli come Active Directory o PowerSploit.
Avere questi privilegi su un oggetto computer o un account utente consente di:
Kerberos Resource-based Constrained Delegation: Consente di prendere il controllo di un oggetto computer.
Shadow Credentials: Utilizza questa tecnica per impersonare un computer o un account utente sfruttando i privilegi per creare credenziali shadow.
Se un utente ha diritti WriteProperty
su tutti gli oggetti per un gruppo specifico (ad es., Domain Admins
), può:
Aggiungersi al Gruppo Domain Admins: Realizzabile combinando i comandi net user
e Add-NetGroupUser
, questo metodo consente l'escalation dei privilegi all'interno del dominio.
Questo privilegio consente agli attaccanti di aggiungersi a gruppi specifici, come Domain Admins
, attraverso comandi che manipolano direttamente l'appartenenza ai gruppi. Utilizzando la seguente sequenza di comandi è possibile l'auto-aggiunta:
Un privilegio simile, questo consente agli attaccanti di aggiungersi direttamente ai gruppi modificando le proprietà del gruppo se hanno il diritto WriteProperty
su quei gruppi. La conferma e l'esecuzione di questo privilegio vengono eseguite con:
Avere il ExtendedRight
su un utente per User-Force-Change-Password
consente il ripristino delle password senza conoscere la password attuale. La verifica di questo diritto e il suo sfruttamento possono essere effettuati tramite PowerShell o strumenti da riga di comando alternativi, offrendo diversi metodi per reimpostare la password di un utente, comprese sessioni interattive e one-liner per ambienti non interattivi. I comandi variano da semplici invocazioni di PowerShell all'uso di rpcclient
su Linux, dimostrando la versatilità dei vettori di attacco.
Se un attaccante scopre di avere diritti WriteOwner
su un gruppo, può cambiare la proprietà del gruppo a se stesso. Questo è particolarmente impattante quando il gruppo in questione è Domain Admins
, poiché cambiare la proprietà consente un controllo più ampio sugli attributi e sui membri del gruppo. Il processo prevede l'identificazione dell'oggetto corretto tramite Get-ObjectAcl
e poi l'uso di Set-DomainObjectOwner
per modificare il proprietario, sia tramite SID che per nome.
Questo permesso consente a un attaccante di modificare le proprietà dell'utente. In particolare, con accesso GenericWrite
, l'attaccante può cambiare il percorso dello script di accesso di un utente per eseguire uno script malevolo al momento dell'accesso dell'utente. Questo viene realizzato utilizzando il comando Set-ADObject
per aggiornare la proprietà scriptpath
dell'utente target per puntare allo script dell'attaccante.
Con questo privilegio, gli attaccanti possono manipolare l'appartenenza ai gruppi, ad esempio aggiungendo se stessi o altri utenti a gruppi specifici. Questo processo prevede la creazione di un oggetto di credenziali, utilizzandolo per aggiungere o rimuovere utenti da un gruppo e verificando le modifiche all'appartenenza con comandi PowerShell.
Possedere un oggetto AD e avere privilegi WriteDACL
su di esso consente a un attaccante di concedere a se stesso privilegi GenericAll
sull'oggetto. Questo viene realizzato attraverso la manipolazione di ADSI, consentendo il pieno controllo sull'oggetto e la possibilità di modificare le sue appartenenze ai gruppi. Nonostante ciò, esistono limitazioni quando si cerca di sfruttare questi privilegi utilizzando i cmdlet Set-Acl
/ Get-Acl
del modulo Active Directory.
L'attacco DCSync sfrutta specifici permessi di replica nel dominio per mimare un Domain Controller e sincronizzare dati, inclusi le credenziali degli utenti. Questa potente tecnica richiede permessi come DS-Replication-Get-Changes
, consentendo agli attaccanti di estrarre informazioni sensibili dall'ambiente AD senza accesso diretto a un Domain Controller. Scopri di più sull'attacco DCSync qui.
L'accesso delegato per gestire gli Oggetti di Criterio di Gruppo (GPO) può presentare rischi significativi per la sicurezza. Ad esempio, se un utente come offense\spotless
ha diritti di gestione GPO delegati, potrebbe avere privilegi come WriteProperty, WriteDacl e WriteOwner. Questi permessi possono essere abusati per scopi malevoli, come identificato utilizzando PowerView: bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Per identificare GPO mal configurati, i cmdlet di PowerSploit possono essere concatenati. Questo consente di scoprire i GPO che un utente specifico ha permessi per gestire: powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Computer con una Politica Applicata: È possibile risolvere quali computer una specifica GPO si applica, aiutando a comprendere l'ambito del potenziale impatto. powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
Politiche Applicate a un Dato Computer: Per vedere quali politiche sono applicate a un particolare computer, possono essere utilizzati comandi come Get-DomainGPO
.
OU con una Politica Applicata: Identificare le unità organizzative (OU) colpite da una data politica può essere fatto utilizzando Get-DomainOU
.
I GPO mal configurati possono essere sfruttati per eseguire codice, ad esempio, creando un'attività pianificata immediata. Questo può essere fatto per aggiungere un utente al gruppo degli amministratori locali sulle macchine interessate, elevando significativamente i privilegi:
Il modulo GroupPolicy, se installato, consente la creazione e il collegamento di nuovi GPO, e la configurazione di preferenze come valori di registro per eseguire backdoor sui computer interessati. Questo metodo richiede che il GPO venga aggiornato e che un utente acceda al computer per l'esecuzione:
SharpGPOAbuse offre un metodo per abusare delle GPO esistenti aggiungendo attività o modificando impostazioni senza la necessità di creare nuove GPO. Questo strumento richiede la modifica delle GPO esistenti o l'uso degli strumenti RSAT per crearne di nuove prima di applicare le modifiche:
Gli aggiornamenti GPO si verificano tipicamente ogni 90 minuti. Per accelerare questo processo, specialmente dopo aver implementato una modifica, il comando gpupdate /force
può essere utilizzato sul computer target per forzare un aggiornamento immediato della policy. Questo comando garantisce che eventuali modifiche ai GPO vengano applicate senza attendere il prossimo ciclo di aggiornamento automatico.
Dopo aver ispezionato i Task Pianificati per un dato GPO, come la Politica Malconfigurata
, è possibile confermare l'aggiunta di task come evilTask
. Questi task vengono creati tramite script o strumenti da riga di comando con l'obiettivo di modificare il comportamento del sistema o di elevare i privilegi.
La struttura del task, come mostrato nel file di configurazione XML generato da New-GPOImmediateTask
, delinea le specifiche del task pianificato - inclusi il comando da eseguire e i suoi trigger. Questo file rappresenta come i task pianificati sono definiti e gestiti all'interno dei GPO, fornendo un metodo per eseguire comandi o script arbitrari come parte dell'applicazione delle policy.
I GPO consentono anche la manipolazione delle appartenenze degli utenti e dei gruppi sui sistemi target. Modificando direttamente i file di policy degli Utenti e dei Gruppi, gli attaccanti possono aggiungere utenti a gruppi privilegiati, come il gruppo locale administrators
. Questo è possibile attraverso la delega dei permessi di gestione dei GPO, che consente la modifica dei file di policy per includere nuovi utenti o cambiare le appartenenze ai gruppi.
Il file di configurazione XML per Utenti e Gruppi delinea come queste modifiche vengono implementate. Aggiungendo voci a questo file, utenti specifici possono essere concessi privilegi elevati sui sistemi interessati. Questo metodo offre un approccio diretto all'elevazione dei privilegi attraverso la manipolazione dei GPO.
Inoltre, possono essere considerate ulteriori metodologie per eseguire codice o mantenere la persistenza, come sfruttare script di accesso/disconnessione, modificare chiavi di registro per autorun, installare software tramite file .msi o modificare configurazioni di servizio. Queste tecniche forniscono vari modi per mantenere l'accesso e controllare i sistemi target attraverso l'abuso dei GPO.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)