SOC Prime Bias: Medium

28 Apr 2026 15:45 UTC

Crypto Drainer come Minaccia Convergente: Approfondimenti sui Nuovi Ecosistemi di Attacchi Ibridi

Author Photo
SOC Prime Team linkedin icon Segui
Crypto Drainer come Minaccia Convergente: Approfondimenti sui Nuovi Ecosistemi di Attacchi Ibridi
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riepilogo

Il rapporto spiega come le infrastrutture consolidate del crimine informatico stiano sempre più convergendo con le operazioni di drainer di criptovalute, dando origine ad ecosistemi di attacco ibridi che mettono a rischio sia i beni Web2 che Web3. Gli attori delle minacce si affidano a pagine di phishing ben elaborate a tema strumenti di IA o servizi finanziari per convincere le vittime a collegare i loro wallet, autorizzare le transazioni di token e trasferire inconsapevolmente fondi su più blockchain. Due esempi emblematici, StepDrainer e EtherRAT, dimostrano come questo modello si estenda sia al draining dei wallet basati su browser sia al malware Windows con funzionalità consapevole della blockchain. Di conseguenza, la minaccia ora si estende ben oltre gli utenti nativi di criptovalute e raggiunge più in profondità gli ambienti aziendali mainstream.

Indagine

I ricercatori hanno esaminato l’operazione StepDrainer malware-as-a-service, compresa la sua infrastruttura di staging PHP e JavaScript e il suo utilizzo di Web3Modal per visualizzare prompt di connessione al wallet convincenti. Hanno anche analizzato il malware Windows EtherRAT, che è stato distribuito tramite un installer TFTP trojanizzato, mantenendo la persistenza attraverso una chiave di registro Run, e comunicava con gli endpoint RPC di Ethereum e Solana. Durante l’indagine, il team ha estratto indicatori come domini malevoli, chiavi di registro e artefatti da riga di comando legati a entrambi i percorsi di attacco.

Mitigazione

Le organizzazioni dovrebbero bloccare l’accesso ai domini noti come malevoli, richiedere l’autenticazione multi-fattore per le estensioni del wallet ove possibile, e monitorare i sistemi per registrare voci di Run sospette e processi Node.js inaspettati. I team di sicurezza dovrebbero anche ispezionare il traffico verso i servizi pubblici RPC della blockchain per comportamenti anomali e rivedere regolarmente le estensioni del browser per segni di manomissione o abuso.

Risposta

Se viene rilevata questa attività, isolare immediatamente l’host interessato, rimuovere l’ingresso di registro Run malevolo, terminare i processi Node.js non autorizzati e revocare tutte le approvazioni di token concesse dai wallet colpiti. Gli investigatori dovrebbero quindi eseguire un’analisi forense per identificare eventuali payload aggiuntivi o meccanismi di persistenza e aggiornare le allow-list o blocklist per prevenire ulteriori comunicazioni con le infrastrutture di comando e controllo identificate.

Flusso di Attacco

Esecuzione di Simulazione

Prerequisito: Il Controllo Prevolo della Telemetria e della Base deve essere passato.

  • Narrativa di Attacco & Comandi

    L’avversario ha già collocato un file JavaScript malevolo (payload.js) sul bersaglio. Per ottenere la persistenza, utilizza il node.exe binario installato per avviare conhost.exe in modalità senza testa, che quindi carica il payload JavaScript. Questa tecnica evita finestre console visibili e si integra nel normale node utilizzo.

    1. Collocare il payload malevolo (payload.js) in una posizione temporanea.
    2. Esegui node.exe con un comando che genera conhost.exe --headless punta al payload.
    3. Crea un’attività programmata che esegue lo stesso comando all’avvio del sistema, fornendo persistenza.
  • Script di Test di Regressione

    # Simulazione di Persistenza EtherRAT – PowerShell
    # -------------------------------------------------
    # 1. Preparare payload JavaScript malevolo
    $payloadPath = "$env:TEMPpayload.js"
    @"
    // JS malevolo minimo – in realtà questo caricherebbe l'implant EtherRAT
    const { exec } = require('child_process');
    exec('calc.exe'); // Esempio di effetto collaterale
    "@ | Set-Content -Encoding UTF8 $payloadPath
    
    # 2. Individuare node.exe (si suppone sia nel PATH)
    $node = (Get-Command node.exe).Source
    if (-not $node) {
        Write-Error "node.exe non trovato nel PATH."
        exit 1
    }
    
    # 3. Costruire la linea di comando conhost
    $conhostCmd = "C:WindowsSystem32conhost.exe --headless `"$payloadPath`""
    
    # 4. Avvia tramite node.exe (questo crea la relazione genitore-figlio)
    $script = "require('child_process').exec(`"$conhostCmd`")"
    & $node -e $script
    
    # 5. OPZIONALE: Creare un'attività programmata per la persistenza
    $taskName = "SystemUpdate"
    $action = New-ScheduledTaskAction -Execute $node -Argument "-e `"$script`""
    $trigger = New-ScheduledTaskTrigger -AtLogOn
    Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -Force
  • Comandi di Pulizia

    # Rimuovi attività programmata
    Unregister-ScheduledTask -TaskName "SystemUpdate" -Confirm:$false
    
    # Elimina payload
    Remove-Item -Path "$env:TEMPpayload.js" -Force
    
    # Ferma qualsiasi processo conhost persistente generato dal test
    Get-Process conhost -ErrorAction SilentlyContinue | Where-Object {
        $_.Path -eq 'C:WindowsSystem32conhost.exe' -and $_.CommandLine -match '--headless'
    } | Stop-Process -Force