Caminhos de Ataque ESC1 e ESC8: De Engenharia Social ao Abuso de AD CS
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Os agentes de ameaça usaram engenharia social através do Microsoft Teams para se passarem por funcionários da assistência técnica de TI e estabeleceram acesso remoto com o Quick Assist. Após ganhar acesso, eles abusaram de Serviços de Certificados Active Directory (AD CS) mal configurados através das técnicas ESC1 e ESC8 para escalar privilégios e obter autenticação a nível de domínio. As intrusões permitiram o cadastramento não autorizado de certificados, atividade de DCSync e subsequente exfiltração de dados.
Investigação
A investigação reconstruiu a cadeia de ataque desde a interação de phishing inicial pelo Teams até o posterior abuso dos certificados. Os analistas correlacionaram telemetria de sessões remotas, execução de runtime suspeito de diretórios graváveis por usuários e eventos do AD CS, incluindo pedidos de cadastro de certificados e atividade PKINIT. Desajustes entre identidades autenticadas e dispositivos de origem forneceram pivôs importantes para identificar potenciais ataques de NTLM relay.
Mitigação
As organizações devem aplicar procedimentos de verificação rigorosos para pedidos de suporte não solicitados e restringir o acesso externo no Microsoft Teams. As mitigações técnicas incluem o uso do App Control for Business para bloquear runtimes não autorizados e endurecer o AD CS ativando a Extended Protection for Authentication (EPA) e HTTPS nos endpoints de cadastro. Desabilitar o NTLM nos serviços de cadastro e auditar regularmente os modelos de certificado também são críticos.
Resposta
Quando uma atividade maliciosa é detectada, os responsáveis devem imediatamente isolar as estações de trabalho afetadas e revisar as identidades comprometidas para riscos de exclusão. Certificados não autorizados devem ser revogados e informações de revogação atualizadas devem ser publicadas. Tickets de Kerberos ativos devem ser avaliados separadamente, pois a revogação de certificados não invalida TGTs existentes. A contenção manual também deve ser atribuída a contas excluídas da interrupção automatizada.
Fluxo de Ataque
Detecções
Possível Descoberta de Configuração de Rede do Sistema (via linha de comando)
Binário Java Executado de Localização Incomum (via criação de processo)
Software Alternativo de Acesso / Gestão Remota (via criação de processo)
Eventos de Pedido de Certificado para Controlador de Domínio [ADCS] (via auditoria)
Eventos de Pedido de Certificado [ADCS] (via auditoria)
Uso de Modelo de ADCS Mal Configurado [ESC1/SAN] (via auditoria)
Possível Ataque Coagido (via auditoria)
Ações Suspeitas Relacionadas a Certificado Tentadas (via auditoria)
Possível Exploração de Ataque PetitPotam/ADCS-ESC8 [MS-EFSRPC/ADCS-PKI] (via auditoria)
Possível Ataque DCSync (via auditoria)
Possível Acesso Não Autorizado pelo Quick Assist (via auditoria)
IOCs (HashSha256) para detectar: De personificação do help desk ao abuso de AD CS: Investigando caminhos de intrusão ESC1 e ESC8
Abuso de Modelo de Certificado e Detecção de NTLM Authentication Relay [Log de Eventos de Segurança do Windows]
Abuso de Autenticação Baseada em Certificado com Conexões LDAPS e SMB [Conexão de Rede Windows]
Phishing no Teams e Execução de Runtime Portátil para Acesso Não Autorizado [Criação de Processo no Windows]
Execução de Simulação
-
Narrativa & Comandos de Ataque: O adversário inicia uma campanha de phishing via Microsoft Teams, se passando por suporte de TI. Eles instruem a vítima a abrir “Quick Assist”. Uma vez que a sessão está estabelecida, o atacante usa o acesso remoto para introduzir um portátil
python.exeem um diretório disfarçado:C:Users<User>AppDataRoamingKB. Finalmente, para facilitar o movimento lateral, o atacante executasysteminfoandipconfigpara coletar dados de reconhecimento no host. -
Script de Teste de Regressão:
# Script de Simulação: Phishing no Teams & Execução de Runtime Portátil # 1. Configuração: Criar o diretório 'malicioso' no AppData $targetDir = "$env:APPDATAKB" if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force } # 2. Simular o runtime portátil (criando um arquivo dummy nomeado python.exe) # Em um ataque real, isto seria um binário real. $dummyPython = Join-Path $targetDir "python.exe" New-Item -Path $dummyPython -ItemType File -Force # 3. Simular o processo pai 'Teams' gerando Quick Assist # Nota: Como não podemos facilmente falsificar toda a árvore de processo de Teams.exe em um único script # sem injeções avançadas, simulamos a telemetria imitando a linha de comando # e o comportamento esperado de uma forma que imita a lógica. Write-Host "[!] Simulando Sequência de Ataque..." # Acionar a lógica de detecção simulando a cadeia de processo # Nota: Para acionar a regra Sigma específica, o processo 'python.exe' # deve ser visto como um filho de 'Teams.exe' no fluxo de telemetria. # Etapa A: Simular Teams chamando Quick Assist (Simulação Manual de Telemetria) # Em um ambiente de teste real, você pode usar uma ferramenta como 'ProcessHacker' ou 'Sysmon' # para manipular PIDs [Process Identifiers] de processo pai, mas para este script, executaremos a sequência. Start-Process "cmd.exe" -ArgumentList "/c echo Simulando Teams chamando Quick Assist" # Etapa B: Executar o 'runtime portátil' do caminho específico Start-Process -FilePath $dummyPython -ArgumentList "--version" -ErrorAction SilentlyContinue # Etapa C: Executar Comandos de Descoberta Start-Process "cmd.exe" -ArgumentList "/c systeminfo" Start-Process "cmd.exe" -ArgumentList "/c ipconfig" Start-Process "cmd.exe" -ArgumentList "/c tasklist" Write-Host "[+] Simulação concluída. Verifique SIEM para alertas." -
Comandos de Limpeza:
# Limpeza: Remover o diretório e arquivos simulados maliciosos $targetDir = "$env:APPDATAKB" if (Test-Path $targetDir) { Remove-Item -Path $targetDir -Recurse -Force Write-Host "[+] Limpeza bem-sucedida: $targetDir removido." } else { Write-Host "[-] Falha na limpeza: Diretório não encontrado." }