PeStudio ist ein Tool für die statische Malware-Analyse und zählt zu meinen Lieblingstools für die Malware-Analyse.
Mein erster Schritt, wenn ich neue Malware analysiere, ist immer, sie mit PeStudio zu analysieren. Daraus erhalte ich sehr viele Informationen über die Probe, auf deren Grundlage ich dann meinen Bericht erstellen kann. Zur ersten Triage einer Malware-Probe ist das sehr nützlich.
In diesem Artikel besprechen wir, was PeStudio ist, welche wichtigen Funktionen es bietet und wie Sie anfangen können, damit Malware zu analysieren.
Am meisten gefällt mir an PeStudio die leichte Bedienbarkeit und das klare, einfache Layout des Tools. Ein Doppelklick auf das Desktop-Symbol öffnet das Programm. Um mit der Malware-Untersuchung zu beginnen, ziehen Sie einfach die Malware-Probe in das Tool.
Dem Benutzer wird dann eine Reihe von Registerkarten angezeigt, die unterschiedliche Informationen enthalten, welche PeStudio aus der Probe gezogen hat.
Beim Öffnen einer Malware-Probe in PeStudio wird dem Benutzer die Registerkarte „Main“ angezeigt.
Hier werden Ihnen Informationen wie beispielsweise die Hashes der Probe angezeigt. Wenn es in Ihrem Unternehmen zu einem Malware-Vorfall gekommen ist, können Sie diese Informationen nutzen, um nach Geräten zu suchen, die diese Hashes im Dateisystem haben, und sie zu blockieren.
PeStudio gibt auch die ersten Bytes in hexadezimaler Form an, im obigen Bild sind das „4D 5A“. Das ist nützlich, denn so können wir bestätigen, dass es sich in der Tat um eine ausführbare Windows-Datei handelt. Die ersten Bytes im Header einer Datei haben je nach Dateityp immer das gleiche Bytemuster. Als Windows-Nutzer identifizieren wir in der Regel eine Datei durch die Erweiterung, die an den Dateinamen angehängt ist, z. B. „.exe“. Das Betriebssystem erkennt jedoch jeden Dateityp anhand des Byte-Musters im Header. So beginnt eine ausführbare Windows-Datei immer mit „4D 5A“ hexadezimal, das entspricht den Werten „MZ“ in ASCII.
Die Entropie der Datei wird ebenfalls aufgelistet. Das ist praktisch, da sich anhand des Entropiewerts feststellen lässt, ob die Malware gepackt ist oder nicht. Malware wird oft so gepackt, dass der vom Malware-Urheber geschriebene Code verschleiert ist. Die Kriminellen nehmen sich die Zeit, um bösartigen Code zu schreiben, und wollen es möglichst schwer machen, sich schnell die Funktionsweise der Malware anzuschauen und sich zu überlegen, wie man sie aufhalten kann.
Die Entropie wird auf einer Skala von 0 bis 8 gemessen. Je höher der Wert, desto wahrscheinlicher ist es, dass die Malware gepackt ist, wobei sich bei Werten von 7 bis 8 eigentlich mit Gewissheit sagen lässt, dass die Probe gepackt ist. PeStudio teilt uns also mit, dass wir die Malware entpacken müssen, um daraus brauchbare IOCs zu gewinnen.
In der Abbildung unten können wir sehen, dass PeStudio eine UPX-Signatur identifiziert hat – ein von Malware-Autoren häufig verwendeter Packer. Mit PeStudio können wir also herausfinden, ob eine Stichprobe gepackt ist oder nicht.
Die nächste Registerkarte in PeStudio lautet „Indicators“ (Indikatoren). Hier werden Daten innerhalb der Probe hervorgehoben, die möglicherweise bösartig und für einen Malware-Analysten von Interesse sind.
Die obige Abbildung zeigt, wie PeStudio eine Reihe von Indikatoren identifiziert und sie auf einer Skala von 1 bis 3 einstuft. 1 ist hierbei mit hoher Wahrscheinlichkeit ein bösartiger Indikator. In diesem Beispiel wurden einige bösartige Strings, Abschnitte und Importe identifiziert und eine weitere Datei innerhalb der Probe gefunden.
Das sind alles nützliche Informationen, denn PeStudio bietet auf der linken Seite Registerkarten für Strings, Abschnitte und Importe. Damit können wir tiefer in solche verdächtigen Indikatoren einsteigen.
Die Registerkarte „Sections“ (Abschnitte) zeigt die verschiedenen Abschnitte an, aus denen die ausführbare Datei besteht.
In der obigen Abbildung sehen wir die Namen der Abschnitte, die mit dem UPX-Packer in Verbindung stehen. So können wir mithilfe von PeStudio erneut bestätigen, dass die Malware tatsächlich gepackt ist. Wir können auch sehen, dass der Abschnitt „UPX1“ die Datei enthält, die zuerst in der Registerkarte „Indicators“ erwähnt wurde. Beachten Sie, dass dieser Abschnitt fast 88 % der Datei ausmacht und ebenfalls ein hohes Maß an Entropie aufweist. Das deutet darauf hin, dass die entpackte Malware an diesem Ort gespeichert ist. Nach dem Entpacken können wir Abschnitte sehen, die typischer für eine ausführbare Datei sind.
Das obige Bild zeigt, wie sich die Abschnittsnamen geändert haben, nachdem die Malware entpackt wurde. Die Namen der Abschnitte können beliebig sein, es gibt jedoch einige häufig vorkommende Abschnitte, auf die Sie stoßen werden.
Der Abschnitt „.text“ enthält ausführbaren Code. Wenn wir uns die Spalten der Abschnittsnamen ansehen, sehen wir ein „x“ neben dem Berechtigungsbereich. Das bedeutet, dass dieser Abschnitt ausführbare Berechtigungen hat.
In den Abschnitten „.rdata“ und „.data“ werden Daten gespeichert, und PeStudio hat festgestellt, dass der Datenabschnitt beschreibbar ist.
Im Abschnitt „.idata“ wird die Importadressentabelle gespeichert. Diese wird später im Artikel behandelt.
Im Abschnitt „.rsrc“ werden Ressourcen gespeichert, die von der Malware verwendet werden können, z. B. Strings und zusätzliche Dateien.
Die Registerkarte „Libraries“ (Bibliotheken) zeigt an, welche DLLs (Dynamic Link Libraries) von der Malware importiert werden.
Im Bild oben können Sie sehen, dass PeStudio einige der DLLs auf die Blacklist gesetzt hat. Möglicherweise werden sie also von der Malware für bösartige Zwecke verwendet. Wenn Sie sich die Namen und Beschreibungen ansehen, können Sie davon ausgehen, dass urlmon.dll, wininet.dll und ws2_32.dll für Netzwerkfunktionen da sind. Es ist nicht sofort klar, was winmm.dll tut, aber indem man den Namen schnell googelt, kann man das herausfinden.
Es sieht so aus, als würde die Malware möglicherweise Funktionen zur Aufzeichnung von Audiodaten auf einem kompromittierten Gerät importieren. Jede DLL enthält einen eindeutigen API-Satz. Dabei handelt es sich um legitime Windows-Funktionen, die von der Malware importiert und verwendet werden können. Durch Klicken auf die Registerkarte „Imports“ können wir uns ansehen, um was für Funktionen es sich handelt.
Die Registerkarte „Imports“ (Importe) enthält eine Liste der Funktionen/APIs, die von der Malware importiert wurden; sie wird auch als IAT (Import Address Table, Importadressentabelle) bezeichnet. Wenn Sie auf die Registerkarte „Blacklist“ klicken, werden die APIs sortiert, indem alle Funktionen auf der Blacklist nach oben verschoben werden.
Das ist praktisch, denn diese Informationen geben Aufschluss darüber, wie sich die Malware verhält, wenn sie einen Host infiziert. Das Bild oben zeigt, welche APIs importiert wurden.
Praktischerweise zeigt PeStudio neben jedem API-Namen an, für welche Art von Aktivität die API dient, und zwar in der Spalte „Group“. Aus dem obigen Screenshot können wir ersehen, dass die Malware einige Funktionen im Zusammenhang mit der Registrierung importiert hat. Daher kann sie „RegCreateKeyA“ verwenden, um einen Ausführungsschlüssel zu erstellen, der die Malware beim Hochfahren startet.
Wir können ebenfalls eine API sehen, die PeStudio mit Netzwerkaktivitäten in Verbindung bringt. „URLDownloadToFileA“ teilt uns ziemlich eindeutig mit, dass die Malware in der Lage ist, zusätzliche Dateien aus dem Internet herunterzuladen. Diese Art von Informationen ist äußerst nützlich, denn bevor wir die Malware in einem Malware-Analyse-Labor oder einer Cuckoo Sandbox ausführen, können wir uns ein Bild davon machen, wie sich die Malware verhalten könnte.
Diese Informationen sind auch nützlich, wenn wir später ein Reverse Engineering der Malware mit einem Tool wie x64dbg durchführen, da wir bereits einige interessante Funktionen identifiziert haben. Für diese können wir dann Breakpoints erstellen, um zu sehen, welche Werte von der Malware an diese API übergeben werden.
Die Registerkarte „Strings“ listet alle von Menschen lesbaren Strings auf, die PeStudio in der Binärdatei identifiziert hat. PeStudio zeigt Ihnen an, welche Art von String gefunden wurde und wo er sich in der Binärdatei befindet. Nützlich finde ich jedoch vor allem die Spalten „Blacklist“, „Hint“ und „Group“ in diesem Teil des Tools.
Strings auf der Blacklist hat PeStudio zuvor in Malware-Proben gefunden. Der Abschnitt „Hint“ (Hinweis) gibt dem Benutzer einige Anhaltspunkte darüber, worauf sich der String bezieht, ebenso wie die Spalte „Group“.
Die Abbildung oben zeigt, dass PeStudio einige interessante Strings herausgezogen hat.
PeStudio bestätigt, dass der String „Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)“ ein Benutzer-Agent ist. Dies ist ein altes Beispiel für die Zwecke dieses Blogs. Wenn jedoch ein eindeutiger Benutzer-Agent als Teil eines Cybersicherheitsvorfalls identifiziert werden kann, ist das eine wertvolle Information – das Vorfallsreaktionsteam kann dann nach diesem Benutzer-Agenten innerhalb der Proxy-Protokolldateien des Unternehmens suchen, um weitere kompromittierte Hosts zu identifizieren.
Der nächste interessante String ist „Software\Microsoft\Windows\CurrentVersion\Run“. Das ist ein gängiger Ausführungsschlüssel, der von Malware-Autoren verwendet wird, um die Malware automatisch zu starten, wenn das Gerät neu gestartet wird. Dies wird als Persistenzmechanismus bezeichnet, und die Malware nutzt dafür eine legitime Windows-Funktion.
Auch legitime Software nutzt diese Technik, damit Ihre Lieblings-Software automatisch mitstartet, wenn Sie Ihr Gerät einschalten. Wenn Sie den Registrierungs-Editor starten, indem Sie „regedit“ in die Windows-Suchleiste eingeben, können Sie überprüfen, welche Software an dieser Stelle der Registrierung einen Ausführungsschlüssel platziert hat, um automatisch zu starten.
In der obigen Abbildung habe ich auf meinem Host-Gerät zu „HKLM\Software\Microsoft\Windows\CurrentVersion\Run“ navigiert und kann die Software sehen, die beim Hochfahren gestartet wird. In meinem Malware-Analyse-Labor könnte ich diese Technik auch verwenden, nachdem ich eine Malware detoniert habe, um zu sehen, ob dieser Persistenzmechanismus verwendet wird. Anschließend kann ich dann ermitteln, wo sich der Persistenz-Speicherort der Malware auf der Festplatte befindet.
PeStudio ist sehr leicht zu installieren. Gehen Sie einfach auf https://www.winitor.com/ und es wird die folgende Seite angezeigt.
Klicken Sie auf die Registerkarte „Download“ und Sie können die kostenlose Version von PeStudio herunterladen, indem Sie auf „Download pestudio“ klicken.
Sie werden dann aufgefordert, die neueste Version als Zip-Datei herunterzuladen.
Entpacken Sie einfach die Datei und Sie können PeStudio als eigenständige Anwendung ausführen. Halten Sie auf jeden Fall die Augen offen, denn Marc Ochsenmeier , der Autor von PeStudio, stellt regelmäßig Updates für das Tool bereit.
Egal, ob Sie lernen, Malware zu analysieren, einen Malware-Vorfall zu triagieren oder eine YARA-Regel zu schreiben – PeStudio ist ein sehr nützliches Tool und bietet tiefgehende Funktionalität. Jedes Mal, wenn ich ein neues Malware-Analyse-Labor aufbaue, ist es das erste Tool, das ich installiere. Es ist auch immer das erste Tool, das ich für die Analyse einsetze.
Wenn Sie die Sicherheitsvorkehrungen in Ihrem Unternehmen ausbauen möchten, sollten Sie einen Blick auf Varonis' Edge: Perimeter Detection und auf die Data Security Platform werfen.