Die von Netskope beschriebene Kampagne kombiniert zwei Techniken: die Social-Engineering-Masche ClickFix und EtherHiding, also das Ablegen von Schadcode oder Konfigurationsdaten in Smart Contracts einer Blockchain. Letzteres verschafft den Angreifern eine Infrastruktur, die sich mit klassischen Takedown-Maßnahmen praktisch nicht entfernen lässt.
Die gekaperten Seiten – meist kleine Firmenauftritte auf WordPress- oder PrestaShop-Basis – enthalten ein injiziertes Skript, das seinen Nachladecode von einem Smart Contract auf dem BSC Testnet bezieht. Das Testnet ist für Entwicklungszwecke gedacht, verhält sich technisch aber wie die produktive Kette und kostet nichts. Der Weg zur ersten Kompromittierung der Websites ist laut den Forschern weiterhin ungeklärt.
Dem Besucher präsentiert das Skript ein gefälschtes CAPTCHA mit der Anweisung, den Windows-Ausführen-Dialog zu öffnen und einen PowerShell-Befehl einzufügen. Damit lädt das Opfer selbst die letzte Stufe herunter und führt sie aus. Weil die Nutzlast in einem Smart Contract abgelegt ist, kann sie von den Betreibern jederzeit ausgetauscht werden.
Genau das geschah im weiteren Verlauf der Kampagne: Netskope beobachtete, dass der ClickFix-Payload im Smart Contract durch einen Stager ersetzt wurde, der einen WebRTC-Datenkanal nutzt. Diese neuere Variante baut einen verdeckten, verschlüsselten Kanal zum Angreifer auf und führt den darüber empfangenen Code aus.
„Das Skript erzeugt eine Peer-Verbindung und einen Datenkanal und generiert dann das nötige Session-Description-Angebot wie bei einem gewöhnlichen WebRTC-Handshake", erklärt Netskope. „Doch statt dieses Angebot irgendwohin zu schicken und auf eine echte Antwort zu warten, schreibt es die Antwort selbst und speist sie direkt zurück in die Verbindung. So findet kein Handshake statt, und dennoch öffnet sich ein Datenkanal zum Angreifer."
Der Stager empfängt JavaScript-Code von einer fest einprogrammierten Command-and-Control-Adresse, puffert ihn zwischen und führt ihn aus, sobald der Kanal geschlossen wird oder nach zehn Sekunden. Der Code wird im Arbeitsspeicher des Browsers zusammengesetzt und dynamisch ausgeführt, indem er in den Kopfbereich des DOM eingefügt wird – ohne dass er je auf der Festplatte landet.
Die Reichweite der Operation wächst: Nach Angaben von Netskope sind täglich mehr als 300 infizierte Websites im Einsatz. Seit dem Frühjahr steigt die Zahl der kompromittierten Seiten, die die RPC-Endpunkte des BSC Testnets kontaktieren, kontinuierlich an. Im August riefen den Telemetriedaten zufolge nahezu 400 Websites täglich den Endpunkt auf, der bisherige Höchstwert lag bei 536.
Zur Abwehr empfehlen die Forscher, den gesamten Pool der BSC-Testnet-RPC-Endpunkte zu sperren und den Netzwerkverkehr auf WebRTC-typischen UDP-Verkehr außerhalb regulärer Web-Kommunikation zu überwachen.
