SOC Prime Bias: Médio

04 Jul 2026 07:02 UTC

ADWS e o Caminho Oculto para Enumeração do Active Directory

Author Photo
SOC Prime Team linkedin icon Seguir
ADWS e o Caminho Oculto para Enumeração do Active Directory
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo descreve um método furtivo para a enumeração do Active Directory através do protocolo Active Directory Web Services (ADWS) sobre a porta TCP 9389. Ao depender do ADWS em vez do LDAP padrão nas portas 389 ou 636, os atacantes podem evitar muitas detecções comuns de rede e alertas de EDR. Esta abordagem abusa de protocolos administrativos legítimos e ferramentas para disfarçar a atividade de reconhecimento.

Investigação

A investigação examina as camadas técnicas por trás do ADWS, incluindo .NET Message Framing, NegotiateStream e a codificação binária SOAP NBFSE. Explica como esses componentes melhoram a segurança operacional ao obscurecer o tráfego de rede e tornar a fonte das consultas mais difícil de identificar. O autor também apresenta uma ferramenta de prova de conceito chamada ADWSHound para demonstrar e validar a técnica.

Mitigação

As mitigacões recomendadas incluem monitorar o tráfego na porta TCP 9389, habilitar o registro de diagnóstico do serviço de diretório com o Evento 1644 e aplicar auditoria de acesso através de SACLs em objetos de diretório sensíveis. As organizações também devem considerar o uso de objetos isca para detectar enumerações não autorizadas. Correlacionar eventos do Serviço de Diretório por ID de Operação pode ajudar ainda mais na reconstrução de atividade suspeita de enumeração.

Resposta

Se esse comportamento for detectado, os respondedores devem investigar a origem da conexão pela porta 9389 e identificar qualquer processo que não tenha uma razão legítima para se comunicar via ADWS. A conta usada para as consultas de diretório deve então ser correlacionada com sessões ativas em todo o ambiente para localizar o sistema comprometido. O Evento 4662 também deve ser revisado para sinais de acesso não autorizado a objetos protegidos.

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Telemetria & Verificação de Pré-voo Base devem 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 têm como objetivo gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.

  • Narrativa de Ataque & Comandos: Um adversário ganhou acesso inicial a uma estação de trabalho e está tentando enumerar usuários do domínio para facilitar o movimento lateral. Para evitar a detecção por ferramentas básicas baseadas em assinatura, o atacante decide usar o módulo oficial Active Directory do PowerShell da Microsoft. Eles executam Get-ADUser para extrair uma lista de todos os usuários no domínio. Esta ação força o Active Directory Web Services (ADWS) a processar a consulta LDAP, que, devido ao registro de diagnóstico estar habilitado, gera um Evento do Windows 1644 contendo a string “Get-ADUser”, acionando assim nossa regra de detecção.

  • Script de Teste de Regressão:

     # Assegure-se de que o módulo Active Directory está disponível
      if (!(Get-Module -ListAvailable ActiveDirectory)) {
          Write-Error "Este script requer o módulo de Active Directory do RSAT."
          return
      }
    
      Write-Host "[+] Iniciando Simulação: Enumeração LDAP via Get-ADUser" -ForegroundColor Cyan
    
      # Acione a detecção consultando um único usuário usando o padrão Get-AD*
      # Espera-se que isso gere o Evento ID 1644 no log do Serviço de Diretório
      try {
          Get-ADUser -Filter * -ResultSetSize 1 | Out-Null
          Write-Host "[+] Comando de simulação executado com sucesso." -ForegroundColor Green
          Write-Host "[+] Verificar logs do Serviço de Diretório para o Evento ID 1644 contendo 'Get-AD*'" -ForegroundColor Yellow
      }
      catch {
          Write-Host "[-] Erro ao executar comando: $($_.Exception.Message)" -ForegroundColor Red
      }
  • Comandos de Limpeza:

     # Nenhuma alteração permanente foi feita na base de dados do AD.
      # Se os níveis de diagnóstico do registro foram aumentados manualmente, revertê-los:
      # Set-ItemProperty -Path "HKLM:SystemCurrentControlSetServicesNTDSDiagnostics" -Name "16 LDAP Interface Contained" -Value 0
      Write-Host "[+] Limpeza completa. Nenhuma alteração de estado para reverter." -ForegroundColor Cyan