Crypto Drainers como uma Ameaça Convergente: Insights sobre Ecossistemas de Ataque Híbridos Emergentes
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O relatório explica como a infraestrutura de crimes cibernéticos estabelecida está cada vez mais convergindo com operações de drenagem de criptomoedas, dando origem a ecossistemas de ataque híbridos que colocam em risco ativos do Web2 e Web3. Os agentes de ameaça confiam em páginas de phishing sofisticadas com temas de ferramentas de IA ou serviços financeiros para convencer as vítimas a conectar suas carteiras, autorizar transações de tokens e transferir fundos sem saber através de várias blockchains. Dois exemplos destacados, StepDrainer e EtherRAT, demonstram como esse modelo abrange tanto a drenagem de carteiras baseadas em navegador quanto o malware em Windows com funcionalidade ciente da blockchain. Como resultado, a ameaça agora se estende bem além dos usuários nativos de criptomoedas e atinge mais profundamente os ambientes empresariais convencionais.
Investigação
Os pesquisadores examinaram a operação StepDrainer como um serviço de malware, incluindo sua infraestrutura de encenação em PHP e JavaScript e seu uso do Web3Modal para exibir prompts convincentes de conexão de carteiras. Eles também analisaram o malware EtherRAT para Windows, que era entregue através de um instalador TFTP trojanizado, mantinha permanência através de uma chave de registro Run e comunicava-se com endpoints RPC de Ethereum e Solana. Durante a investigação, a equipe extraiu indicadores como domínios maliciosos, chaves de registro e artefatos de linha de comando vinculados a ambos os caminhos de ataque.
Mitigação
As organizações devem bloquear o acesso a domínios maliciosos conhecidos, exigir autenticação multifator para extensões de carteiras sempre que possível e monitorar os sistemas em busca de entradas suspeitas no registro Run e processos inesperados do Node.js. As equipes de segurança também devem inspecionar o tráfego para serviços RPC de blockchain pública em busca de comportamentos anômalos e revisar regularmente as extensões do navegador para sinais de adulteração ou abuso.
Resposta
Se esta atividade for detectada, isole imediatamente o host afetado, remova a entrada maliciosa no registro Run, termine os processos não autorizados do Node.js e revogue todas as aprovações de tokens concedidas pelas carteiras impactadas. Os investigadores devem então realizar uma análise forense para identificar quaisquer cargas adicionais ou mecanismos de persistência e atualizar listas de permissão ou bloqueio para evitar mais comunicação com a infraestrutura de comando e controle identificada.
graph TB %% Class Definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes u2013 Techniques initial_access[“<b>Técnica</b> – <b>T1204.001 Execução pelo usuário: Link malicioso</b><br/><b>Descrição</b>: As vítimas clicam em um link criado que executa conteúdo malicioso.”] class initial_access technique delivery_html_smuggling[“<b>Técnica</b> – <b>T1027.006 Arquivos ou informações ofuscados: HTML Smuggling</b><br/><b>Descrição</b>: JavaScript malicioso é entregue através de uma página web que oculta a carga útil em HTML.”] class delivery_html_smuggling technique delivery_compile_after[“<b>Técnica</b> – <b>T1027.004 Arquivos ou informações ofuscados: Compilação após entrega</b><br/><b>Descrição</b>: A carga útil é montada no host após a entrega inicial.”] class delivery_compile_after technique delivery_embedded_payloads[“<b>Técnica</b> – <b>T1027.009 Arquivos ou informações ofuscados: Cargas úteis incorporadas</b><br/><b>Descrição</b>: A carga útil está oculta dentro de outro arquivo como JavaScript.”] class delivery_embedded_payloads technique delivery_deobfuscate[“<b>Técnica</b> – <b>T1140 Desofuscar/decodificar arquivos ou informações</b><br/><b>Descrição</b>: Dados Base64 são decodificados no navegador antes da execução.”] class delivery_deobfuscate technique persistence_run_key[“<b>Técnica</b> – <b>T1127.002 Execução proxy de utilitários confiáveis de desenvolvedor: ClickOnce</b><br/><b>Descrição</b>: O instalador cria uma chave Runu2011key para iniciar node.exe malicioso.”] class persistence_run_key technique persistence_appcert[“<b>Técnica</b> – <b>T1546.009 Execução acionada por evento: DLLs AppCert</b><br/><b>Descrição</b>: DLLs assinadas com certificado confiável são carregadas para persistência.”] class persistence_appcert technique recon_hardware[“<b>Técnica</b> – <b>T1592.001 Coleta de informações do host da vítima: Hardware</b><br/><b>Descrição</b>: O malware consulta detalhes de hardware do sistema comprometido.”] class recon_hardware technique recon_firmware[“<b>Técnica</b> – <b>T1592.003 Coleta de informações do host da vítima: Firmware</b><br/><b>Descrição</b>: O malware coleta versão de firmware e informações da BIOS.”] class recon_firmware technique c2_web_protocols[“<b>Técnica</b> – <b>T1071.001 Protocolo de camada de aplicação: Protocolos web</b><br/><b>Descrição</b>: Usa tráfego web padrão (HTTP/HTTPS) para comando e controle.”] class c2_web_protocols technique c2_bidirectional[“<b>Técnica</b> – <b>T1102.002 Serviço web: Comunicação bidirecional</b><br/><b>Descrição</b>: Permite comunicação bidirecional entre implante e servidor.”] class c2_bidirectional technique c2_oneway[“<b>Técnica</b> – <b>T1102.003 Serviço web: Comunicação unidirecional</b><br/><b>Descrição</b>: Envia dados ao servidor sem esperar resposta.”] class c2_oneway technique c2_encrypted[“<b>Técnica</b> – <b>T1573 Canal criptografado</b><br/><b>Descrição</b>: O tráfego C2 é criptografado para evitar detecção.”] class c2_encrypted technique c2_data_encoding[“<b>Técnica</b> – <b>T1132 Codificação de dados</b><br/><b>Descrição</b>: Os dados são codificados (por exemplo, base64) antes da transmissão.”] class c2_data_encoding technique c2_config_repo[“<b>Técnica</b> – <b>T1602 Dados de repositório de configuração</b><br/><b>Descrição</b>: Os dados de configuração são recuperados de repositórios em cadeia.”] class c2_config_repo technique asset_drain[“<b>Técnica</b> – <b>T1204.002 Execução pelo usuário: Aprovação de tokens</b><br/><b>Descrição</b>: A vítima aprova permissões de tokens via Web3Modal injetado, permitindo transferência de ativos.”] class asset_drain technique %% Nodes u2013 Tools / Processes tool_malicious_link[“<b>Ferramenta</b> – <b>Nome</b>: Link de phishing malicioso<br/><b>Descrição</b>: URL criada que carrega o portal falso de negociação.”] class tool_malicious_link tool tool_js_payload[“<b>Ferramenta</b> – <b>Nome</b>: Carga útil JavaScript ofuscada<br/><b>Descrição</b>: Código codificado em base64 executado no navegador.”] class tool_js_payload tool process_installer[“<b>Processo</b> – <b>Nome</b>: Instalador do Windows<br/><b>Descrição</b>: Solta Runu2011key e node.exe.”] class process_installer process tool_node_exe[“<b>Ferramenta</b> – <b>Nome</b>: node.exe<br/><b>Descrição</b>: Executa JavaScript malicioso após persistência.”] class tool_node_exe tool tool_web3modal[“<b>Ferramenta</b> – <b>Nome</b>: Interface Web3Modal<br/><b>Descrição</b>: UI injetada que solicita ao usuário aprovação de transferências de tokens.”] class tool_web3modal tool %% Operators (optional) op_and((“AND”)) class op_and operator %% Connections u2013 Attack Flow initial_access –>|leads_to| delivery_html_smuggling delivery_html_smuggling –>|uses| tool_malicious_link delivery_html_smuggling –>|uses| tool_js_payload delivery_html_smuggling –>|enables| delivery_compile_after delivery_compile_after –>|enables| delivery_embedded_payloads delivery_embedded_payloads –>|triggers| delivery_deobfuscate delivery_deobfuscate –>|creates| process_installer process_installer –>|drops| persistence_run_key process_installer –>|may_use| persistence_appcert persistence_run_key –>|executes| tool_node_exe persistence_app_cert –>|loads| tool_node_exe tool_node_exe –>|collects| recon_hardware tool_node_exe –>|collects| recon_firmware recon_hardware –>|feeds| c2_web_protocols recon_firmware –>|feeds| c2_web_protocols c2_web_protocols –>|supports| c2_bidirectional c2_web_protocols –>|supports| c2_oneway c2_bidirectional –>|uses| c2_encrypted c2_oneway –>|uses| c2_encrypted c2_encrypted –>|encodes| c2_data_encoding c2_data_encoding –>|stores_config_in| c2_config_repo c2_config_repo –>|provides| asset_drain asset_drain –>|uses| tool_web3modal
Fluxo de Ataque
Detecções
Possíveis Pontos de Persistência [ASEPs – Hive Software/NTUSER] (via registry_event)
Visualizar
Binário NodeJS Executando de Localização Incomum (via cmdline)
Visualizar
Possível Enumeração de Software de Antivírus ou Firewall (via process_creation)
Visualizar
LOLBAS Conhost (via cmdline)
Visualizar
Uso Suspeito de CURL (via cmdline)
Visualizar
Possíveis Verificações de Evasão (via powershell)
Visualizar
Possível Tentativa de Abuso da Publicnode Ethereum como Canal C2 (via dns_query)
Visualizar
Possível Infiltração de Dados / Exfiltração / C2 via Serviços / Ferramentas de Terceiros (via proxy)
Visualizar
Possível Infiltração de Dados / Exfiltração / C2 via Serviços / Ferramentas de Terceiros (via dns)
Visualizar
Detecção do Mecanismo de Persistência EtherRAT Usando conhost.exe em Modo Headless [Criação de Processo do Windows]
Visualizar
Execução de Comando PowerShell do EtherRAT para Reconhecimento do Sistema [PowerShell do Windows]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação Prévia de Telemetria & Base deve ter passado.
-
Narrativa de Ataque & Comandos
O adversário já colocou um arquivo JavaScript malicioso (
payload.js) no alvo. Para alcançar persistência, eles usam o instaladonode.exebinário para iniciarconhost.exeem modo headless, que então carrega a carga útil JavaScript. Esta técnica evita janelas de console visíveis e se mistura ao uso normalnodeuso.- Coloque a carga útil maliciosa (
payload.js) em um local temporário. - Execute
node.execom um comando que criaconhost.exe --headlessapontando para a carga útil. - Crie uma tarefa agendada que executa o mesmo comando na inicialização do sistema, fornecendo persistência.
- Coloque a carga útil maliciosa (
-
Script de Teste de Regressão
# Simulação de Persistência EtherRAT – PowerShell # ------------------------------------------------- # 1. Prepare a carga útil JavaScript maliciosa $payloadPath = "$env:TEMPpayload.js" @" // JS malicioso minimalista – na realidade isso carregaria o implante EtherRAT const { exec } = require('child_process'); exec('calc.exe'); // Exemplo de efeito colateral "@ | Set-Content -Encoding UTF8 $payloadPath # 2. Localize node.exe (assuma que está no PATH) $node = (Get-Command node.exe).Source if (-not $node) { Write-Error "node.exe não encontrado no PATH." exit 1 } # 3. Construa a linha de comando conhost $conhostCmd = "C:WindowsSystem32conhost.exe --headless `"$payloadPath`"" # 4. Execute via node.exe (isso cria o relacionamento pai-filho) $script = "require('child_process').exec(`"$conhostCmd`")" & $node -e $script # 5. OPCIONAL: Crie tarefa agendada para persistência $taskName = "SystemUpdate" $action = New-ScheduledTaskAction -Execute $node -Argument "-e `"$script`"" $trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -Force -
Comandos de Limpeza
# Remover tarefa agendada Unregister-ScheduledTask -TaskName "SystemUpdate" -Confirm:$false # Excluir carga útil Remove-Item -Path "$env:TEMPpayload.js" -Force # Pare quaisquer processos conhost remanescentes gerados pelo teste Get-Process conhost -ErrorAction SilentlyContinue | Where-Object { $_.Path -eq 'C:WindowsSystem32conhost.exe' -and $_.CommandLine -match '--headless' } | Stop-Process -Force