Um Arsenal Compartilhado: Identificando TTPs Comuns em RATs
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma publicação da Splunk revisa como muitas famílias de trojans de acesso remoto e ladrões convergem no mesmo conjunto básico de técnicas MITRE ATT&CK. Destaca comportamentos repetitivos como transferência de ferramentas de entrada, descoberta de host e rede, persistência de registro e de tarefas agendadas, evasão de defesa e roubo de credenciais. Ao mesmo tempo, observa pequenas diferenças de implementação que ainda podem ajudar a separar famílias durante a triagem. Esta abordagem apoia uma caça mais consistente entre famílias.
Investigação
A equipe mapeou cerca de dezoito famílias de malware para ATT&CK, resumiu os TTPs sobrepostos e incluiu fragmentos de código práticos cobrindo persistência, manipulação de token e uso de serviços web. Exemplos abrangem consultas WMI, escritas em Run-key, criação de schtasks e comandos PowerShell que adicionam exclusões ao Windows Defender.
Mitigação
A orientação prioriza detecções centradas em técnicas em vez de nomes de famílias: observe o abuso de utilitários comuns (schtasks, reg, WMI), restrinja o tráfego de serviços web de saída e endureça os controles de acesso a credenciais. Também recomenda apertar as políticas de exclusão do Windows Defender e alertar sobre mudanças de privilégios de token.
Resposta
Quando essas técnicas são detectadas, isole o endpoint, colete artefatos chave (hives de registro, definições de tarefas agendadas, logs de linha de comando) e busque IOCs relacionados em todo o patrimônio. Remova a persistência, aplique bloqueios baseados em indicadores para domínios e hashes conhecidos, e expanda as detecções para cobrir os comportamentos compartilhados.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
Possível Tentativa de Comunicação de Domínio por Lookup de IP (via dns)
Proof of Value
Schtasks Apontando para Diretório / Binário / Script Suspeito (via cmdline)
Proof of Value
Desativando Proteções do Windows Defender (via registry_event)
Proof of Value
Possível Infiltração / Exfiltração de Dados / C2 via Serviços / Ferramentas de Terceiros (via proxy)
Proof of Value
Possível Infiltração / Exfiltração de Dados / C2 via Serviços / Ferramentas de Terceiros (via dns)
Proof of Value
Alterações Suspeitas nas Preferências do Windows Defender (via powershell)
Proof of Value
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via registry_event)
Proof of Value
Criação de Tarefas Agendadas via Schtasks.exe [Criação de Processo do Windows]
Proof of Value
Detectar Run Keys de Registro para Persistência [Evento de Registro do Windows]
Proof of Value
Execução de Simulação
Pré-requisito: O Check Preliminar de Telemetria e Linha de Base deve ter passado.
Justificação: Esta seção detalha a execução precisa da técnica do adversário (TTP) concebida 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 e Comandos de Ataque:
- Reconhecimento: O atacante enumera a versão do SO para verificar se o alvo é uma máquina Windows capaz de usar Run‑keys.
- Preparação da Carga Útil: Um executável de teste inofensivo (
notepad.exe) é escolhido para evitar impacto malicioso real ao mesmo tempo que representa uma carga útil de persistência típica. - Implante de Persistência: Usando
reg.exe, o atacante escreve um novo valor de string nomeadoProvingMalwaresobHKCUSoftwareMicrosoftWindowsCurrentVersionRun, apontando paraC:WindowsSystem32notepad.exe. Isso gera o EventID 4657 com o caminho do Run‑key, satisfazendo a regra de detecção. - Verificação: O atacante consulta o registro para confirmar que o valor existe.
-
Script de Teste de Regressão:
# ------------------------------------------------- # Provando – Simulação de Persistência de Run‑Key de Registro # ------------------------------------------------- try { # 1. Verifique se o SO é Windows if (-not $IsWindows) { throw "Script can only run on Windows." } # 2. Defina o caminho do Run‑key e a carga útil maliciosa $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" $valueName = "ProvingMalware" $payloadPath = "$env:SystemRootSystem32notepad.exe" # 3. Escreva o Run‑key malicioso (isso aciona o EventID 4657) New-ItemProperty -Path $runKey -Name $valueName -Value $payloadPath -PropertyType String -Force | Out-Null Write-Host "[+] Run‑key $valueName added under $runKey pointing to $payloadPath" } catch { Write-Error "[!] $($_.Exception.Message)" } -
Comandos de Limpeza:
# Remova o valor de persistência simulado $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" $valueName = "ProvingMalware" if (Test-Path "$runKey") { Remove-ItemProperty -Path $runKey -Name $valueName -ErrorAction SilentlyContinue Write-Host "[+] Cleaned up Run‑key $valueName" }