Festplattendietriche : Sieben Wege, um Daten von verschlüsselten, virtuellen Festplatten zu extrahieren
Dieser Artikel beschreibt Best Practices für Techniken und Tools zur Extraktion von Daten aus verschlüsselten, virtuellen Festplatten, wie sie beispielsweise das Sophos Incident Response-Team einsetzt. In Notsituationen, in denen die gesamte virtuelle Festplatte chiffriert wurde, können diese Verfahren möglicherweise dabei helfen, zumindest bestimmte Daten aus einem verschlüsselten System wiederherzustellen.
Versuche, Daten aus verschlüsselten, virtuellen Festplatten zu extrahieren, können im Idealfall Unternehmen in dreierlei Hinsicht enorm helfen: Erstens können Daten natürlich wiederhergestellt werden. Zweitens kann man die kompromittierte virtualisierte Infrastruktur wieder aufbauen. Und drittens kann es den zeitlichen Verlauf einer Incident-Untersuchung optimieren.
An dieser Stelle ist es wichtig zu erwähnen, dass Versuche und Methoden, um Daten aus verschlüsselten, virtuellen Festplatten zu extrahieren, nicht immer erfolgreich sind. Die nachfolgend beschriebenen Methoden haben eine gute Erfolgsquote bei der Extraktion forensisch wertvoller Daten für die Untersuchung (z. B. Ereignisprotokolle oder Registry-Forensik) – die Quote zur Wiederherstellung von (Nutz-) Daten für produktive Systeme wie Datenbanken ist jedoch deutlich geringer.
In den nächsten Abschnitten wird besprochen, in welchen Situationen eine Wiederherstellung möglich erscheint – und in welchem Umfang. Zusätzlich werden wichtige Faktoren angesprochen, die bei der Auswahl der Extraktionsmethoden zu berücksichtigen sind. Zudem ist es wichtig zu betonen, dass man keine Wiederherstellungsversuche an den Originalen durchführen, sondern immer an Kopien arbeiten sollte, um ungewollte, zusätzliche Schäden zu vermeiden.
Ransomware-Attacken
Wenn Ransomware eine virtuelle Festplatte (oder eine Datei) verschlüsselt, werden die Daten im Wesentlichen zufällig gemacht, wodurch die Datei für das Betriebssystem unlesbar wird. Die bekannteste Methode, um eine Datei wieder in ihren ursprünglichen Zustand zu versetzen, ist ein sogenannter Decryptor – also ein Softwaretool, das den Verschlüsselungsprozess rückgängig und chiffrierte Dateien wieder lesbar macht. Allerdings wird bei Ransomware-Angriffen der Decryptor von den Bedrohungsakteuren erstellt und kontrolliert. Sofern kein Lösegeld gezahlt oder der Decryptor öffentlich zugänglich wird (evtl. durch Analysen von Sicherheitsanbietern), muss man andere Methoden der Datenwiederherstellung in Betracht ziehen.
Meist priorisiert Ransomware allerdings Geschwindigkeit gegenüber gründlicher Verschlüsselung. Das vollständige Verschlüsseln von Dateien wäre sehr zeitaufwendig – daher zielen Angreifer* darauf ab, so schnell wie möglich maximalen Schaden zu verursachen und das Zeitfenster für eine Intervention möglichst klein zu halten. Folglich sind kleinere Dateien (z. B. Dokumente) meist vollständig verschlüsselt, während größere Dateien wie virtuelle Festplatten oft signifikante unverschlüsselte Teile aufweisen. Dies bietet Ermittlern die Chance, verschiedene Techniken zur Extraktion von Informationen aus den virtuellen Festplatten anzuwenden.
Sieben Extraktionsmethoden
Die im Folgenden beschriebenen Methoden umfassen mehrere Ansätze zur Datenextraktion aus einer virtuellen Maschine. Die Beschreibung führt dabei nicht zwingend alle möglichen Varianten auf, da ständig neue Methoden und Tools entwickelt werden. Zudem liefert die Auflistung nicht für jeden Vorfall zwingend die sinnvollste Abfolge von Extraktionsversuchen – allerdings hat es sich bewährt, Wiederherstellungsversuche mit der erstgenannten Methode zu starten.
(1) Einfaches Mounten
Voraussetzungen:
- Windows-Version mit dem nativen Windows-Mounting-Tool
- wahlweise Mounting-Tools von Drittanbietern
- Imaging-Tools wie FTK (www.exterro.com/digital-forensics-software/forensic-toolkit, kostenpflichtig) und/oder Archivierungstools wie 7-Zip (https://7-zip.de)
- Anwendungsumgebung: Windows, Linux
Nur weil behauptet wird, dass eine VM verschlüsselt ist, bedeutet das nicht zwingend, dass das tatsächlich so ist – hin und wieder bluffen Cyberkriminelle, um ihr Ziel zu erreichen. Es gibt Fälle, bei denen Opfer meinten, dass ihre Dateien verschlüsselt seien, während der Angreifer in Wirklichkeit nur die Dateiendungen geändert hatte. Außerdem sind auch Fälle bekannt, in denen die Verschlüsselungsprozesse der Angreifer fehlgeschlagen waren und Dateien lediglich umbenannt wurden.
Im ersten Schritt sollte man deshalb immer die Mounting-Methode versuchen. Sollte sie nicht funktionieren, hat man nur wenig Zeit verloren und keine anderen Wiederherstellungsmethoden behindert. Wenn die Methode hingegen erfolgreich ist und sich das Laufwerk einbinden lässt, kann auf die Datei(en) zugegriffen werden und sie lassen sich nach Belieben kopieren.
Beim Mounten einer virtuellen Maschine (VM) sollte der Endpoint-Schutz (Anti-Malware) keine Alarme aufgrund bösartiger Dateien auslösen. Das ist nützlich, wenn Proben zur Analyse eingesendet werden sollen. Das Öffnen/Reparieren einer Datei mit dem Archivier-Tool 7-Zip (Gui), das seit einigen Jahren auch Formate virtueller Festplatten unterstützt, führt bereits in vielen Fällen zum Erfolg. Falls das nicht funktioniert, sind weitere Versuche, beispielsweise mit dem Forensics Toolkit (FTK) oder anderen Drittanbieter-Tools, der nächste Schritt.
(2) DMDE
Voraussetzungen:
- DMDE-Kopie (https://dmde.com)
- verfügbarer Speicherplatz in der Größe der VM, die wiederhergestellt werden soll
- „Sandbox“-Umgebung, separates Gerät oder VM-Arbeitsumgebung, um mögliche Erkennungen durch Endpunktschutz zu vermeiden
- Anwendungsumgebung: Windows, Linux, Mac, DOS
Die Software DM Disk Editor and Data Recovery (DMDE) ist ein Tool zur Datenwiederherstellung und Festplattenverwaltung, das Dmitry Sidorov seit 2006 entwickelt und veröffentlicht. Es ist besonders nützlich zur Rekonstruktion von Daten und Volumes von teilweise verschlüsselten, virtuellen Festplatten – beispielsweise solchen, die mit NTFS oder FAT formatiert sind.
Beim Umgang mit einer teilweise verschlüsselten, virtuellen Festplatte kann DMDE zugängliche und nichtverschlüsselte Daten-Sektoren lokalisieren und identifizieren. Es ermöglicht, Dateistrukturen – einschließlich Verzeichnissen und Dateien – innerhalb erkennbarer Dateisysteme mithilfe seines Hex-Editors und Partitionsmanagers manuell zu inspizieren und wiederherzustellen.
Falls die Wiederherstellung (auch nur teilweise) erfolgreich ist, kann DMDE viele wichtige Systemdateien extrahieren, einschließlich EVTX-Logs, Amcache, Registry-Hives und NTUSER.dat-Dateien. Durch die Wiederherstellung beziehungsweise Rekonstruktion verlorener Partitionen und Metadaten des Dateisystems lassen sich fragmentierte oder beschädigte Daten-Sektoren zusammensetzen. Das erleichtert die Extraktion und den Wiederaufbau von Dateien, selbst wenn Teile der Festplatte aufgrund der Verschlüsselung unzugänglich bleiben sollten.
Für die Anwendung existieren eine grafische Benutzeroberfläche (GUI) sowie eine Kommandozeilenversion für Windows, DOS, Mac und Linux – für jedes dieser Betriebssysteme gibt es eine kostenlose sowie eine kostenpflichtige Version mit erweiterten Funktionen. Im Folgenden wird auf Wiederherstellungstechniken mit der kostenlosen Version eingegangen: Diese hat die Einschränkung, dass sich nur einzelne Dateien und bis maximal 4000 Dateien aus einem bestimmten Verzeichnis exportieren lassen – ein rekursiver Datei-Export ist in der kostenpflichtigen Version verfügbar. Sowohl die kostenpflichtige als auch die kostenlose Version sind in der Lage, dieselben Dateien wiederherzustellen. Ohne rekursiven Datei-Export dauert der Prozess jedoch deutlich länger und erfordert viele wiederholte, manuelle Aktionen.
An dieser Stelle ist es wichtig zu betonen, dass DMDE ein Wiederherstellungs-Tool und kein Dateisystem- Reparaturprogramm ist: Auf die beschädigte beziehungsweise verschlüsselte Platte wird nichts geschrieben. Für die Durchführung dieser Methode muss man daher lediglich Speicherplatz bereitstellen, der dieselbe Größe hat, wie der wiederherzustellende Speicher.
Das DMDE-Tool bietet diverse Optionen und Funktionen für unterschiedliche spezifische Szenarien. Um die Schritte zur Wiederherstellung von Dateien aus möglicherweise verschlüsselten, virtuellen Festplatten zu veranschaulichen, zeigen die Screenshots aus der Windows-GUI in den Abbildungen 1 – 9 ein typisches und häufig auftretendes Szenario. Das vollständige DMDE-Handbuch ist auf https://dmde.com/manual.html verfügbar.
Nach dem Download und Entpacken der Windows-Version von DMDE wird dmde.exe gestartet. Im nächsten Schritt wählt man in der oberen Menüleiste „Disk > Select Disk / Task“, woraufhin sich das in Abbildung 1 gezeigte Fenster öffnet. Im Fenster mit den verfügbaren Images wählt man die verschlüsselte virtuelle Festplattendatei aus. Dabei sollte man gegebenenfalls sicherstellen, dass das Dropdown-Menü auf „Any File“ eingestellt ist, damit die Datei im Fenster angezeigt wird. Im nächsten Fenster (Abb. 2) wählt man die gewünschte Datei und klickt auf „Full Scan“.
Im darauffolgenden Fenster erscheinen die Scan- Parameter (Abb. 3). Hier ist das passende Dateisystem- Format (z. B. NTFS) auszuwählen – danach folgt der Klick auf „Scan“. Die für die Analyse benötigte Zeit hängt von der Größe der virtuellen Festplatte ab; der Scan kann durchaus eine Weile dauern. Die Schaltfläche „Open Volume“ sollte man während dieses Vorgangs unberührt lassen. Wie in Abbildung 4 zu sehen ist, liefert der Vorgang eine Auswahl an Partitionen. Als Faustregel gilt: Die größte von DMDE gefundene Partition ist höchstwahrscheinlich diejenige, die wiederhergestellt werden soll.
Sobald der Wiederherstellungsprozess abgeschlossen ist (man beachte die Unterschiede in der Statusleiste bzw. den Fortschrittsbalken zwischen Abb. 4 und Abb. 5), klickt man auf die größte gefundene Partition und auf „Open Volume“. Wenn dabei Fehlermeldungen wie in Abbildung 6 erscheinen, können diese einfach ignoriert werden.
Nach dem Öffnen des wiederhergestellten Volumes zeigt sich ein Fenster ähnlich dem in Abbildung 7: Der Teil auf der rechten Seite sollte eine Rekonstruktion der ursprünglichen, nicht-verschlüsselten Festplatte zeigen, die man jetzt durchsuchen kann.
Sobald man eine interessante Datei identifiziert, wird diese markiert und mit der rechten Maustaste die Option „Recover / Create File List“ gewählt (Abb. 8). Im Wiederherstellungsfenster gibt man den Speicherort für die wiederherzustellende Datei an – wie angemerkt, können Dateien nicht auf ihrer ursprünglichen Festplatte gespeichert werden. Die Bestätigung mit „OK“ kopiert dann die ausgewählten Dateien in das angegebene Verzeichnis (Abb. 9).
Zur Erinnerung: Wer die kostenlose Version verwendet, muss die gewünschten Dateien manuell auswählen und einzeln in das gewünschte Ausgabeverzeichnis exportieren, um eine typische Sammlung von Artefakten eines wiederhergestellten Geräts beziehungsweise einer virtuellen Festplatte zu erstellen. Falls man mit der kostenlosen Version eine gute Wiederherstellungsrate erfährt und alles wiederherstellen möchte, könnte es sich lohnen, die kostenpflichtige Version zu erwerben.
(3) RecuperaBit
Voraussetzungen:
- RecuperaBit-Kopie (https://github.com/Lazza/RecuperaBit)
- Python-3-Installation auf dem gewünschten Betriebssystem
- verfügbarer Speicherplatz in der Größe der VM
- eine „Sandbox“, VM-Arbeitsumgebung oder ein separates Gerät, um mögliche Erkennungen durch Endpunktschutz zu vermeiden
- Anwendungsumgebung: Windows, Linux
RecuperaBit wird von Andrea Lazzarotto entwickelt und liegt inklusive Bedienungsanleitung auf GitHub bereit. Es ist ein automatisiertes Tool, das alle NTFS-Partitionen wiederherstellt, die es in einer verschlüsselten VM finden kann: Dann wird die Ordnerstruktur dieser Partition auf dem Gerät, das für die Untersuchung verwendet wird, wiederhergestellt. Bei einem erfolgreichen Durchlauf kann man anschließend auf die Datei(en) zugreifen und diese nach Belieben aus der neu erstellten Verzeichnis-/ Ordnerstruktur kopieren.
RecuperaBit ist ein Python-Skript, das auf jedem Betriebssystem funktioniert, das Python 3 unterstützt. Es ist einfach zu bedienen und es sind nur wenige Schritte erforderlich, um eine verschlüsselte VM wiederherzustellen. Erfahrungsgemäß erhält man nach etwa 20 Minuten ein Ergebnis, um abschätzen zu können, ob sich etwas Nützliches wiederherstellen lässt oder nicht. Falls eine Wiederherstellung möglich ist, benötigt das Tool weitere rund 20 Minuten, um die Partition neu zu erstellen.
Es ist wichtig zu wissen, dass die Ausführung von RecuperaBit wahrscheinlich Endpoint-Schutzprogramme alarmieren wird, wenn sich „ransom.exe“ oder andere schädliche Dateien auf der VM befinden. Daher sollte man dieses Tool in einer Umgebung einsetzen, in der man einen solchen Schutz gefahrlos deaktivieren kann – beispielsweise in einer sicheren Sandbox.
(4) bulk_extractor
Voraussetzungen:
- bulk_extractor für Windows oder Linux (https://github.com/simsong/bulk_extractor oder via www.kali.org/tools/bulk-extractor/)
- Linux-Gerät, WSL sowie eine funktionierende VM, wenn die Linux-Binary verwendet werden soll
- „Sandbox“, VM-Arbeitsumgebung oder ein separates Gerät, um mögliche Erkennungen durch Endpunktschutz zu vermeiden
- Anwendungsumgebung: Windows, Linux
bulk_extractor ist ein kostenloses von Simson Garfinkel entwickeltes Tool, das unter Windows oder Linux läuft (auch wenn die Pentest Distribution kali.org es als „bulk-extractor“ bezeichnet, handelt es sich dabei um dasselbe Tool). Das Tool kann Systemdateien wie Windows-Ereignisprotokolle (.EVTX) sowie Mediendateien wiederherstellen – es arbeitet automatisiert, sodass der Anwender es starten und beispielsweise über Nacht laufen lassen kann.
Es ist möglich, bulk_extractor für bestimmte Dateitypen oder Artefakte zu konfigurieren, indem man die Konfigurationsdatei anpasst. Dieses Vorgehen kann zur Beschleunigung der Analyse sehr nützlich sein – gerade wenn nicht die gesamte Partition interessiert, sondern beispielsweise lediglich EVTX-Dateien wiederhergestellt werden sollen. Eine Bedienungsanleitung ist auf Github verfügbar.
Wie bei RecuperaBit (Methode 3) werden auch bei bulk_extractor schädliche Dateien wie „ransom.exe“ von Endpoint Schutzprogrammen erkannt. Aus diesem Grund sollte man auch bulk_extractor in einer Umgebung verwenden, in der sich der Endpoint-Schutz gefahrlos deaktivieren lässt.
5) EVTXtract
Voraussetzungen:
- EVTXtract-Download (https://github.com/williballenthin/EVTXtract)
- Linux-Gerät, WSL und eine funktionierende VM
- Anwendungsumgebung: Linux
Dieses spezialisierte Tool durchsucht einen Datenblock beziehungsweise eine verschlüsselte VM nach vollständigen oder fragmentierten .evtx-Dateien. Findet es solche Dateien, stellt das Tool sie in ihrer ursprünglichen XML-Struktur wieder her. EVTXtract ist ein automatisiertes Tool, das unter Linux läuft – ein Benutzerhandbuch ist über Github verfügbar.
XML-Dateien sind bekanntlich schwer zu bearbeiten; in diesem Fall enthält die Datei möglicherweise fehlerhaft eingebettete EVTX Fragmente, weshalb das Ergebnis etwas unhandlich sein kann. Um die Überprüfung der Ergebnisse nach Durchführung des Tools zu erleichtern, können die Daten aufbereitet werden: Hierfür eignet sich die Konvertierung ins CSV-Format, um die Ansicht zu erleichtern. Darüber hinaus kann der Linux- Befehl grep, mit dem man nach bestimmten Datumsformaten, Event-IDs, Schlüsselwörtern oder bekannten IoCs filtern kann, die Aktivitäten am relevanten Tag anzeigen.
Es gilt zu beachten, dass dieses Tool ausschließlich EVTX-Dateien oder -Fragmente wiederherstellen kann. Für andere Artefakte müssen andere Tools verwendet werden.
(6) Scalpel / Foremost
Voraussetzungen:
- Kopie von Scalpel (https://github.com/sleuthkit/scalpel) und/oder Foremost (https://github.com/gerryamurphy/Foremost)
- Linux-Gerät, WSL und eine funktionierende VM
- „Sandbox“, VM-Arbeitsumgebung oder ein separates Gerät, um mögliche Erkennungen durch Endpunktschutz zu vermeiden
- Anwendungsumgebung: Windows, Linux
Es existieren viele Werkzeuge, die speziell für die Wiederherstellung bestimmter Dateitypen entwickelt wurden – zu den verfügbaren kostenlosen Dateiwiederherstellungstools gehören Scalpel und Foremost (sowie u. a. das bereits besprochene DMDE). Obwohl beide Werkzeuge technisch gesehen älter sind, hat das Incident-Response-Team von Sophos bei seinen Ermittlungen sehr gute Ergebnisse damit erzielt.
Die erste Version von Scalpel wurde bereits 2005 veröffentlicht und basierte auf Foremost, das ursprünglich vom US Air Force Office of Special Investigations und dem Center for Information Systems Security Studies and Research entwickelt wurde. Beide Tools zur Datenextraktion und Indexierung ähneln sich dementsprechend in ihrem Ansatz: Sie sind hauptsächlich auf die Wiederherstellung von Medien- und Dokumentdateien ausgerichtet, was sie bei der Untersuchung von Dokumenten, PDFs oder Ähnlichem sehr nützlich macht. Die Konfigurationsdatei lässt sich bei beiden Tools so anpassen, dass nur bestimmte Dateitypen wiederhergestellt werden – wahlweise kann sie unverändert bleiben, um eine umfassendere (wenn auch langsamere) Wiederherstellung zu ermöglichen.
An dieser Stelle ist nochmals zu betonen, dass sich diese Tools nicht für die Wiederherstellung von Systemdateien eignen. Zudem können wiederhergestellte Dateien auch hier Endpointschutz-Alarme auslösen, wenn sich bösartige Dateien darunter befinden (z. B. schädliche PDFs aus Phishing-Angriffen). Es ist daher empfehlenswert, diese Tools in einer isolierten Umgebung (Sandbox) zu verwenden, in der man den Endpoint-Schutz gefahrlos deaktivieren kann.
Da beide Programme schon länger existieren, ist die Wiederherstellung neuerer Dateitypen möglicherweise nicht immer möglich. Die auf GitHub verfügbaren Downloads werden nicht mehr aktiv gewartet und gepflegt – sie sind jedoch als leicht verfügbare Optionen noch immer eine zuverlässige Wahl. Dort stehen jeweils auch Benutzerhandbücher zur Verfügung.
(7) Manuelle Extraktion von NTFS-Partitionen
Diese Methode ist potenziell gefährlich in der Anwendung, erfordert viel Erfahrung und verzeiht keine Fehler. Auf der anderen Seite kann sie jedoch sehr erfolgversprechend sein und Unternehmen maßgeblich dabei helfen, ihre VMs beziehungsweise Daten, beispielsweise nach einer Ransomware-Attacke, wiederherzustellen.
Voraussetzungen:
- Linux-Gerät, WSL und funktionierende VM
- Hex-Editor – etwa HxD (https://mh-nexus.de/en/hxd/) oder das Unix-/Linux-Commandlinetool xxd
- Windows-Version mit dem nativen Windows-Mounting-Tool
- Drittanbieter-Mounting-Tools
- Imaging-Tool wie FTK (www.exterro.com/digital-forensics-software/forensic-toolkit, kostenpflichtig) und/oder Archivierungstools wie 7-Zip (https://7-zip.de)
- verfügbarer Speicherplatz in der Größe der VM
- Anwendungsumgebung: Windows
Anders als die bereits beschriebenen Tools und Techniken erfordert das manuelle Extrahieren detaillierte Vorbereitungen und ein genaues Verständnis der verfügbaren Optionen. Der Prozess ist speicherintensiv – er benötigt mindestens noch einmal so viel Speicherplatz wie die virtuelle Maschine (VM) beziehungsweise Festplatte selbst, da im Wesentlichen eine Kopie davon erstellt wird. Arbeitet man an einer VM mit 100 GB, werden weitere 100 GB benötigt sowie zusätzlicher Speicherplatz, um die gewünschten Dateien zu extrahieren.
Der Prozess besteht aus vier Hauptschritten:
- Analysieren der verschlüsselten VM auf verfügbare NTFS-Partitionen
- Extrahieren der größten NTFS-Partition und Speichern in einer neuen Datei
- Mounten der neu erstellten Datei in Windows, wenn diese intakt genug ist
- Extrahieren der benötigten Artefakte
Im Folgenden wird das Kopieren unter Verwendung von dd beschrieben, einem leistungsstarken Linux-Utility-Tool. Ursprünglich stand „dd“ für „Data Definition“ und gilt als eine Art „Urgott“ der Computertechnik: Es existierte im Juni 2024 bereits seit 50 Jahren. Anwender, für die dd neu ist, sollten wissen, dass beispielsweise Schreibfehler bei diesem Tool katastrophale Folgen haben können – was dem Tool den alternativen Namen „Disk-Destroyer“ eingebracht hat. Es wird oft als „Schweizer Taschenmesser, aber nur mit Klingen und ohne Griff“ beschrieben. Anwendern wird empfohlen, sich vor der Nutzung intensiv mit den dd-Grundlagen vertraut zu machen. Zudem ist es empfehlenswert, dd-Befehle zunächst in einem Texteditor zu schreiben, dann genau zu prüfen und erst danach in die Kommandozeile zu kopieren und zu starten.
Für eine korrekte manuelle Extraktion sind vor der Ausführung von dd drei Einstellungen festzulegen: die Bytes pro Sektor „bs“, der Offset-Wert des NTFS-Sektors („skip“), der wiederhergestellt werden soll, und die Größe dieses Sektors („count“). Diese Berechnungen sind nicht unbedingt schwierig, erfordern jedoch Zeit und sind unverzichtbar. Die Schritte zur Berechnung aller drei Parameter
werden weiter unten in diesem Beitrag noch genau beschrieben.
Der Kommandozeilenbefehl für das Kopieren unter Linux lautet (Achtung: Man kann nicht oft genug betonen, dass dd keine Tippfehler verzeiht!):
sudo dd if=abc of=xyz bs=000 skip=000
count=000 status=progress
- sudo: zur Ausführung benötigt man höchste Privilegien für dieses Tool
- dd: das Tool selbst, das üblicherweise in Linux-/Unix-Systemen integriert ist
- if: steht für Input-File, also hier der Pfad und Dateiname der verschlüsselten VM
- of: steht für Output-File, also hier der Name der neu erstellten Partition – die empfohlene Dateiendung ist „.img“.
- bs: Bytes pro Sektor der Partition, die extrahiert wird (in Bytes angegeben)
- skip: Offset-Wert in Sektoren der NTFS-Partition, die extrahiert wird, gemessen vom Beginn der Festplatte beziehungsweise der VM-Datei
- count: Größe der Partition in Sektoren, die extrahiert werden soll
- status: optionaler Schalter, der einen Fortschrittsbalken anzeigt und veranschaulicht, wie viele Bytes bereits dupliziert wurden
Wie bereits erwähnt, müssen drei Werte für den Befehl berechnet und bereitgestellt werden: „bs“, „skip“ und „count“. Am einfachsten lassen sich diese – wie im Folgenden erläutert – mit einem GUI-Hex-Editor wie HxD von Maël Hörz (kostenlos für Windows) ermitteln.
Alternativ lässt sich ein Unix-/Linux-Kommandozeilen-Tool wie xxd verwenden.
Sammeln der grundlegenden Werte
Nach dem Starten von HxD und dem Laden der verschlüsselten VM-Datei sollte man links auf die Offset-Spalte klicken, um die Werte auf dezimal (Basis 10) umzustellen. In HxD wird dies durch den Buchstaben „d“ in Klammern angezeigt, wie in Abbildung 10 zu sehen ist. Im nächsten Schritt wird über das Menü „View“ der Dateninspektor (Data Inspector) geöffnet, mit dessen Hilfe man nach potenziellen NTFS-Partitionen suchen kann: Dazu wird das oberste Byte links markiert und die Suchfunktion verwendet, um nach dem hexadezimalen String
EB 52 90 4E 54 46 53 20 20 20 20
zu suchen – also nicht nach einem dezimalen oder Text- String, falls solche Optionen verfügbar sind. In HxD ist hierfür darauf zu achten, welcher Tab im Suchfenster geöffnet ist (Abb. 11).
Die angegebene hexadezimale Zeichenfolge ist das „Signaturbyte“ einer NTFS-Partition. Diese Suche findet damit alle potenziellen NTFS-Partitionen, die extrahiert werden können. Wahrscheinlich werden viele Treffer in einer Liste angezeigt, wie Abbildung 12 in der unteren Hälfte zeigt. Wählt man eines dieser Ergebnisse aus, wird im Hex-Viewer-Fenster darüber der Header der NTFS-Partition angezeigt (ob. Teil in Abb. 12). Dieser Header enthält die grundlegenden Informationen, die für die Werte „bs“, „skip“ und „count“ für den dd-Befehl benötigt werden.
Berechnung der Bytes pro Sektor (bs)
Für den ersten Wert arbeitet man vom Anfang der ausgewählten NTFS-Partition aus und markiert die Bytes an den Offsets 11 und 12, wie in Abbildung 13 dargestellt. Der im Dateninspektor angezeigte Wert „Int16“ ist der benötigte bs-Wert – im Beispiel beträgt er (wie fast immer) 512.
Berechnung des Partitions-Offsets (skip)
Als nächstes ist der skip-Wert zu berechnen, indem man den Header-Offset-Wert durch den bs-Wert teilt. Diese Berechnung liefert damit den Sektorwert, an dem die NTFS-Partition beginnt. Zum Beispiel beträgt der Header-Offset-Dezimalwert für die NTFS-Partition, die in Abbildung 14 hervorgehoben ist, 00576716800 (grüne Markierung). Um den skip Wert zu berechnen, wird dieser im Beispiel durch 512 (bs) geteilt – konkret also 576716800 / 512 = 1126400. Der skip-Wert im Beispiel lautet also 1126400.
Berechnung der Partitions-Länge (count)
Nun sucht und markiert man die acht Bytes, die bei dem 41. Byte vom Beginn des NTFS-Headers beginnen. Um diesen Wert zu finden, geht man in Hey-Ansicht zwei Zeilen vom ersten Header-Byte (EB) nach unten und zur 08-Spalte nach rechts und markiert die folgenden acht Bytes bis zur 15-Spalte (also die Bytes 41 – 48), wie in Abbildung 15 gezeigt. Der im INT64-Format im Dateninterpreter angezeigte Wert ist der gesuchte count-Wert – im gezeigten Beispiel beträgt er 1 995 745 279. Dieser Wert ist bereits in Sektoren angegeben, daher ist keine Umrechnung erforderlich.
Damit sind die drei Werte, die das dd-Tool benötigt, ermittelt und können im oben genannten Befehl eingegeben werden. Nach dem Aufruf mit der Enter-Taste extrahiert dd die gewählte NTFS-Partition. Nach dem Abschluss dieses Vorgangs kann man die neu extrahierte Datei in üblicher Manier mounten und sollte nun in der Lage sein, die benötigten Daten wiederherzustellen. Falls das Laufwerk nicht ohne Weiteres gemountet wird, kann man es mit 7-Zip (oder anderen Archivierungstools) beziehungsweise anderen Mounting- oder Analyse-Tools wie FTK versuchen.
Auswahl der vielversprechendsten Partition
Wie bereits erwähnt, sollte man die größte verfügbare Partition auswählen, um sie zu extrahieren – der „count“-Wert gibt die Größe einer Partition an. Wenn eine Partition nur einige Sektoren groß ist, lohnt es sich wahrscheinlich nicht, sie zu extrahieren. Um die Chancen auf eine erfolgreiche Extraktion des „C:-Laufwerks“ zu erhöhen, ist es in der Regel der beste Ansatz, die größte Partition aus der ursprünglichen Liste der NTFS-Partitionen herauszusuchen.
Die größte Partition sollte ungefähr die gleiche Größe wie die gesamte VM-Datei haben. Die Größe der VM-Datei wird in Bytes
angezeigt, während die NTFS-Größe in gesamten Sektoren angegeben wird. Um diese zu vergleichen, muss die Sektorgröße der Partition also in Bytes umgerechnet, sprich mit dem „bs“-Wert multipliziert werden. Im Beispiel: 1 995 745 279 × 512 = 1 021 821 582 848 bytes (951,64 GB)
Abbildung 16 zeigt zusammenfassend den annotierten Screenshot eines NTFS-Headers mit den Fundstellen wichtiger Werte.
Fazit
Bei jeder Herausforderung im Bereich Incident-Response gibt es naturgemäß mehrere Methoden und Tools, um dasselbe Problem anzugehen – einige können je nach Art der eingesetzten Verschlüsselung besser funktionieren als andere. Eine manuelle Extraktion von NTFS-Partitionen kann erfolgreich sein, birgt aber auch ein hohes Potenzial an Fehlern mit nachhaltigen Konsequenzen.
Generell sollte man Wiederherstellungsversuche nicht mit den originalen Datenträgern, sondern immer anhand von Kopien durchführen. Und es kann sich immer lohnen, mehrere Methoden auszuprobieren, falls ein Versuch fehlschlägt oder nur teilweise erfolgreich ist.
Die beschriebenen Methoden stellen mitnichten eine Erfolgsgarantie für die Wiederherstellung
dar, sind jedoch erprobte Möglichkeiten mit guten Aussichten. Sie können einem Ermittlungsteam helfen, Daten in einer Situation zurückzugewinnen, in denen keine andere Wahl besteht. Die beste Methode zur Wiederherstellung von Daten nach einem Ransomware-Angriff besteht jedoch darin, eine Kopie aus einem sauberen, nicht-betroffenen Backup zu ziehen.
Leider können Daten in manchen Fällen nur teilweise oder überhaupt nicht wiederhergestellt werden. Wann ist es Zeit,
aufzugeben? Die Ergebnisse variieren – manchmal aus Gründen, die sich nicht nachvollziehen lassen. Ob oder wann man Wiederherstellungsversuche abbrechen sollte, hängt letztlich nicht nur von den technischen Möglichkeiten ab, sondern auch von der Wichtigkeit der gesuchten Daten für den Betrieb und die Existenz eines Unternehmens – hier aufzugeben ist und bleibt eine höchst individuelle Entscheidung.
Michael Veit ist Security-Experte bei Sophos.