Speicheranalyse mit pd und MMP

Tobias Klein hat auf der IT-DEFENSE 2006 mit seinem Memory Parser ein neues Werkzeug für die Live-Analyse vorgestellt. Das Programm extrahiert DLLs aus dem Speicherabbild eines Prozesses.

Tobias Klein hat seinen Vortrag zur IT-DEFENSE 2006 und einige Materialien auf seiner Website veröffentlicht. Er stellt darin für die Live-Analyse eines mutmaßlich kompromittierten Systems einige neu entwickelte Werkzeuge vor.

pd erstellt ein Speicherabbild eines Prozesses.

Das Konsolenprogramm pd erstellt einen Speicherdump eines durch seine PID bezeichneten Prozesses. Auf den ersten Blick unterscheidet es sich damit nicht von pmdump und anderen Programmen. Diese Tools kopieren die einzelnen Blöcke des virtuellen Speichers in eine Datei. Nicht benutzte Bereiche des virtuellen Adressraums werden dabei natürlich übersprungen. Auf diese Weise geht allerdings auch die Zuordnung von Dateioffset des Abbildes zu virtueller Adresse verloren.

Wie ein kurzer Blick im Hexeditor zeigt, löst pd dieses Problem, indem es jedem Speicherblock einen kurzen Text mit Informationen über seine Lage im Adressraum voranstellt.

pd vermerkt zu jedem Speicherblock die Lage im Adressraum.

Auswerten lässt sich dieses Speicherabbild mit dem zweiten Programm, dem Memory Parser MMP. Nach dem Öffnen wird das von pd erstellte Abbild geparst. MMP zerlegt dabei das Abbild in seine einzelnen Blöcke (diesmal ohne Vorspann) und erstellt eine Textdatei mit dem Namen "information" gleichsam als Inhaltsverzeichnis des Dumps.

MMP zerlegt das Speicherabbild in seine ursprünglichen Blöcke.

Aus dem so vorbereiten Abbild kann MMP dann alle DLLs extrahieren. Diese stehen dann als Datei für die weitere Untersuchungen zur Verfügung, zum Beispiel mit dem Disassembler IDA Pro.

MMP extrahiert DLLs aus dem Prozessabbild.

Dass beim erneuten Einlesen und Parsen eines Abbildes für jeden Speicherblock eine Fehlermeldung zu bestätigen ist, weil die Zieldatei bereits existiert, sei der frühen Version geschuldet.

Als problematischer sehe ich jedoch den Einsatz von Speicherabbildern einzelner Prozesse an. Zwar konnte ich über die Prozess-ID (PID) problemlos ein Abbild eines mit dem FU Rootkit verborgenen Prozesses erstellen. Wie aber hätte ich im Ernstfall diesen Prozess gefunden? Mit den beiden hier vorgestellten Programme sehe ich nur die Möglichkeit, per brute-force alle erdenklichen PIDs zu sichern.

Interessant dürfte hier deshalb ein Blick auf RAMparser werden. Dieses Programm von Tobias Klein soll Abbilder des physischen Speichers analysieren können. Leider ist es (noch) nicht auf der Website verfügbar.

Archiv

Impressum

Dieses Blog ist ein Projekt von:
Andreas Schuster
Im Äuelchen 45
D-53177 Bonn
impressum@forensikblog.de

Copyright © 2005-2012 by
Andreas Schuster
Alle Rechte vorbehalten.
Powered by Movable Type 5.12