BlackToad Utiliza Manipulação de Rede em um Payload AutoIt
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
A JUMPSEC descobriu uma campanha de phishing que entrega uma carga útil do Remcos RAT disfarçada dentro de um cryptor AutoIt personalizado. A cadeia de infecção usa um script VBS para executar ipconfig /release seguido por ipconfig /renew, interrompendo brevemente a conectividade de rede como forma de evadir detecção. Os pesquisadores vincularam a campanha ao ecossistema de e-crime nigeriano, com infraestrutura baseada em domínios de DNS dinâmico hospedados por trás de conexões de ISP móvel.
Investigação
A investigação seguiu o e-mail malicioso, descompactou o arquivo WinRAR auto-extraível incorporado e identificou um carregador VBS que lançou um interpretador AutoIt disfarçado. O script AutoIt então descriptografou e executou o implante Remcos, enquanto a configuração recuperada expôs os domínios de comando e controle, o valor do mutex e uma chave de execução Run para persistência. Os pesquisadores mapearam a infraestrutura de suporte para três domínios de DNS dinâmicos e um conjunto rotativo de endereços IP nigerianos.
Mitigação
As organizações devem bloquear os domínios de DNS dinâmicos identificados e os intervalos de IP associados, monitorar a sequência suspeita ipconfig /release and ipconfig /renew e detectar scripts AutoIt ou VBS iniciando cmd.exe. Controles fortes de execução também devem ser aplicados a arquivos que usam extensões duplas enganosas, enquanto entradas de Run no registro, como WindowsUpdate devem ser monitoradas para abuso.
Resposta
Se esta atividade for detectada, isole imediatamente o endpoint afetado, termine o processo Remcos, remova a chave de execução maliciosa usada para persistência e execute uma revisão forense completa para roubo de credenciais ou atividades subsequentes. O conteúdo de detecção também deve ser atualizado para identificar a técnica de blackout de rede e os padrões de nome de arquivo específicos relacionados à campanha.
graph TB %% Definições de classes classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef data fill:#ccffcc %% Nós email_phishing[“<b>Ação</b> – <b>T1204.001 Execução pelo utilizador: link malicioso</b><br/>A vítima recebe um email com uma imagem contendo um link malicioso do MediaFire.”] class email_phishing action download_payload[“<b>Ação</b> – <b>T1566.001 Phishing: anexo de spearphishing</b><br/>A vítima descarrega um executável WinRAR SFX disfarçado como .pdf.scr.”] class download_payload action file_double_ext[“<b>Ação</b> – <b>T1036.007 Mascaramento: dupla extensão de ficheiro</b><br/>O ficheiro chamado <i>invoice.pdf.scr</i> oculta um executável .scr.”] class file_double_ext action script_vbs[“<b>Ação</b> – <b>T1059.005 Interpretador de comandos e scripts: Visual Basic</b><br/>O script VBS (flvs.vbe) constrói uma cadeia cmd.exe e executa comandos.”] class script_vbs action tool_autoi[“<b>Ferramenta</b> – <b>Nome</b>: Interpretador AutoIt (renomeado como .xls)<br/><b>Objetivo</b>: Executa script AutoIt malicioso.”] class tool_autoi tool script_autoi_obf[“<b>Ação</b> – <b>T1059.010 Interpretador de comandos e scripts: AutoIt/AutoHotKey</b><br/>É executado um script AutoIt fortemente ofuscado.”] class script_autoi_obf action obfusc_junk[“<b>Ação</b> – <b>T1027.016 Ficheiros ou informação ofuscados: inserção de código lixo</b><br/>O script contém 88 MB de blocos de comentários sem significado.”] class obfusc_junk action obfusc_stripped[“<b>Ação</b> – <b>T1027.008 Ficheiros ou informação ofuscados: payloads reduzidos</b><br/>Payload empacotado dentro de grandes dados de enchimento com codificação hexadecimal personalizada.”] class obfusc_stripped action malware_remcos[“<b>Malware</b> – <b>Nome</b>: Remcos RAT<br/><b>Função</b>: Acesso e controlo remoto.”] class malware_remcos malware c2_dns[“<b>Ação</b> – <b>T1071.004 Protocolo de camada de aplicação: DNS</b><br/>Comunica com servidores C2 através de hostnames Dynamic DNS sobre TLS cifrado.”] class c2_dns action persistence_autostart[“<b>Ação</b> – <b>T1547.014 Execução automática no arranque ou logon: Active Setup</b><br/>Cria a chave de registo HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WindowsUpdate.”] class persistence_autostart action trusted_util[“<b>Ação</b> – <b>T1127 Execução proxy com utilitários de desenvolvimento confiáveis</b><br/>Usa o interpretador legítimo AutoIt como utilitário confiável para executar código malicioso.”] class trusted_util action deobfuscation[“<b>Ação</b> – <b>T1140 Desofuscar/decodificar ficheiros ou informação</b><br/>Investigadores descodificam PE com codificação hexadecimal personalizada e configuração Remcos cifrada com RC4.”] class deobfuscation action %% Ligações email_phishing –>|leva a| download_payload download_payload –>|contém| file_double_ext file_double_ext –>|ativa| script_vbs script_vbs –>|carrega| tool_autoi tool_autoi –>|executa| script_autoi_obf script_autoi_obf –>|inclui| obfusc_junk script_autoi_obf –>|inclui| obfusc_stripped script_autoi_obf –>|lança| malware_remcos malware_remcos –>|usa| c2_dns malware_remcos –>|estabelece| persistence_autostart tool_autoi –>|usado_como| trusted_util obfusc_junk –>|facilita| deobfuscation obfusc_stripped –>|facilita| deobfuscation
Fluxo de Ataque
Detecções
Possíveis Pontos de Persistência [ASEPs – Hive de Software/NTUSER] (via registry_event)
Ver
Possível Serviço DNS Dinâmico Contatado (via dns)
Ver
Possível Arquivo SCR Malicioso com Extensão Dupla (via cmdline)
Ver
IOCs (HashSha256) para detectar: BlackToad: Manipulação de Rede em uma Carga Útil do AutoIt
Ver
IOCs (HashMd5) para detectar: BlackToad: Manipulação de Rede em uma Carga Útil do AutoIt
Ver
IOCs (SourceIP) para detectar: BlackToad: Manipulação de Rede em uma Carga Útil do AutoIt
Ver
IOCs (DestinationIP) para detectar: BlackToad: Manipulação de Rede em uma Carga Útil do AutoIt
Ver
Detecção de Comunicação C2 do BlackToad [Conexão de Rede do Windows]
Ver
Manipulação de Rede BlackToad via Carga Útil do AutoIt [Criação de Processo no Windows]
Ver
Execução de Simulação
Pré-requisito: A Verificação de Pré-vôo de Telemetria e Linha de 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. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.
-
Narrativa do Ataque e Comandos:
- Objetivo: Estabelecer um canal C2 com o implante Remcos do BlackToad usando um dos domínios DDNS maliciosos conhecidos na porta hard-coded 50240.
- Passo a passo:
- Resolver o domínio DDNS malicioso escolhido (
pmitm.ddns.net). - Abrir um socket TCP para o IP resolvido na porta 50240.
- Enviar um “heartbeat” mínimo para emular o handshake inicial do implante.
- Manter o socket aberto por 30 segundos para garantir que o firewall registre a conexão de saída.
- Resolver o domínio DDNS malicioso escolhido (
- A conexão de saída corresponde exatamente à lista
destination.ipedestination.portdos critérios da regra Sigma, produzindo um evento detectável no firewall.
-
Script de Teste de Regressão:
# Simulação de comunicação C2 do BlackToad (PowerShell) $c2Domain = "pmitm.ddns.net" # um dos domínios listados na regra $c2Port = 50240 try { # Resolver domínio para IP (adiciona telemetria de consulta DNS) $ip = [System.Net.Dns]::GetHostAddresses($c2Domain) | Where-Object { $_.AddressFamily -eq 'InterNetwork' } | Select-Object -First 1 if (-not $ip) { throw "Não foi possível resolver $c2Domain" } Write-Host "Resolveu $c2Domain para $($ip.IPAddressToString). Conectando..." # Abrir conexão TCP (gera log de saída do firewall) $client = New-Object System.Net.Sockets.TcpClient $client.Connect($ip, $c2Port) # Enviar um simples heartbeat (hex 0x01) $stream = $client.GetStream() $payload = [byte[]](0x01) $stream.Write($payload, 0, $payload.Length) Write-Host "Heartbeat enviado. Mantendo a conexão ativa por 30 segundos..." Start-Sleep -Seconds 30 $stream.Close() $client.Close() Write-Host "Conexão encerrada com sucesso." } catch { Write-Error "Simulação falhou: $_" } -
Comandos de Limpeza:
# Garantir que quaisquer sockets persistentes sejam fechados Get-NetTCPConnection -RemotePort 50240 -State Established | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Opcional: Limpar o cache DNS para remover a entrada DDNS resolvida ipconfig /flushdns Write-Host "Limpeza completa."