Noodlophile InfoStealer enttarnt: Wie KI-Werbung auf Facebook eine Python-basierte Datendiebstahl-Kette auslöste
Angreifer nutzten Facebook, um KI-generierte Werbeanzeigen zu schalten und Nutzer auf eine manipulierte Website zu locken. Die Anzeige versprach, Standbilder in lebendige Videos zu verwandeln. Nachdem ein gefälschter Fortschrittsbalken 100 % erreicht hatte, wurde den Nutzern ein ZIP-Archiv zum Download angeboten, das Folgendes enthielt:
Unter den entpackten Dateien befand sich eine ausführbare Datei mit dem irreführenden Namen „Video Luma MachineAI.mp4.exe“. Zwischen „.mp4“ und „.exe“ wurden mehrere Unicode-No-Break-Space-Zeichen (\xe2\xa0\x80) eingefügt, um die Datei als harmloses Video erscheinen zu lassen. Der Ordner „5.0.0.1886“ war sowohl mit dem System- als auch dem Versteckt-Attribut versehen und wurde daher standardmäßig im Dateiexplorer nicht angezeigt.
Beim Doppelklick auf die .exe-Datei wird „Capcut.exe“ im Verzeichnis „5.0.0.1886“ ausgeführt, woraufhin sich der ursprüngliche Prozess beendet.
„Capcut.exe“ ist eine .NET-Anwendung. Nach dem Start ruft sie wiederholt „https[:]//google.com“ auf und pausiert kurz. Anschließend werden im Verzeichnis „5.0.0.1886\software“ Dateien umbenannt: „meta“ wird zu „image.exe“ und „Document.docx“ zu „install.bat“. Die neue „image.exe“ ist in Wirklichkeit WinRAR, und „install.bat“ wird direkt im Anschluss ausgeführt.
Das Batch-Skript dekodiert „Document.pdf“ in „ppIuqewlq.rar“ und extrahiert diese Datei anschließend mithilfe von „image.exe“ (WinRAR) still und ohne Benutzerinteraktion nach %LOCALAPPDATA%\SoftwareHost. Das für die Extraktion verwendete Passwort lautet: TONGDUCKIEMDEVELOPER2025. Der entpackte Inhalt umfasst eine vollständige Python-Laufzeitumgebung samt aller benötigten Abhängigkeiten. Die Datei „srchost.exe“ ist in Wirklichkeit eine umbenannte „python.exe“.
Über „srchost.exe“ lädt die Malware externen Code nach und führt ihn aus. Das heruntergeladene Skript verwendet exec(), um ein serialisiertes (marshaled) Python-Objekt auszuführen. Dieses Objekt wurde anschließend für Analysezwecke dekompiliert.
Die disassemblierten Opcodes umfassen über 60.000 Zeilen – größtenteils bedeutungslose Instruktionen, die gezielt die Analyse erschweren sollen. Die relevanten Befehle befinden sich in den letzten 500 Zeilen. Zur Unterstützung der Analyse wurden KI-gestützte Tools eingesetzt, um aus den Opcodes den ursprünglichen Python-Code zu rekonstruieren.
Auch wenn der mithilfe von KI rekonstruierte Code möglicherweise nicht exakt dem Original entspricht, bietet er eine nützliche Grundlage für die manuelle Überprüfung. Im weiteren Verlauf wird ein weiteres marshaled-Objekt entdeckt, das auf dieselbe Weise dekompiliert wird, um den Quellcode zu extrahieren.
Der finale Code führt gezielten Datendiebstahl durch und hat es auf folgende Informationen abgesehen: Browser-Cookies, Browserverlauf und gespeicherte Zugangsdaten, Gespeicherte Kreditkartendaten, Facebook-Zugangsdaten und Kontoinformationen:
Sämtliche gestohlenen Daten werden in einem Archiv zusammengefasst, über einen Telegram-Bot übertragen und anschließend vom System des Opfers gelöscht.