Estudo de Caso: Como a Proteção Preditiva do Defender Bloqueou Ransomware Baseado em GPO Antes da Execução
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O Microsoft Defender interrompeu um ataque de ransomware operado manualmente, direcionado a uma grande organização educacional, ao detectar abuso de Objetos de Diretiva de Grupo (GPOs) usados para enfraquecer configurações de segurança e distribuir ransomware por meio de tarefas agendadas.
Investigação
Os atacantes comprometeram uma conta de administrador de domínio, realizaram enumeração do Active Directory, forçaram credenciais, coletaram tickets Kerberos e dados NTDS, criaram contas locais fraudulentas e implantaram GPOs maliciosos para impor uma política de adulteração e acionar a entrega de ransomware por meio de tarefas agendadas.
Mitigação
A proteção preditiva do Defender identificou a atividade maliciosa do GPO, impôs o endurecimento temporário do GPO, bloqueou a distribuição do ransomware por tarefa agendada e evitou a criptografia em 97% dos dispositivos.
Resposta
Após a detecção, os defensores devem imediatamente ativar o endurecimento do GPO, conter contas comprometidas, bloquear tráfego SMB suspeito e investigar por métodos adicionais de persistência, incluindo a criação não autorizada de contas locais.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef builtin fill:#cccccc %% Reconnaissance Nodes recon_action["<b>Ação</b> – Reconhecimento<br/>Usou AD Explorer para enumerar o Active Directory e fez a tentativa de adivinhar senhas."] class recon_action action recon_brute["<b>Técnica</b> – T1110 Força Bruta: Tentativa de Adivinhar Senhas<br/><b>Descrição</b> Tentativas de adivinhar senhas usando tentativa e erro."] class recon_brute technique recon_account["<b>Técnica</b> – T1087.002 Descoberta de Conta: Conta de Domínio<br/><b>Descrição</b> Enumera contas de usuários de domínio."] class recon_account technique recon_gpo["<b>Técnica</b> – T1615 Descoberta de Diretiva de Grupo<br/><b>Descrição</b> Recupera as configurações de Diretiva de Grupo dos controladores de domínio."] class recon_gpo technique %% Reconnaissance Connections recon_action –>|usa| recon_brute recon_action –>|descobre| recon_account recon_action –>|descobre| recon_gpo %% Credential Access Nodes action_cred["<b>Ação</b> – Acesso a Credenciais<br/>Executou Kerberoasting e extraiu NTDS.dit."] class action_cred action tech_kerb["<b>Técnica</b> – T1558.003 Kerberoasting<br/><b>Descrição</b> Solicita tickets de serviço e os quebra offline."] class tech_kerb technique tech_ntds["<b>Técnica</b> – T1003.003 Despejo de Credenciais do SO: NTDS<br/><b>Descrição</b> Extrai hashes de senha do banco de dados do Active Directory."] class tech_ntds technique %% Credential Access Connections action_cred –>|usa| tech_kerb action_cred –>|usa| tech_ntds %% Persistence Nodes action_persist["<b>Ação</b> – Persistência<br/>Criou novas contas locais em hosts comprometidos."] class action_persist action tech_create_local["<b>Técnica</b> – T1136.001 Criar Conta: Conta Local<br/><b>Descrição</b> Adiciona contas de usuários locais para acesso contínuo."] class tech_create_local technique %% Persistence Connections action_persist –>|usa| tech_create_local %% Lateral Movement Nodes action_lateral["<b>Ação</b> – Movimento Lateral<br/>Usou credenciais de domínio roubadas para acessar compartilhamentos de administrador remoto via SMB."] class action_lateral action tech_smb["<b>Técnica</b> – T1021.002 Serviços Remotos Compartilhamentos SMB/Windows Admin<br/><b>Descrição</b> Usa compartilhamentos SMB para movimento lateral."] class tech_smb technique %% Lateral Movement Connections action_lateral –>|usa| tech_smb %% Defense Evasion Nodes action_evasion["<b>Ação</b> – Evasão de Defesa<br/>Implantou GPO malicioso para desativar o Microsoft Defender."] class action_evasion action tech_gpo_mod["<b>Técnica</b> – T1484 Modificação de Política de Domínio ou Locatário<br/><b>Descrição</b> Altera Objetos de Diretiva de Grupo para mudar configurações de segurança."] class tech_gpo_mod technique tech_impair["<b>Técnica</b> – T1562.001 Deteriorar Defesas Desativar ou Modificar Ferramentas<br/><b>Descrição</b> Desativa ou modifica ferramentas de segurança."] class tech_impair technique %% Defense Evasion Connections action_evasion –>|modifica| tech_gpo_mod action_evasion –>|desativa| tech_impair %% Impact Preparation Nodes action_impact["<b>Ação</b> – Preparação de Impacto<br/>Criou tarefa agendada via GPO para copiar e executar arquivos em todas as máquinas do domínio."] class action_impact action tech_scheduled["<b>Técnica</b> – T1053 Tarefa/Job Agendado<br/><b>Descrição</b> Agenda a execução de comandos em horários definidos."] class tech_scheduled technique tech_cmd["<b>Técnica</b> – T1059.003 Interpretador de Comando e Script Windows Command Shell<br/><b>Descrição</b> Executa arquivos em lote usando cmd.exe."] class tech_cmd technique tech_rundll["<b>Técnica</b> – T1218.011 Execução Proxy de Binário do Sistema Rundll32<br/><b>Descrição</b> Carrega DLLs maliciosos via rundll32.exe."] class tech_rundll technique %% Impact Preparation Connections action_impact –>|cria| tech_scheduled action_impact –>|executa| tech_cmd action_impact –>|usa| tech_rundll %% Ransomware Deployment Nodes action_ransom["<b>Ação</b> – Implantação de Ransomware<br/>Payload tenta criptografar arquivos; Defender bloqueou a propagação de GPO em muitos dispositivos."] class action_ransom action tech_encrypt["<b>Técnica</b> – T1486 Dados Criptografados para Impacto<br/><b>Descrição</b> Criptografa dados da vítima para exigir resgate."] class tech_encrypt technique %% Ransomware Deployment Connections action_ransom –>|usa| tech_encrypt %% Overall Flow Sequence recon_action –>|leads_to| action_cred action_cred –>|leads_to| action_persist action_persist –>|leads_to| action_lateral action_lateral –>|leads_to| action_evasion action_evasion –>|leads_to| action_impact action_impact –>|leads_to| action_ransom "
Fluxo de Ataque
Detecções
Atividade Possível de Kerberoasting [correlato/bucket_span_10m/por src_ipaddr] (via auditoria)
Visualizar
Padrões Possíveis da Ferramenta AD Explorer (via cmdline)
Visualizar
Desativar Monitoramento em Tempo Real do Windows Defender e Outras Alterações de Preferências (via cmdline)
Visualizar
Detecção de Atividades de Enumeração de Active Directory e Coleta de Credenciais [Registro de Evento de Segurança Microsoft Windows]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação de Pré-vôo de Telemetria & Base deve ter passado.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
Narrativa do Ataque & Comandos
-
Enumeração de Active Directory com ADExplorer – Um atacante usa a utilitário living-off-the-land ADExplorer.exe para navegar no banco de dados do AD, gerando um evento de criação de processo que corresponde a
Imagem|termina com: 'ADExplorer.exe'. -
Força Bruta de Credenciais (T1110) – O atacante realiza um spray de senhas contra uma conta de domínio, causando repetidas tentativas de logon falhadas (Evento 4625) com a razão da falha
%#13(“O usuário tentou fazer logon de um domínio não confiável”). -
Kerberoasting (T1558.003) – Usando a ferramenta de código aberto Rubeus, o atacante solicita tickets de serviço Kerberos para SPNs de contas de computador (por exemplo,
HOST01$). Cada solicitação gera o Evento 4769 ondeNome do Serviçotermina com$. -
Dump de NTDS (T1003.003) – O atacante cria uma Cópia de Sombra de Volume do drive do sistema e extrai
NTDS.ditusandontdsutil, causando o Evento 4662 comTipo de Objeto = "ds"andTipo de Operação = "Replicação".
Todas as quatro ações são executadas no mesmo host dentro de uma janela de 5 minutos para emular uma fase realista de “colheita” pós-comprometimento.
Script de Teste de Regressão
# -------------------------------------------------
# Script de Simulação – Aciona todos os quatro caminhos de detecção
# -------------------------------------------------
# 1. Execução ADExplorer (criação de processo)
$adExplorerPath = "$env:ProgramFilesSysinternalsADExplorer.exe"
if (-Not (Test-Path $adExplorerPath)) {
Write-Host "ADExplorer não encontrado – faça o download do placeholder para o teste."
# Simule copiando qualquer exe para o nome esperado
Copy-Item "$env:SystemRootSysnotepad.exe" $adExplorerPath
}
Start-Process -FilePath $adExplorerPath -ArgumentList "/quiet" -WindowStyle Hidden
Start-Sleep -Seconds 5
# 2. Tentativas de login por força bruta (4625 com %#13)
$domain = "CONTOSO"
$user = "usuarioTeste"
$badPwd = "SenhaIncorreta123!"
1..3 | ForEach-Object {
$null = [System.DirectoryServices.AccountManagement.PrincipalContext]::new('Domain', $domain).ValidateCredentials($user, $badPwd)
Start-Sleep -Milliseconds 500
}
# 3. Kerberoasting via Rubeus (requer Rubeus.exe no PATH)
$rubeusPath = "$env:ProgramFilesRubeusRubeus.exe"
if (-Not (Test-Path $rubeusPath)) {
Write-Host "Rubeus não encontrado – pulando etapa de Kerberoasting."
} else {
& $rubeusPath kerberoast /outfile:"C:Tempkerb_tickets.kirbi"
}
Start-Sleep -Seconds 5
# 4. Extração NTDS.dit usando VSS (4662 replicação)
# Crie uma cópia de sombra VSS e copie 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 "Simulação completa. Toda a telemetria deve ser ingerida."
Comandos de Limpeza
# -------------------------------------------------
# Limpeza – remove artefatos criados pela simulação
# -------------------------------------------------
# Remova o falso ADExplorer se foi criado
Remove-Item -Path "$env:ProgramFilesSysinternalsADExplorer.exe" -ErrorAction SilentlyContinue
# Excluir despejo de Kerberos
Remove-Item -Path "C:Tempkerb_tickets.kirbi" -ErrorAction SilentlyContinue
# Excluir despejo de NTDS
Remove-Item -Path "C:TempNTDS_dump.dit" -ErrorAction SilentlyContinue
# Limpe quaisquer cópias de sombra criadas (requer administrador)
# vssadmin delete shadows /all /quiet
Write-Host "Limpeza concluída."