Impacket per Pentester: Tecniche di Cambio Password
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Questo articolo spiega come configurazioni errate di Active Directory possano essere sfruttate per reimpostare forzatamente le password degli utenti con il toolkit Impacket. Si concentra sull’utilità impacket-changepasswd , che può utilizzare il Reset Password ACE per consentire la presa del controllo degli account. La tecnica supporta diversi protocolli, inclusi SMB-SAMR, RPC-SAMR, LDAP e Kerberos.
Indagine
Il rapporto presenta uno scenario di laboratorio in cui a un utente sono concessi i diritti di Reset Password su un altro oggetto account. Illustra vari approcci di autenticazione, inclusi credenziali in chiaro, Pass-the-Hash, Pass-the-Key e utilizzo della cache TGT Kerberos, per manipolare le password degli account attraverso diversi protocolli.
Mitigazione
I difensori dovrebbero eseguire regolarmente audit degli ACL di Active Directory con strumenti come BloodHound per identificare diritti di Reset Password eccessivamente permissivi. Applicare un modello di amministrazione a più livelli e utilizzare il gruppo di sicurezza degli Utenti Protetti può ridurre sensibilmente l’esposizione. Si raccomanda inoltre di applicare la firma LDAP e implementare Credential Guard.
Risposta
Se viene rilevata un’attività sospetta, i team di sicurezza dovrebbero indagare sugli ID eventi di Windows 4723, 4724, 4738, 4771, e 5136. Gli analisti dovrebbero confermare se il reset della password è stato autorizzato e esaminare l’ambiente per traffico SAMR insolito o modifiche alla directory LDAP. Le azioni immediate dovrebbero includere la verifica delle autorizzazioni dell’account interessato e la rotazione delle credenziali per eventuali utenti amministrativi potenzialmente compromessi.
Flusso di Attacco
Stiamo ancora aggiornando questa parte. Iscriviti per ricevere notifiche
NotificamiRilevamenti
Probabile uso di Windows Hacktools [Parte1] (via cmdline)
Visualizza
Probabile uso di Windows Hacktools [Parte3] (via file_event)
Visualizza
Rilevamento della Manipolazione Non Autorizzata delle Password di Active Directory [Log Eventi di Sicurezza di Microsoft Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: La Verifica Pre-volo di Telemetria e Baseline deve essere riuscita.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica d’attacco (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una diagnosi errata.
-
Narrazione Attacco & Comandi: Un avversario è riuscito a compromettere un account utente con permessi delegati o ha elevato i privilegi a un livello di amministratore del dominio. Per garantire la persistenza a lungo termine ed evitare il rilevamento durante una fase successiva dell’operazione, l’attaccante decide di reimpostare la password di un account di servizio noto. Utilizzando strumenti PowerShell nativi (
Set-ADAccountPasswordornet user), l’attaccante cerca di cambiare la password diService_SVC. Questa azione è una tecnica classica di “Living off the Land”, progettata per confondersi con le attività amministrative di routine, ma provoca specifici ID eventi di sicurezza di Windows (4724/4738) che la regola di rilevamento è progettata per catturare. -
Script di Test di Regressione:
# Script di Simulazione: Reset della Password tramite PowerShell # Nota: Questo deve essere eseguito in un ambiente di laboratorio controllato con i permessi appropriati. $TargetUser = "Service_SVC" Write-Host "[*] Verifica se l'utente target esiste..." -ForegroundColor Cyan if (Get-ADUser -Filter "SamAccountName -eq '$TargetUser'") { Write-Host "[+] Utente target $TargetUser trovato. Procedo con la simulazione del reset della password..." -ForegroundColor Green # Generazione degli ID Evento 4724 / 4738 try { $NewPassword = ConvertTo-SecureString "SimulatedPass123!" -AsPlainText -Force Set-ADAccountPassword -Identity $TargetUser -NewPassword $NewPassword Write-Host "[+] SUCCESSO: Reset della password attivato. Controlla i Log di Sicurezza per l'ID Evento 4724/4738." -ForegroundColor Green } catch { Write-Host "[-] ERRORE: Impossibile reimpostare la password. Assicurati di eseguire come utente Admin/Autorizzato." -ForegroundColor Red Write-Error $_ } } else { Write-Host "[-] ERRORE: Utente target $TargetUser non trovato. Si prega di creare prima l'utente." -ForegroundColor Red } -
Comandi di Pulizia:
# Script di Pulizia: Ripristinare lo stato originale $TargetUser = "Service_SVC" $OriginalPassword = ConvertTo-SecureString "Original_Safe_Pass_2025!" -AsPlainText -Force Write-Host "[*] Ripristino della password originale per $TargetUser..." -ForegroundColor Cyan Set-ADAccountPassword -Identity $TargetUser -NewPassword $OriginalPassword Write-Host "[+] Pulizia completata." -ForegroundColor Green