Die Forschung und Analyse aktueller Malware ist ein spannender und wichtiger Teilbereich der Cybersecurity Analysis. In diesem Artikel dokumentiere ich meine ersten Schritte in der Malware-Analyse und teile meine Erfahrungen. Wichtig: Die Analyse von Malware sollte niemals ohne entsprechende Sicherheitsvorkehrungen durchgeführt werden. Ohne Erfahrung rate ich dringend von eigenen Experimenten ab.

Malware Akquise

Malware-Analyse steht schon länger auf meiner Agenda. Kürzlich erhielt ich eine Spam-E-Mail mit einer dringenden Zahlungsaufforderung, einer Drohung mit einem Inkassounternehmen und einem ZIP-Archiv im Anhang. Dies sah ich als Gelegenheit, meine ersten Schritte in der Malware-Analyse zu machen. Praktisch, wenn einem die Malware direkt ins Postfach geliefert wird.

Analyse der Umgebung

Bevor ich den Anhang der E-Mail untersuchte, schaffte ich mir zunächst einen Überblick über die Umgebung. Screenshot der E-Mail mit der die Malware ausgeliefert wurde Laut dem Header der E-Mail wurde diese von einer privaten IP-Adresse in Argentinien über einen in Frankreich gehosteten Server verschickt. Die Domain zeigt zwar auf den Server, jedoch ist dort keine Website hinterlegt.

Analyse der Datei

Für die Analyse nutzte ich REMnux, eine auf Ubuntu basierende Linux-Distribution, die sich schnell installieren und in Betrieb nehmen lässt. Innerhalb von REMnux habe ich das ZIP-Archiv aus dem E-Mail-Anhang heruntergeladen und entpackt. Erwartungsgemäß enthielt das Archiv keine Rechnung in einem gängigen Textformat wie PDF, sondern eine JavaScript-Datei.

Auf den ersten Blick war die Datei groß und schwer verständlich. Der erste Teil bestand aus einem längeren Kommentar, der anscheinend eine andere Programmier- oder Skriptsprache enthielt. Der eigentliche Programmcode war in einer einzigen Zeile geschrieben und verschleiert, um Antivirenprogrammen die Erkennung zu erschweren.

Screenshot des Quellcodes der verschleierten Malware

Phase 1: Entschleierung

Mit wenigen Klicks formatierte ich den Code neu, sodass er besser lesbar wurde. Schnell wurde klar, dass das Skript ein Array nutzt, um einzelne Buchstaben und Ziffern zu speichern – eine Art Wörterbuch. Diese Verschleierung kann man mit der “Suchen und Ersetzen”-Funktion auflösen, indem man die Array-Einträge direkt durch die entsprechenden Buchstaben und Ziffern ersetzt. Dabei stellte sich heraus, dass die JavaScript-Datei sich selbst an einen anderen Ort kopiert und umbenennt, wobei sie zu einer Batchdatei wird, die direkt ausgeführt wird.

Screenshot des Quellcodes der Malware während der Entschleierung

Phase 2

Bemerkenswert fand ich die Nutzung der Kommentarfunktion in der Datei. Alles, was durch einen WScript-Interpreter verarbeitet wird, war in der JavaScript-Datei auskommentiert. Wenn man die Datei als .bat speichert, wird der WScript-Code interpretiert, während der JavaScript-Code auskommentiert bleibt. So können beide Syntaxen in einer Datei vorliegen und durch Ändern der Dateiendung kann der jeweilige Interpreter die Datei verarbeiten.

Auch im WScript-Teil der Datei wurde eine ähnliche Verschleierung genutzt, diesmal in Form eines Wörterbuchs mit Variablen. Diese Variablen wurden zusammengesetzt und ergaben neuen Code.

Screenshot des Quellcodes der zweiten Verschleierungsphase der Malware

Nach der Entschleierung wurde klar, dass das Skript ein Netzwerklaufwerk einer entfernten IP-Adresse einbindet und die dort liegende .dll-Datei über regsvr32 registriert.

Screenshot des entschleierten Quellcodes der Malware

Mein Versuch, die Datei ohne das Einbinden des Netzwerklaufwerks zu analysieren, schlug leider fehl. Vermutlich prüft der Server anhand des Headers, ob das Script auf die Datei zugreift oder ein anderer Service. Daher entschloss ich mich, die weitere Analyse mit VirusTotal durchzuführen.

Phase 3: VirusTotal

Die meisten Antiviren-Engines bei VirusTotal stuften die Datei als generischen Trojaner ein. Hier ein Link zur Analyse: VirusTotal Leider war auch aus der VirusTotal-Analyse nicht ersichtlich, was nach der Registrierung der .dll geschieht. Vermutlich wartet ein Prozess auf dem infizierten Rechner auf weitere Kommandos von einem C2-Server.

Fazit

Obwohl ich in meiner ersten Analyse nicht das vollständige Verhalten der Malware identifizieren konnte, konnte ich einige Schritte der Analyse erfolgreich durchführen. Interessanterweise erhielt ich in den darauffolgenden Tagen weitere E-Mails mit ähnlichen Anhängen, die verschiedene Dateien enthielten, aber letztlich auf denselben Server zugriffen, um dort eine .dll nachzuladen.