Memory Forensics mit Volatility 3: Dumps im Reproduzierbaren Lab Analysieren
Technischer Memory-Analyse-Workflow mit Volatility 3, im Sandbox reproduzierten Dumps und Kreuzvalidierung gegen Rekall und MemProcFS.
Drei Uhr morgens, SIEM-Alarm, der PowerShell-Prozess wurde beendet bevor das EDR Artefakte sichern konnte. Keine brauchbare Platte mehr, bleibt nur RAM. Memory Forensics ist kein akademischer Luxus mehr, sondern Frontlinie, vor allem gegen fileless Malware und Living-off-the-Land-Taktiken, die NTFS nie beruhren. In diesem Lab reproduzieren wir ein reales Szenario mit Volatility 3.2, 8-GB- und 16-GB-Dumps von Windows 11 23H2 und Ubuntu 22.04, und validieren die Funde gegen Rekall und MemProcFS. Die Pramisse: alles reproduzierbar, kein Handwedeln. Wer schon einmal mit Profile-Mismatch gekampft hat, weiss, dass das Vertrauen auf ein einziges Werkzeug der schnellste Weg zu einer falschen gerichtlichen Schlussfolgerung ist.
Das Lab steht in einem Nachmittag. Nutze VirtualBox 7.0 oder QEMU/KVM mit 16 GB RAM exklusiv fur die Ziel-VM, einen sauberen Snapshot vor jedem Lauf und Capture via vboxmanage debugvm dumpvmcore oder virsh dump --memory-only. Unter Windows funktioniert winpmem 4.0 weiterhin; unter Linux liefert AVML von Microsoft konsistente Dumps auf Kerneln 5.x und 6.x. Das Lab aus Web-Pentest von Null: Ein Sicheres Lab mit DVWA, Juice Shop und Burp Suite Bauen dient als Traffic-Generator vor dem Incident, und um kontrollierte Payloads zu zunden, nutze die Pipeline aus Malware-Analyse im Isolierten Lab: Sicheres Setup mit FlareVM und REMnux. Halte den SHA-256-Hash jedes Dumps zum Zeitpunkt der Erfassung fest, sonst verdampft deine Beweiskette.
Volatility 3 hat Profiles zugunsten on demand geladener Symbol Tables aufgegeben. Pflichtkommando zuerst: vol -f dump.raw windows.info, das Kernel-Build, DTB und Zeitstempel bestatigt. Danach windows.pslist, windows.psscan und windows.pstree parallel, immer vergleichend. Ein Prozess der in psscan, aber nicht in pslist erscheint, ist klassisches DKOM oder Unlinking via _EPROCESS. Im Linux-Fall sind linux.pslist.PsList und linux.bash die Einstiegspunkte; bash holt Historie aus dem Heap zuruck, nutzlich wenn der Angreifer .bash_history geleert, das RAM aber vergessen hat. Notiere verdachtige PIDs und gehe weiter zu handles, dlls und malfind.
Der echte Game-Changer ist windows.malfind. Es durchforstet VADs mit PAGE_EXECUTE_READWRITE und fehlendem MZ-Header und fangt klassische Injection. In einem meiner Test-Dumps flaggte malfind explorer.exe PID 4820 mit einer RWX-Region, die 3,2 KB Shellcode enthielt, Hash identisch mit einem Sliver-Stager, was direkt an C2-Infra mit Sliver im Isolierten Lab fur Defensive Forschung Aufbauen anknupft. Quervergleich mit windows.netscan zieht aktive Sockets heraus, sogar TCP im CLOSE_WAIT-Zustand. Spricht der Verdachtige mit einer Nicht-RFC1918-IP, dumpe den Prozess mit windows.dumpfiles und fuhre ihn Remnux zur statischen Analyse zu. Fur die offensive Seite der Injection zeigt EDR-Umgehung fur Forschung: Direct Syscalls Erklart ohne Romantik die andere Tischhalfte.
Linux-Falle verlangen ein anderes Vokabular. linux.check_modules erkennt LKM-Rootkits anhand der Diskrepanz zwischen /proc/modules und der Kernel-Liste, wahrend linux.check_syscall Hooks in der sys_call_table identifiziert, indem es Adressen mit System.map abgleicht. In einem mit Diamorphine 1.0.7 infizierten Dump markierte check_syscall innerhalb von Sekunden 11 veranderte Eintrage. Bei Containern verdoppelt sich die Aufgabe: der Dump erfasst alle Namespaces, doch PIDs mussen mit cgroups korreliert werden, ein muhsamer Prozess, der in Container Forensics: Kubernetes-Kompromittierungen Professionell Untersuchen aufgeschlusselt ist. Kombiniere das mit Host-Timelines aus Timeline Forensics unter Windows: Plaso, Log2Timeline und KAPE in der Praxis, um Platten- und RAM-Ereignisse auf derselben Zeitachse zusammenzufuhren.
Kreuzvalidierung ist nicht optional. Lass dieselben Dumps durch MemProcFS laufen, das den Speicher als virtuelles Dateisystem unter /mnt/memprocfs einhangt und grep und find uber Kernelstrukturen ermoglicht. Diskrepanzen zwischen Volatility und MemProcFS gehen meist auf veraltete Symbol Tables zuruck, aktualisiere sie mit pdbparse. Dokumentiere alles in einem Jupyter-Notebook, das in einem privaten Git versioniert ist, mit Zellen die jedes Kommando, Eingangshash und erwartete Ausgabe reproduzieren. Diese Disziplin verbindet sich mit OPSEC fuer Security-Researcher: Persoenliches Bedrohungsmodell: ein Forensikbericht leakt genauso wie ein Exploit. Praktisches Takeaway: halte drei Gold-Standard-Dumps in deinem Lab vor, einen sauberen, einen mit residentem Mimikatz, einen mit LKM-Rootkit, und teste jede neue Volatility-Version dagegen, bevor du einen echten Fall anfasst.