Operação Poisson: Desvendando Toda uma Operação Cibercriminoso
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Um agente de ameaça de baixa qualificação conhecido como “Poisson” realizou uma campanha de roubo de credenciais em várias etapas, visando indivíduos franceses e uma pequena empresa. O atacante usou Havoc C2, um keylogger Python personalizado, e construiu acesso resiliente por meio do OpenSSH e de uma malha VPN Tailscale. Essa configuração permitiu que o operador mantivesse o acesso mesmo após a interrupção da infraestrutura principal de comando e controle.
Investigação
A Cato CTRL conduziu uma revisão pós-incidente aprofundada que cobriu 33 dias de atividade do atacante e 339 comandos registrados. A investigação revelou o uso de serviços gratuitos como Backblaze B2, DuckDNS e IONOS, juntamente com um design de persistência destinado a sobreviver a remoções de C2. Os pesquisadores também recuperaram o playbook SSH do operador e chaves SSH das vítimas, que foram expostos por engano em um bucket de armazenamento público.
Mitigação
Os defensores devem gerar alertas para a implantação de servidores OpenSSH em estações de trabalho e monitorar a atividade do Tailscale VPN em sistemas onde isso não é esperado. As organizações também precisam detectar túneis reversos SSH e rastrear tarefas agendadas suspeitas que são executadas com privilégios elevados. A remediação eficaz deve ir além da remoção de acesso C2 e incluir a eliminação de mecanismos de persistência baseados em VPN em malha.
Resposta
Quando essa atividade for identificada, as equipes de segurança devem imediatamente localizar e desmontar quaisquer conexões de malha Tailscale ou SSH ativas. Os investigadores devem revisar todas as tarefas agendadas e atalhos de inicialização para persistência não autorizada. É fortemente recomendado um reset completo de credenciais para todos os usuários, já que o uso de um keylogger cria uma alta probabilidade de comprometimento de credenciais.
Fluxo de Ataque
Detecções
Serviço de DNS Dinâmico Possivelmente Contatado (via dns)
Visualizar
Detecção de Roubo de Credenciais e Hospedagem de Payloads via Buckets Backblaze B2 [Windows Sysmon]
Visualizar
Acesso Persistente à Rede via VPN Tailscale e Túnel Reverso SSH [Conexão de Rede Windows]
Visualizar
Execução da Estrutura Havoc C2 com PowerShell para Estabelecer Túnel SSH [Windows Powershell]
Visualizar
Escalonamento de Privilégios e Execução de Ferramenta Remota por Poisson [Criação de Processo Windows]
Visualizar
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria & Baseline deve ter sido aprovado.
Justificativa: Esta seção detalha a execução precisa da técnica de 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. Exemplos abstratos ou não relacionados levarão a diagnósticos errados.
-
Narrativa do Ataque & Comandos: O adversário, simulando o grupo “Poisson”, visa estabelecer uma base de acesso remoto. Primeiro, eles preparam um payload criando um arquivo chamado
thales.zipem um diretório temporário. Para elevar privilégios, eles executam um comando PowerShell usando o verboRunAs, que é um método comum para acionar prompts UAC. Finalmente, eles executamrustdesk.exepara fornecer um canal de comunicação de área de trabalho remota secundário. Esta sequência imita o padrão comportamental específico (elevação de UAC + RustDesk + arquivo zip específico) definido na regra de detecção. -
Script de Teste de Regressão:
# Script de Simulação: Emulação de TTP Poisson # 1. Preparar o arquivo 'thales.zip' (necessário pela lógica de detecção) $targetZip = "$env:TEMPthales.zip" New-Item -Path $targetZip -ItemType File -Force Write-Host "[+] Preparado $targetZip" # 2. Simular tentativa de Elevação de UAC via PowerShell (necessário pela lógica de detecção) # Nota: Isto acionará um prompt de UAC em um ambiente real. Write-Host "[+] Tentando Elevação de UAC via Start-Process -Verb RunAs..." Start-Process powershell.exe -ArgumentList "-Command Write-Host 'Elevação Tentada'" -Verb RunAs # 3. Simular execução do RustDesk (necessário pela lógica de detecção) # Criamos um rustdesk.exe fictício na pasta temporária para acionar a detecção sem instalação real $rustdeskPath = "$env:TEMPrustdesk.exe" New-Item -Path $rustdeskPath -ItemType File -Force Write-Host "[+] Executando RustDesk simulado em $rustdeskPath" Start-Process $rustdeskPath -
Comandos de Limpeza:
# Limpeza de Artefatos de Simulação Remove-Item -Path "$env:TEMPthales.zip" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue Write-Host "[+] Limpeza completa."