„RunForestRun“, „gootkit“ und Erzeugung zufälliger Domain-Namen

Vor Kurzem stießen wir auf eine Web-Malware, die einen iframe einschleust, der nicht auf eine feste existierende Adresse verweist, sondern einen pseudozufälligen Domain-Namen erzeugt, der vom aktuellen Datum abhängig ist. Dieser Ansatz ist nicht neu und wird von Botnetzen bei der Erzeugung von Domainnamen der C&C häufig eingesetzt, doch er ist bisher für die uns bekannte Web-Malware nicht besonders gebräuchlich.

207319873

Nach der Deobfuskation sieht man, dass der iframe, der auf die schädliche URL mit dem erzeugten Domain-Namen umleitet, an die HTML-Datei angehängt wird. Alle URLs bestehen aus 16 pseudozufälligen Buchstaben, die zur Domain ru gehören und ein PHP-Skript auf der Server Seite mit sid=botnet2 als Argument ausführen:

207319874

Jeden Tag wird ein neuer Domain-Name generiert, so dass es einem Kampf gegen Windmühlen gleichkommt, die schädlichen URLs auf eine Blacklist zu setzen, sobald sie aktiv werden. Wenn uns der Algorithmus jedoch bekannt ist, sind wir glücklicherweise in der Lage, die Domain-Namen für jeden Tag in der Zukunft vorherzusagen. Diese Malware wird von Kaspersky als Trojan-Downloader.JS.Agent.gsv detektiert.

Eine neuere Version derselben Malware ist dagegen schon raffinierter: Anstelle obfuskierten Code in eine einfache JS-Datei einzuschleusen, verschlüsselt sie den gesamten Content der infizierten Datei, um so den schädlichen Code zusammen mit dem sauberen zu verbergen:

207319875

Derartige Malware ist nicht ohne Weiteres zu entdecken: Sie hat keine spezielle “Signatur” (wie der Comment String im vorhergehenden Beispiel) und jede infizierte Datei unterscheidet sich sehr stark von der anderen, da die obfuskierte Version vom sauberen Content abhängt. Da zudem die gesamte Datei chiffriert ist, lässt sich der schädliche Teil nicht ohne weiteres identifizieren und löschen. So ist es nicht einfach möglich, diese Malware loszuwerden, ohne die Website zu beschädigen. Wenn keine sauberen, nicht-obfuskierten Kopien der infizierten Dateien existieren, müssen diese Dateien entschlüsselt werden, um den sauberen Inhalt zu extrahieren, was sich als recht kompliziert erweisen kann.

Nach Abtragen der ersten Obfuskationsschicht durch ein simples Ändern der Funktion eval() in die Funktion alert() oder die Funktion print(), erscheint weiterer obfuskierter Code:

207319876

Die zweite Obfuskationsebene verwendet den Domain-Namen, um den Inhalt der Datei zu verschlüsseln. Wenn zum Beispiel die URL der infizierten Datei hxxp://www.somesubdomain.example.com/file-to-infect.js lautet, so wäre der Dechiffrierungsschlüssel example.com. Der saubere und der schädliche Teil sind in verschlüsselter Form in zwei separaten Variablen gespeichert:

207319877

Um den Code zu entschlüsseln, müssen wir die exakte Herkunft der infizierten Datei kennen. Nach der kompletten Deobfuskation kommt eine leicht verbesserte Version der Funktion zutage, die die zufälligen Domain-Namen generiert, sowie der saubere Code unten:

207319878

In diesem Fall ist die Hauptdomain waw.pl anstelle von ru, und das sid-Argument lautet botnet_api2. Der Name des Skripts ist unverändert und soll möglicherweise darauf hinweisen, dass der Autor ein Forrest Gump-Fan ist. Aufgrund des Kommentars, den der Autor anscheinend für die AV-Ermittler hinterlassen hat, wissen wir, dass die Malware von ihrem Schöpfer “gootkit” genannt wird. Eine schnelle Suche im Internet hat ergeben, dass dieses Wort bei Google in Bezug auf Schadcode nicht gänzlich unbekannt ist und dass einige andere Malware-Exemplare denselben Namen tragen. Es ist schwer zu sagen, ob es zwischen diesen Schädlingen (oder zwischen den Cyberkriminellen im Hintergrund) irgendeine Verbindung zu der oben beschriebenen Malware gibt. Ein vergleichbarer Fall ist der Gumblar-ähnliche Trojaner, der 2010 entdeckt wurde und der Anmeldedaten von FTP-Accounts stiehlt und die HTML/PHP-Dateien auf dem Server mit dem Code infiziert, den die “gootkit”-Strings enthalten.

Die hier beschriebene Malware wird von Kaspersky Lab-Produkten bereits als HEUR:Trojan.Script.Generic (in seiner obfuskierten Form) und als HEUR:Trojan.Script.Iframer (deobfuskiert) detektiert.

Aller Wahrscheinlichkeit nach breitet die Malware sich über die jüngste Sicherheitslücke in Plesk Panel aus, daher rufen wir alle Webadministratoren und jeden Hostingprovider dazu auf, die Plesk-Software auf ihren Servern mit der neusten Version zu aktualisieren, alle Sicherheitspatches zu installieren und die Passwörter für alle FTP/SFTP/SSH-Accounts so schnell wie möglich zu ändern.

Die schädlichen Domains, die wir überprüft haben wurden in derselben IPAdresse aufgelöst und scheinen “wegen Missbrauchsreports gesperrt” zu sein. Es ist allerdings möglich, dass die auf dem schädlichen Server definierten Regeln die Umleitung zu Malware nur unter speziellen Umständen erlauben (d.h. von bestimmten Regionen und/oder IP-Bereichen) und dass die Information über einen Missbrauch ein Fake ist. Frühere Versionen dieser Malware waren dafür bekannt, dass sie die Nutzer auf das BlackHole Exploit Kit umleiteten.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.