Studio di caso: Come la Protezione Predittiva di Defender ha Bloccato il Ransomware Basato su GPO Prima dell’Esecuzione
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Microsoft Defender ha interrotto un attacco ransomware umano-moderato rivolto a una grande organizzazione educativa rilevando l’abuso di Oggetti Criteri di Gruppo (GPO) utilizzati per indebolire le impostazioni di sicurezza e distribuire ransomware tramite attività pianificate.
Indagine
Gli attaccanti hanno compromesso un account admin del dominio, eseguito l’enumerazione di Active Directory, forzato credenziali, raccolto ticket Kerberos e dati NTDS, creato account locali rogue e distribuito GPO dannosi per imporre una politica di manomissione e innescare la consegna del ransomware tramite attività pianificate.
Mitigazione
Lo scudo predittivo di Defender ha identificato l’attività GPO dannosa, applicato un indurimento temporaneo dei GPO, bloccato l’implementazione del ransomware tramite attività pianificata e prevenuto la crittografia nel 97% dei dispositivi.
Risposta
Una volta rilevato, i difensori dovrebbero immediatamente abilitare l’indurimento dei GPO, contenere gli account compromessi, bloccare il traffico SMB sospetto e indagare su ulteriori metodi di persistenza, inclusa la creazione non autorizzata di account locali.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef builtin fill:#cccccc %% Reconnaissance Nodes recon_action["<b>Azione</b> – Ricognizione<br/>Usato AD Explorer per enumerare Active Directory ed eseguito tentativi di indovinare password."] class recon_action action recon_brute["<b>Tecnica</b> – T1110 Forza Bruta: Indovinare Password<br/><b>Descrizione</b> Tenta di indovinare password tramite tentativi ed errori."] class recon_brute technique recon_account["<b>Tecnica</b> – T1087.002 Scoperta Account: Account di Dominio<br/><b>Descrizione</b> Enumera gli account utente di dominio."] class recon_account technique recon_gpo["<b>Tecnica</b> – T1615 Scoperta Criteri di Gruppo<br/><b>Descrizione</b> Recupera le impostazioni dei Criteri di Gruppo dai controller di dominio."] class recon_gpo technique %% Reconnaissance Connections recon_action –>|usa| recon_brute recon_action –>|scopre| recon_account recon_action –>|scopre| recon_gpo %% Credential Access Nodes action_cred["<b>Azione</b> – Accesso a Credenziali<br/>Eseguito Kerberoasting e svuotato NTDS.dit."] class action_cred action tech_kerb["<b>Tecnica</b> – T1558.003 Kerberoasting<br/><b>Descrizione</b> Richiede ticket di servizio e li cracca offline."] class tech_kerb technique tech_ntds["<b>Tecnica</b> – T1003.003 Estrazione Credenziali OS: NTDS<br/><b>Descrizione</b> Estrae hash delle password dal database di Active Directory."] class tech_ntds technique %% Credential Access Connections action_cred –>|usa| tech_kerb action_cred –>|usa| tech_ntds %% Persistence Nodes action_persist["<b>Azione</b> – Persistenza<br/>Creati nuovi account locali su host compromessi."] class action_persist action tech_create_local["<b>Tecnica</b> – T1136.001 Creazione di Account: Account Locale<br/><b>Descrizione</b> Aggiunge account utente locali per accesso continuato."] class tech_create_local technique %% Persistence Connections action_persist –>|usa| tech_create_local %% Lateral Movement Nodes action_lateral["<b>Azione</b> – Movimento Laterale<br/>Usate credenziali di dominio rubate per accedere a condivisioni admin remote via SMB."] class action_lateral action tech_smb["<b>Tecnica</b> – T1021.002 Servizi Remoti SMB/Condivisioni Admin Windows<br/><b>Descrizione</b> Utilizza condivisioni SMB per movimento laterale."] class tech_smb technique %% Lateral Movement Connections action_lateral –>|usa| tech_smb %% Defense Evasion Nodes action_evasion["<b>Azione</b> – Evasione Difesa<br/>Distribuito GPO malevolo per disattivare Microsoft Defender."] class action_evasion action tech_gpo_mod["<b>Tecnica</b> – T1484 Modifica Criteri di Dominio o Tenant<br/><b>Descrizione</b> Modifica i Criteri di Gruppo per cambiare impostazioni di sicurezza."] class tech_gpo_mod technique tech_impair["<b>Tecnica</b> – T1562.001 Riduzione Difese Disabilitare o Modificare Strumenti<br/><b>Descrizione</b> Spegne o modifica strumenti di sicurezza."] class tech_impair technique %% Defense Evasion Connections action_evasion –>|modifica| tech_gpo_mod action_evasion –>|disabilita| tech_impair %% Impact Preparation Nodes action_impact["<b>Azione</b> – Preparazione Impatto<br/>Creato processo pianificato tramite GPO per copiare ed eseguire file su tutte le macchine del dominio."] class action_impact action tech_scheduled["<b>Tecnica</b> – T1053 Processo/Job Pianificato<br/><b>Descrizione</b> Pianifica l’esecuzione di comandi a tempi definiti."] class tech_scheduled technique tech_cmd["<b>Tecnica</b> – T1059.003 Interprete di Comandi e Script Shell Windows<br/><b>Descrizione</b> Esegue file batch usando cmd.exe."] class tech_cmd technique tech_rundll["<b>Tecnica</b> – T1218.011 Esecuzione Proxy Binario di Sistema Rundll32<br/><b>Descrizione</b> Carica DLL malevoli tramite rundll32.exe."] class tech_rundll technique %% Impact Preparation Connections action_impact –>|crea| tech_scheduled action_impact –>|esegue| tech_cmd action_impact –>|usa| tech_rundll %% Ransomware Deployment Nodes action_ransom["<b>Azione</b> – Distribuzione Ransomware<br/>Il payload tenta di criptare i file; Defender ha bloccato la propagazione del GPO su molti dispositivi."] class action_ransom action tech_encrypt["<b>Tecnica</b> – T1486 Dati Criptati per Impatto<br/><b>Descrizione</b> Cripta i dati della vittima per chiedere un riscatto."] class tech_encrypt technique %% Ransomware Deployment Connections action_ransom –>|usa| tech_encrypt %% Overall Flow Sequence recon_action –>|porta_a| action_cred action_cred –>|porta_a| action_persist action_persist –>|porta_a| action_lateral action_lateral –>|porta_a| action_evasion action_evasion –>|porta_a| action_impact action_impact –>|porta_a| action_ransom "
Flusso d’Attacco
Rilevazioni
Possibile Attività di Kerberoasting [correlare/bucket_span_10m/by src_ipaddr] (tramite audit)
Visualizza
Possibili Modelli Strumento AD Explorer (tramite cmdline)
Visualizza
Disabilita il Monitoraggio in Tempo Reale di Windows Defender e Altri Cambiamenti di Preferenze (tramite cmdline)
Visualizza
Rilevazione di Attività di Enumerazione di Active Directory e Raccolta di Credenziali [Microsoft Windows Security Event Log]
Visualizza
Esecuzione Simulazione
Prerequisito: Il Controllo Pre-volo di Telemetria & Baseline deve aver superato.
Motivazione: Questa sezione descrive l’esecuzione precisa della tecnica avversaria (TTP) progettata per innescare la regola di rilevamento. I comandi e il racconto DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento.
Narrazione dell’Attacco & Comandi
-
Enumerazione di Active Directory con ADExplorer – Un attaccante usa l’utilità già presente nel sistema ADExplorer.exe per navigare nel database AD, generando un evento di creazione processo che corrisponde a
Image|endswith: 'ADExplorer.exe'. -
Forza Bruta di Credenziali (T1110) – L’attaccante esegue uno spruzzo di password contro un account di dominio, causando accessi falliti ripetuti (Evento 4625) con la ragione del fallimento
%#13(“L’utente ha tentato di accedere da un dominio non attendibile”). -
Kerberoasting (T1558.003) – Utilizzando lo strumento open-source Rubeus, l’attaccante richiede ticket di servizio Kerberos per SPN di account computer (ad esempio,
HOST01$). Ogni richiesta genera l’Evento 4769 doveServiceNamefinisce con$. -
Dump NTDS (T1003.003) – L’attaccante crea una Copia Ombra del Volume del drive di sistema ed estrae
NTDS.ditutilizzandontdsutil, causando l’Evento 4662 conObjectType = "ds"andOperationType = "Replication".
Tutte e quattro le azioni sono eseguite sullo stesso host entro una finestra di 5 minuti per emulare una fase di “raccolta” post-compromissione realistica.
Script di Test di Regressione
# -------------------------------------------------
# Script di Simulazione – Attiva tutti e quattro i percorsi di rilevamento
# -------------------------------------------------
# 1. Esecuzione ADExplorer (creazione processo)
$adExplorerPath = "$env:ProgramFilesSysinternalsADExplorer.exe"
if (-Not (Test-Path $adExplorerPath)) {
Write-Host "ADExplorer non trovato – segnaposto da scaricare per il test."
# Simula copiando qualsiasi exe con il nome previsto
Copy-Item "$env:SystemRootSystem32notepad.exe" $adExplorerPath
}
Start-Process -FilePath $adExplorerPath -ArgumentList "/quiet" -WindowStyle Hidden
Start-Sleep -Seconds 5
# 2. Tentativi di login brute-force (4625 con %#13)
$domain = "CONTOSO"
$user = "testuser"
$badPwd = "IncorrectPassword123!"
1..3 | ForEach-Object {
$null = [System.DirectoryServices.AccountManagement.PrincipalContext]::new('Domain', $domain).ValidateCredentials($user, $badPwd)
Start-Sleep -Milliseconds 500
}
# 3. Kerberoasting via Rubeus (richiede Rubeus.exe nel PATH)
$rubeusPath = "$env:ProgramFilesRubeusRubeus.exe"
if (-Not (Test-Path $rubeusPath)) {
Write-Host "Rubeus non trovato – salta il passaggio Kerberoasting."
} else {
& $rubeusPath kerberoast /outfile:"C:Tempkerb_tickets.kirbi"
}
Start-Sleep -Seconds 5
# 4. Estrazione NTDS.dit usando VSS (replicazione 4662)
# Crea una copia ombra VSS e copia NTDS.dit
$shadow = (vssadmin list shadows | Select-String -Pattern "ShadowCopy Volume" -Context 0,1).Line.Split()[-1]
$ntdsSource = "$shadowWindowsNTDSNTDS.dit"
$ntdsDest = "C:TempNTDS_dump.dit"
if (Test-Path $ntdsSource) {
Copy-Item -Path $ntdsSource -Destination $ntdsDest -Force
}
Start-Sleep -Seconds 5
Write-Host "Simulazione completata. Tutta la telemetria dovrebbe essere stata ingerita."
Comandi per la Pulizia
# -------------------------------------------------
# Pulizia – rimuove gli artefatti creati dalla simulazione
# -------------------------------------------------
# Rimuove il finto ADExplorer se è stato creato
Remove-Item -Path "$env:ProgramFilesSysinternalsADExplorer.exe" -ErrorAction SilentlyContinue
# Elimina il dump Kerberos
Remove-Item -Path "C:Tempkerb_tickets.kirbi" -ErrorAction SilentlyContinue
# Elimina il dump NTDS
Remove-Item -Path "C:TempNTDS_dump.dit" -ErrorAction SilentlyContinue
# Cancella eventuali copie ombra create (richiede admin)
# vssadmin delete shadows /all /quiet
Write-Host "Pulizia terminata."