Wir stoßen immer wieder auf die Fragestellung, ob jemand auf seinem Rechner einen TrueCrypt-Container verwendet hat. Der erste Reflex bei unerfahrenen Forensikern schwankt dann oft zwischen nackter Panik und völliger Mutlosigkeit. Es ist natürlich nicht gesagt, dass man immer Zugriff auf Daten in einem TrueCrypt-Container hat, aber ich möchte hier gern ein paar Hinweise geben, um vielleicht doch erfolgreich zu sein und mehr Informationen über den Container zu erlangen.
Der erste Weg führt immer über die Artefakte des Betriebssystems, auf dem der Container vermutlich verwendet wurde. In meinem Beispiel ein Windows-System. Ich versuche dabei folgende Fragen zu beantworten, die in ihrer einzelnen Beantwortung bereits ein Untersuchungsergebnis darstellen könnten:
- Ist TrueCrypt installiert, bzw. wurde es auf dem System verwendet?
- Unter welcher Benutzerkennung wurde TrueCrypt installiert, bzw. auf dem System verwendet?
- Befinden sich TrueCrypt-Container auf dem System (Sind ganze Partitionen mit TrueCrypt verschlüsselt, merkt man das in der Regel recht schnell. In den ersten 512Byte der Partition findet sich der Text „TrueCrypt Boot Loader“. Aber dennoch Vorsicht: Der Text kann aber auch von ganz paranoiden Anwendern durch einen beherzten dd-Befehl geändert werden, sodass eine automatische Suche fehlschlägt)
- Wo bzw. unter welchem Laufwerksbuchstaben war der Container gemountet?
- Bonusfrage: Was war in dem Container?
Um diese Fragen zu beantworten müssen wir uns zuerst vergegenwärtigen was wir eigentlich als Forensiker nachweisen wollen und welche Argumentationskette wir dabei z.B. unter Windows mit welchen Befehlen verfolgen wollen. Die gängigsten Fragestellungen sind:
- Nachweis, dass eine Datei auf das System gebracht wurde (z.B. durch Download).
- Nachweis, dass eine Datei geöffnet oder erstellt wurde.
- Nachweis, dass der Inhalt oder die Existenz einer Datei einem Benutzer bekannt war.
- Nachweis, dass ein Programm ausgeführt wurde.
Zu jedem dieser Punkte gibt es zahlreiche Untersuchungsschritte, die man entweder zu Fuß absolviert oder durch ein Tool automatisiert ausführen lässt: UserAssist Keys, LastVisited-MRU, Open/Run-MRU, Open/Save-MRU, LastRun-MRU, Office-MRU, MUI-Cache, Jumplists, EVT-Dateien, Prefetch-Dateien, LNK-Anomalien, index.dat und äquivalente Dateien der Browser, Chat-Logs, etc. etc. etc.
Auf unsere fünf Ausgangsfragen zurückkommend, helfen nun die folgenden Untersuchungsschritte:
Das Einfachste ist es, wenn man nach c:/programme/truecrypt/truecrypt.exe oder ähnlichen Installationsverzeichnissen sucht. Ist TrueCrypt als portable App verwendet worden, wird sich hier aber nix finden. Als nächstes sucht man in der Registry nach Uninstall Keys oder ob TrueCrypt als Service installiert wurde. In der Defaulteinstellung werden alle Dateien mit der .tc-Endung mit TrueCrypt verknüpft. In manchen Fällen existiert diese Verknüpfung auch noch nach der Deinstallation. Dies kann man alles finden, wenn es da sein sollte.
In diesem Beispiel sind in der Registry Uninstall-Spuren vorhanden (immer schön auch die VSS-Copies und System Restore Points durchsuchen ;-)). TrueCrypt war also auch richtig installiert:
Zusätzlich hat der lokale Nutzer auch lokal nach TrueCrypt gesucht und den WordWheelQuery-Registryschlüssel später nicht gelöscht. Somit finden sich die Suchbegriffe der lokalen Suche noch im System:
Außerdem findet sich auf dem System unter /Users/Administrator/AppData/Roaming/TrueCrypt die Datei History.xml, die die zuletzt gemounteten Container enthält. Das Speichern der TrueCrypt-History wird nicht immer durch den Anwender deaktiviert):
Ist TrueCrypt direkt von dem System heruntergeladen worden, findet sich möglicherweise ein Hinweis hierzu in den diversen Browser-History-Verweisen. Diese Analyse ersparen wir uns an dieser Stelle mal, ist ja quasi ein no-brainer.
Kommen wir nun zur Frage, ob und durch wen TrueCrypt aufgerufen wurde. Einige Fundspuren aus den UserAssist- und anderen Registry-Keys in diesem Beispiel:
Weitere Informationen zu einer Anwendung, nämlich ob, wann und wie oft diese gestartet wurde, bieten die sog. Prefetch-Dateien. Zu TrueCrypt sehen wir, dass es am 10.10.2011 das erste Mal gestartet wurde, das letzten Mal am 14.06.2012, insgesamt 167 Mal und die Konfigurationsdatei im Benutzerverzeichnis der Kennung „Administrator“ verwendet wurde:
Zu Beantwortung der Frage, ob der TrueCrypt-Container noch irgendwo auf dem System ist, müssen wir nun nach möglicherweise vorhandenen Containern suchen. Wir haben ja aus der History.xml bereits gelernt, dass eine Datei picture.jpg eingebunden war. Wir wollen aber wissen, ob es noch mehr gibt und ob diese evtl. umbenannt und unter neuen Namen weiterverwendet wurde. Man kann sich z.B. mit TCHunt die verdächtigen Dateien anzeigen lassen.
z:Forensics>tchunt _/_/_/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/_/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/ _/ _/_/_/ _/ _/ _/_/ v1.6 Allowed options for TCHunt: -d [ --dir ] arg The directory to search (recursive). -h [ --help ] Print this message and exit. -v [ --verbose ] Print verbose output. z:Forensics>tchunt -d /mnt/C Suspect_File: /mnt/C/bin/cont-27.bin Suspect_File: /mnt/C/bin/picture.jpg
Ist es nun gelungen, TrueCrypt-Container auf dem einen oder anderen Weg zu identifizieren, kann man z.B. mit TCHead die Verwaltungsinformationen im Header eines TrueCrypt-Containers entschlüsseln. Hier ist aber bereits das Passwort notwendig. Hat man sehr sehr sehr viel Zeit, nimmt man eine Wörterliste und probiert diese durch.
#/>TCHead /mnt/C -f picture.jpg -P wordlist.txt
Eine andere Alternative – nicht wirklich schneller – ist TrueCrack. Noch ein Vertreter aus dem Freeware-Lager wäre unprotect.info. Da kein OpenSource, kann ich nicht sagen, was das Tool noch so macht 😉 Ich verweise hier auch auf OpenSource bzw. Freeware-Tools, da mir an „anderer Stelle“ vorgehalten wurde, dass ich oft nur teure kommerzielle Werkzeuge beschreibe und andere alles so schön einfach mit OpenSource-Tools erklären 😉
Hat man keine Zeit auf das Ergebnis von TrueCrack oder TCHead zu warten, kann man auch gern auf performantere und komfortablere Werkzeuge zurückgreifen. Zwei Vertreter dieser Spezies sind z.B.:
- Passware Hard Disk Decryption
- Password Recovery Toolkit von AccessData
Hat man die Hiberfil.sys sichern können oder vielleicht einen Memory-Dump von einem Zeitpunkt, als der TrueCrypt-Container gemountet war, sieht die Sache auch schon wieder anders aus und ist dann möglicherweise einfacher. Anwender des Volatility-Frameworks können z.B. Jesse Kornblums cryptoscan-Modul verwenden, welches in Memory-Dumps nach TrueCrypt Credentials sucht.
An dieser Stelle sei beim Thema Cracken von TrueCrypt-Container noch darauf hingewiesen, dass im Rahmen einer internen Ermittlung u.a. auch die Fragen des Datenschutzes zwingend zu beachten sind. Es sind also vorher alle rechtlichen Prüfprozesse durch das Ermittlungsteam anzuwenden, um hier keinen Gesetzesverstoss zu begehen. Zu diesen Fragen demnächst mehr hier im Blog.
Um herauszufinden, ob der TrueCrypt-Container gemountet war bzw. unter welchem Buchstaben, müssen wir wieder die Registry befragen (in wirklich seltenen Fällen speichern die Anwender eine feste Zuordnung im Favoriten-Menü von TrueCrypt; dies würde sich dann in der Datei Favorites.xml finden). Am besten sollten Sie jetzt mit dem Tool Ihrer Wahl nach MountedDevices forschen. Hier ein Beispiel mit Regripper auf der Kommandozeile:
z:Forensics>rip.pl –f system –r /mnt/C/Windows/System32/SYSTEM | more … MountedDevices LastWrite time = Sun Jun 14 09:11:14 2012Z … Device: TrueCryptVolumeZ ??Volume{302e4ca2-2c2a-11e2-a054-001c4295f18d} DosDevicesZ:
Zu guter Letzt müssen wir – unabhängig ob der Passwortcracker in diesem Leben noch fertig werden sollte – herausfinden, was denn eigentlich in dem Container enthalten war. Den Laufwerksbuchstaben Z: kennen wir jetzt. Der nächste Schritt ist die Suche in allen MRU-Keys der Registry bzw. Recent-Foldern nach dem Laufwerksbuchstaben. Auch lohnt es sich in nochmal im Prefetch-Verzeichnis nach dem TrueCrypt-Volumennamen zu suchen, ob von diesem nicht noch weitere Software gestartet wurde:
z:Forensics>prefetchinfo -v /mnt/C/Windows/Prefetch/FIREFOX.EXE-132C53BF.pf | grep TRUECRYPTVOLUMEZ 028 : DEVICE/TRUECRYPTVOLUMEZ/FIREFOX/FIREFOX.EXE 059 : DEVICE/TRUECRYPTVOLUMEZ/FIREFOX/PROFILEPREFS.JS
Es zeigt sich, dass vom Laufwerk Z:, dem gemounteten TrueCrypt-Container, ein Prozess Firefox.exe gestartet wurde. Die zugehörigen Firefox-Profildaten befinden sich ebenfalls auf Laufwerk Z:
Nun könne wir die fünf Fragen von oben mit hoher Wahrscheinlichkeit beantworten:
- Ja, es war TrueCrypt installiert (es wurde vermutlich am 01.04.2011 installiert) und wurde auch verwendet (zwischen dem 10.10.2011 und 14.06.2012 167 Mal) .
- Die Benutzerkennung „Administrator“ hat TrueCrypt gestartet.
- Es befinden sich zwei TrueCrypt-Container auf dem System: C:/bin/cont-27.bin und C:/bin/picture.jpg
- Mindestens ein Container war unter dem Laufwerksbuchstaben Z: gemountet
- Im Container, der als Laufwerk Z: gemountet war, befand sich u.a. ein Firefox mit seinen Profileinstellungen vermutlich als portable App (da war wohl jemand mit den Einschränkungen des zentral zur Verfügung gestellten Browsers nicht zufrieden oder wollte beim surfen keine Spuren auf dem System hinterlassen)
Ein Teil der TrueCrypt-Artefakte hätte der Anwender in diesem Beispiel sicherlich vermeiden können, aber die Erfahrung zeigt, dass überall irgendwann mal der Schlendrian einsetzt.
Nur auf den Datenschutz zu verweisen finde ich zu kurz gegriffen und gefährlich. Ich halte den § 202a StGB („Ausspähen von Daten“) in vielen Fällen für einschlägig.
Danke. Vollkommen korrekter Hinweis. Wir haben es hier mit einem ganzen Normenbündel zu tun, das anzuwenden ist. Deswegen auch „u.a.“
Sehr schöner Artikel, vielen dank, ich schau in dem Blog mal öfter vorbei! Bezüglich analyse von TrueCrypt-Headern könnte sich auch noch folgendes Tool anbieten: http://16s.us/TCHead/
Ich will einen Truecrypt Container wiederherstellen. Ich sehe die Randomdaten zwar noch mit Winhex ca 500GB , kann sie aber als Datei nicht öffnen. Das externe Laufwerk USB wurde nicht erkannt (MDR kaputt? ) und meine versehentliche Schnellformatierung hat sämtliche Dateien verschwinden lassen. Suche jemand, der den Anfang und das Ende vom Container (500GB) mit zb Winhex finden, und neu abspeichern kann. Es geht um mehrere Jahre kreative Arbeiten.
Hallo mart1n,
sollten Sie noch Hilfe mit dem TC-Container benötigen, dann können Sie mir gerne eine Email an -info@smartforensics.de– schicken. Möglicherweise lässt sich der Container wieder herstellen. Das ist jedoch von verschiedenen Faktoren abhängig, die im Vorfeld abgeklärt werden müssten.
Schöner Artikel. Allerdings erschließt sich für mich der Nutzen nicht ganz:
„Nun könne wir die fünf Fragen von oben mit hoher Wahrscheinlichkeit beantworten:
1. Ja, es war TrueCrypt installiert (es wurde vermutlich am 01.04.2011 installiert) und wurde auch verwendet (zwischen dem 10.10.2011 und 14.06.2012 167 Mal) .“
Welche Aussagekraft hat das? Das ist nicht verboten und es gibt verschiedene Gründe TrueCrypt zu benutzen
„2. Die Benutzerkennung “Administrator” hat TrueCrypt gestartet.“
Welche Aussagekraft hat das? Das erklärt noch nicht, wer den Rechner genutzt hat
„5. Im Container, der als Laufwerk Z: gemountet war, befand sich u.a. ein Firefox mit seinen Profileinstellungen vermutlich als portable App (da war wohl jemand mit den Einschränkungen des zentral zur Verfügung gestellten Browsers nicht zufrieden oder wollte beim surfen keine Spuren auf dem System hinterlassen)“
Welche Aussagekraft hat das? Firefox ist ein allgemein üblicher Browser und auch die Möglichkeit im privaten Modus oder als portable Version zu verwenden bestätigt lediglich ein (vielleicht berechtigtes) Sicherheitsbedürfnis des Nutzers.
Ich denke, dass allein mit diesen Daten niemand etwas anfangen könnte. Ich weiß auch, dass man mit den jetzt gesendeten Daten sehr viel über mich erfahren kann. Aber ich habe mir ja nichts vorzuwerfen …
Tja, es ist wie bei vielen Dingen. Eine pauschale Betrachtung reicht nicht aus. Es gibt durchaus forensische Fragestellungen – gerade auch im geschäftlichen Umfeld – wo diese Fragen von Relevanz sind. Was in einem Umfeld normal scheint, kann in einem anderen Umfeld anormal sein.
Sehr guter Artikel, von den Forensikern unter euch würde ich gerne Wissen warum es so wenig Tools gibt die eine Keyfile berücksichtigen. Zusätzlich habe ich selbst das Problem das ich eine Datei besitze bei der sich der Header verabschiedet hat und ich selbstverständlich kein Backup besitze, so muss es doch meiner Meinung nach ein Tool geben welches das korrekte Passwort und die richtige Keyfile verwendet und irgendwie in den Container kommt.
Ich würde mich sehr über eine Antwort freuen.