Memory Forensics – Windows Arbeitsspeicher auswerten mit Volatility

Memory-Image erstellen

Um von einem Windows-Rechner ein Memory Image zu erstellen, stehen einem eine grosse Auswahl an Werkzeugen zur Verfügung. Profitools können sogar über Netzwerkschnittstellen RAM dumpen. Zum experimentieren reichen allerdings Tools wie WinPMEM oder RamCapturer. Die Downloadlinks finden sich am Ende dieses Beitrags.

Als einfachste Methode ruft man das Programm WinPMEM wie folgt aus der Kommandozeile (mit Administrationsberechtigung) auf:

Auswertung mithilfe von Volatility

Das zuvor erstellte Image kann nun (auch auf einem anderen Rechner, bspw. unter Kali-Linux) mit Volatility ausgewertet werden.

Volatility starten und Infos zum Image ausgeben

Unter Kali-Linux lässt sich das Memory-Analysetool normalerweise per Befehl vol direkt im Terminal aufrufen.

Sollte dies nicht klappen, kann das Python Script per  sudo find / -name vol.py ausfindig gemacht und per  python vol.py gestartet werden.

Ein standalone Executable für Windows kann im Google Repository von Volatility heruntergeladen und wie folgt aufgerufen werden:

Das Plugin imageinfo liefert allgemeine Infos zum System, unter welchem das Image erstellt wurde. Diese Infos brauchen wir zwingend für die nächsten Schritte. Bsp.:

imageinfo

Einige Beispiele

Gibt man Volatility das richtige Systemprofil mit, lassen sich automatisiert sehr detaillierte Infos auslesen. Das richtige Systemprofil entnehmen wir aus der oben genannten Abfrage bzw. aus der mit  vol --info generierten Liste.

Nun kann man das Image mit den entsprechenden Plugins auf die gewünschten Informationen filtern. Eine Auflistung aller Plugins kann mit  vol --help ausgegeben werden. Eine Befehlsreferenz mit guten Beispielen findet sich auch im Wiki von Volatility.

Beispiel 1: Prozesse ausgeben

pslist

Beispiel 2: Netzwerkverbindungen ausgeben

netscan

In der ungekürzten Ausgabe konnte ich auch sehen, dass ich zum Zeitpunkt des Images mit meinem Raspberry Pi zu Hause verbunden und bei meinem Google-Mailkonto angemeldet war ;-)

Beispiel 3: Windows Passwörter auslesen

Das Hashdump-Plugin benötigt die Startadressen der Registryeinträge  \REGISTRY\MACHINE\SYSTEM und \SystemRoot\System32\Config\SAM. Diese können mit dem Hivelist-Plugin ausgegeben werden:

Nun kann das Hashdump-Plugin mit den entsprechenden Startadressen gestartet werden (-y = \SYSTEM, -s = \SAM):

hashdump

Weiterführende Links und Downloads

Download WinPMEM: http://www.rekall-forensic.com/downloads.html
Download RamCapturer (64bit): http://forensic.belkasoft.com/download/ram/RamCapturer64.zip
Download RamCapturer (32bit): http://forensic.belkasoft.com/download/ram/RamCapturer.zip
Download DumpIt: http://www.moonsols.com/…monitor/download.php?id=7

Download Volatility für Windows: https://code.google.com/…me=volatility-2.3.1.standalone.exe

Infos + Video zu DumpIt: http://www.moonsols.com/2011/07/18/moonsols-dumpit-goes-mainstream/
Referenz zu Volatility: https://code.google.com/p/volatility/wiki/CommandReference