DonutLoader Recarregado em uma Campanha Moderna de Remcos RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
G DATA identificou uma nova campanha Remcos RAT que começa com um arquivo batch malicioso e percorre várias camadas de script, incluindo PowerShell, VBScript e AutoIt, para recuperar e lançar um payload de shellcode DonutLoader. O carregador injeta finalmente o Remcos RAT na binário legítima do Windows colorcpl.exe. Ao longo da cadeia, os atacantes confiam em ferramentas confiáveis como 7-Zip, armazenamento pCloud e múltiplos LOLBins para fazer a atividade parecer rotineira. O uso de shellcode gerado por Donut para injeção de processo marca uma evolução notável na entrega moderna de Remcos.
Investigação
Pesquisadores seguiram todo o caminho de infecção a partir de um anexo de phishing chamado Bestellung.CMD, que lançou cscript.exe para executar um proxy VBScript que decodificou um comando PowerShell codificado em Base64. Esse estágio do PowerShell baixou utilitários do 7-Zip e um arquivo protegido por senha do pCloud, depois descompactou um arquivo JScript que deixou cair um interpretador AutoIt e um PNG falso transportando conteúdo de payload adicional. O componente AutoIt descriptografou dados obfuscados por XOR, reconstruiu o shellcode DonutLoader e o injetou em colorcpl.exe, onde a versão 7.2.1 Pro do Remcos RAT foi executada.
Mitigação
Os defensores devem observar o uso suspeito de cscript.exe, SyncAppvPublishingServer.vbs, e comandos PowerShell IEX contendo conteúdo codificado em Base64, especialmente quando esses processos se originam de arquivos batch. A detecção também deve cobrir aparições inesperadas de 7z.exe and 7z.dll em diretórios de usuário, juntamente com binários AutoIt não autorizados. As proteções baseadas em comportamento devem ser ajustadas para identificar a injeção de processo em colorcpl.exe e atividade consistente com shellcode gerado por Donut.
Resposta
Se esta atividade for detectada, isole o sistema afetado imediatamente, termine os processos suspeitos e capture a memória para análise de shellcode. Os investigadores devem revisar arquivos deixados e quaisquer artefatos excluídos para reconstruir toda a cadeia de execução, enquanto bloqueiam a comunicação com a infraestrutura de comando e controle identificada. A remediação deve incluir a remoção do Remcos RAT e a limpeza de quaisquer utilitários legítimos abusados envolvidos no ataque.
graph TB %% Class definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ff9999 classDef misc fill:#dddddd %% Node definitions phish_spear[“<b>Ação</b> – <b>T1566.001 Phishing: Anexo de spearphishing</b><br/><b>Ficheiro</b>: Bestellung.CMD”]:::technique cmd_shell[“<b>Técnica</b> – <b>T1059.003 Interpretador de comandos e scripts</b><br/>Windows Command Shell”]:::technique vbscript[“<b>Técnica</b> – <b>T1059.005 Interpretador de comandos e scripts</b><br/>Visual Basic (cscript.exe + .vbs)”]:::technique syncappv_proxy[“<b>Técnica</b> – <b>T1216.002 Execução via proxy de script do sistema</b><br/>SyncAppvPublishingServer”]:::technique powershell_hidden[“<b>Técnica</b> – <b>T1059.001 Interpretador de comandos e scripts</b><br/>PowerShell (oculto, descodificação Base64)<br/><b>Subtécnicas</b>: T1027.009 payload embutido, T1564.003 janela oculta”]:::technique ingress_transfer[“<b>Técnica</b> – <b>T1105 Transferência de ferramentas (entrada)</b><br/>Download de utilitários 7z e ZIP protegido por palavra-passe<br/><b>Subtécnica</b>: T1027.015 compressão”]:::technique javascript_masq[“<b>Técnica</b> – <b>T1059.007 Interpretador de comandos e scripts</b><br/>JavaScript (iphdcrtj.js)<br/><b>Mascaramento</b>: T1036.008 PNG falso contendo script AutoIt”]:::technique process_injection[“<b>Técnica</b> – <b>T1055 Injeção de processos</b><br/>Injetado em colorcpl.exe”]:::technique reflective_loader[“<b>Técnica</b> – <b>T1620 Carregamento de código refletivo</b><br/>DonutLoader shellcode → software de acesso remoto (Remcos RAT)”]:::technique c2_comm[“<b>Técnica</b> – <b>T1071 Protocolo de camada de aplicação</b><br/>Comunicação C2”]:::technique %% Connections showing attack flow phish_spear –>|leva_a| cmd_shell cmd_shell –>|leva_a| vbscript vbscript –>|leva_a| syncappv_proxy syncappv_proxy –>|leva_a| powershell_hidden powershell_hidden –>|leva_a| ingress_transfer ingress_transfer –>|leva_a| javascript_masq javascript_masq –>|leva_a| process_injection process_injection –>|leva_a| reflective_loader reflective_loader –>|leva_a| c2_comm
Fluxo de Ataque
Detecções
Strings suspeitas do PowerShell (via powershell)
Ver
Strings suspeitas do PowerShell (via linha de comando)
Ver
Chamada de métodos .NET suspeitos do PowerShell (via powershell)
Ver
IOCs (HashSha256) para detectar: Deceptivamente Doce: DonutLoader Reciclado em uma Infecção Remcos RAT moderna
Ver
Detecção do Comando PowerShell IEX com AppvClient [Windows PowerShell]
Ver
Detecção da Cadeia de Infecção Remcos RAT Usando LOLBins [Criação de Processo do Windows]
Ver
Execução de Simulação
Pré-requisito: O Teste de Pré-voo de Telemetria & Baseline 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.
-
Narrativa e Comandos do Ataque:
O adversário obteve um payload malicioso do PowerShell (por exemplo, um downloader) que foi codificado em Base64 para evadir a detecção estática. Para ficar sob o radar, o atacante escolhe um módulo assinado e embutido—AppvClient—que é comumente presente em sistemas Windows. Eles importam o módulo e, em seguida, usamInvoke‑Expression (IEX)para decodificar e executar o payload inteiramente na memória, sem deixar artefatos de arquivo. Esta linha de comando exata (Import-Module AppvClient; IEX <Base64String>) corresponde à condição da regra Sigma. -
Script de Teste de Regressão:
<# Script de simulação para acionar a regra de detecção "PowerShell IEX com AppvClient". #> # 1. Importe o módulo legítimo (execução de proxy binário assinado) Import-Module AppvClient -ErrorAction Stop # 2. Prepare um payload simples e benigno em PowerShell e codifique em Base64 $payload = "Write-Host 'Compromise simulated – payload executed.'" $bytes = [System.Text.Encoding]::Unicode.GetBytes($payload) $b64 = [System.Convert]::ToBase64String($bytes) # 3. Execute o payload na memória usando IEX (o gatilho de detecção) IEX ([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64))) # 4. Opcional: mantenha a sessão ativa brevemente para garantir que os logs sejam transmitidos Start-Sleep -Seconds 5 -
Comandos de Limpeza:
# Remova o módulo importado para reduzir a pegada if (Get-Module -Name AppvClient) { Remove-Module -Name AppvClient -Force } # Limpe o histórico do PowerShell para a sessão atual Clear-History