KAPE – Daten extrahieren und analysieren

Eine forenische Analyse besteht, grob gesprochen, aus zwei Teilen: der Extraktion von interessanten Daten und der Analyse der extrahierten Daten. Ein bekanntes Tool hierfür ist Autopsy. Vor Kurzem bin ich beim Betrachten eines Videos (YouTube-Kanal von 13cubed) auf ein weiteres Tool gestoßen: KAPE (KROLL Artifact Parser and Extractor). Wie der Name schon vermuten lässt, wird dieses Tool von der Firma KROLL zur Verfügung gestellt. Autor des Tools ist Eric Zimmerman, der schon einige interessante Forensik-Tools entwickelt hat.

Das Tool erfordert eine kostenfreie Registrierung. Nach der Registrierung erhält man einen Download-Link, über den KAPE heruntergeladen werden kann.

KAPE muss nicht installiert werden. Man kann das Verzeichnis, das man nach dem Entpacken erhalten hat, einfach auf einen USB Stick übertragen.

Das Verzeichnis enthält drei Unterverzeichnisse: Documentation, Modules und Targets. Zu den beiden letzten Verzeichnissen kommen wir später; der Inhalt von „Documentation“ besteht aus einer Textdatei mit dem Link zur aktuellen Dokumentation und einem PDF mit den Nutzungsbedingungen. Die kommerzielle Nutzung ist, soweit erkennbar, nicht ausgeschlossen.

Das Hauptverzeichnis selbst enthälteine Datei mit Änderungen (ChangeLog), ein Skript zum Updaten  von KAPE sowie die Kommandozeilen- und die GUI-Version von KAPE.

Das Verzeichnis „Targets“ enthält die Anweisungen, welche Dateien zu sammeln sind. Hierbei ist anzumerken, dass es sich um Textdateien und nicht um Programme handelt!

Schauen wir uns zum Beispiel die Datei zum Sammeln von Dateien zum TrendMicro-Virenscanner an (TrendMicro.tkape):

Description: Trend Micro Data
Author: Drew Ervin
Version: 1.0
Id: 73f8ccea-61cf-4993-aa26-e5cad4f8cc8f
RecreateDirectories: true
Targets:
-
Name: Trend Micro Logs
Category: Antivirus
Path: C:\ProgramData\Trend Micro\
IsDirectory: true
Recursive: true
Comment: ""
-
Name: Trend Micro Security Agent Report Logs
Category: Antivirus
Path: C:\Program Files*\Trend Micro\Security Agent\Report\*.log
IsDirectory: false
Recursive: false
Comment: ""
-
Name: Trend Micro Security Agent Connection Logs
Category: Antivirus
Path: C:\Program Files*\Trend Micro\Security Agent\ConnLog\*.log
IsDirectory: false
Recursive: false
Comment: ""

Die Dateien aus „Targets“ enden alle auf .tkape. In ihnen ist beschrieben, wo KAPE nach Dateien suchen soll. Es kann angegeben werden, ob es sich um Dateien oder ein Verzeichnis handelt und ob rekursiv gesichert werden soll. Somit kann man sich selbst einfach zusätzliche „Targets“ schreiben.

Innerhalb von „Targets“ gibt es verschiedene Unterverzeichnisse für die verschiedenen Applikationsarten. Die obige Datei wurde dem Verzeichnis „Antivirus“ entnommen.

Das Verzeichnis „Modules“ ist ähnlich aufgebaut. Der entscheidende Unterschied ist das Verzeichnis „bin“. Das Auswerten der gesammelten Dateien überlässt KAPE nämlich einer großen Anzahl von Tools. Hier finden sich Eric Zimemrmans eigene Tools, Tools von Sysinternals und noch viele weitere Programme. Wobei diese Aussage nicht ganz richtig ist; „bin“ muss nämlich erst gefüllt werden.

Schauen wir uns aber erst mal eine .mkape-Datei an:

Description: Autoruns reports Explorer shell extensions, toolbars, browser helper objects, Winlogon notifications, auto-start services, and much more.
Category: LiveResponse
Author: Andy Furnas, Encoding updates by piesecurity
Version: 1.1
Id: c95e71bd-7abb-48c3-abae-f48b9ff19dec
BinaryUrl: https://download.sysinternals.com/files/Autoruns.zip
ExportFormat: csv
Processors:
-
Executable: C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
CommandLine: -Command "%kapedirectory%\Modules\bin\autorunsc.exe -a * -s -user * -c -accepteula -nobanner -h | Set-Content -Path %destinationDirectory%\autoruns.csv"
ExportFormat: csv

Wie hier zu sehen ist, wird das Tool Autoruns mit bestimmten Parametern aufgerufen und die Ergebnisse werden in einer CSV-Datei abgespeichert. Wichtig ist hierbei auch noch die Zeile mit „BinaryURL“, die angibt wo das Programm heruntergeladen werden soll.

KAPE erledigt nicht das Herunterladen des Programmes; aber es erleichtert das Suchen nach fehlenden Programmen. Dazu führt man zuerst einmal folgenden Aufruf von KAPE aus (Kommandozeilen- und GUI-Version müssen immer mit administrativen Rechten ausgeführt werden):

kape --mlist . --mdetail

Das Ergebnis sieht dann so aus:

J:\KAPE>kape --mlist . --mdetail

Modules found: 0

Sub directories
!Disabled
BrowsingHistory
EventLogs
FileFolderAccess
FileSystem
LiveResponse
Misc
ProgramExecution
Registry
Timelining

Das ist erst mal nicht so spektakulär. Führt man aber zum Beispiel

kape --mlist BrowsingHistory --mdetail

aus, so werden die Details zu den Tools aus dem Bereich BrowsingHistory angezeigt. Hier als Beispiel „HindSight“:

Module: Hindsight
Description: Hindsight - Chrome browser parsing
Category: BrowsingHistory

Processor details:
Executable: hindsight.exe
Command line: -i %sourceDirectory% -o %destinationDirectory%\Hindsight_output -f xlsx
Export format: xlsx

Executable: hindsight.exe
Command line: -i %sourceDirectory% -o %destinationDirectory%\Hindsight_output -f json
Export format: json

Fehlt nun ein Tool, so steht am Ende der Ausgabe:

The following modules are missing binaries (Module name --> Download URL):
Hindsight --> https://github.com/obsidianforensics/hindsight/releases

Wichtig: der Name des Programms muss genau dem Namen hinter „Executable“ entsprechen! Bei Tools, die in 32-Bit- und 64-Bit-Versionen vorliegen, kann das zu einem Problem führen, da der Prozessortyp oft im Namen enthalten ist.

Sofern noch 32-Bit-Systeme zu untersuchen sind, empfiehlt sich die Zusammenstellung von zwei KAPE-Ordnern je nach Prozessortyp.

Wie wird KAPE nun angewendet? Betrachten wir zuerst den Schritt des Datensammelns. Hierbei kann KAPE ein Live-System auswerten, auf eine externe Platte (natürlich über WriteBlocker) zugreifen oder eine E01-Datei verwenden (E01= Encase File Format). In einem anderen Blog habe ich den Hinweis gefunden, dass man zum Mounten einer E01-Datei nicht den FTK Imager nehmen soll, sondern den Arsenal Image Mounter. Der Grund dafür ist wohl dass der FTK Imager keine Volume Shadow Copies zugreifbar macht[1].

Beim Aufruf bedienen wir uns eines kleinen Tricks. Die GUI-Version zeigt nach der Auswahl der Optionen die entsprechende Kommandozeile an. Interessant ist hierbei, dass die korrekte Kommandozeile erst angezeigt wird, nachdem man in das Feld „Current Command Line“ geklickt hat.

Hier ein einfacher Aufruf:

.\kape.exe --tsource C:\Users\Thomas --tdest J:\KAPE_Daten\Targets --tflush --target Firefox,WebBrowsers --gui

Der Schalter „–gui“ würde bei einem Aufruf über die Kommandozeile natürlich weggelassen.

KAPE soll also nur die Daten kopieren, die die Targets Firefox und WebBrowsers betreffen. Diese Daten sollen unterhalb von „C:\Users\Thomas“ gesucht und nach „J:\KAPE_Daten\Targets“ kopiert werden. Dabei soll das Zielverzeichnis vorher geleert werden!

Hinter dem Target „WebBrowsers“ verbirgt sich der Aufruf für die Targets der Browser Chrome, Edge, Internet Explorer und FireFox; insofern war der Parameter „FireFox“ redundant.

Etwas irritierend sind die Aufrufe innerhalb von FireFox.tkape:

Path: C:\Users\*\AppData\Roaming\Mozilla\Firefox\Profiles\*\places.sqlite*

Hier wird explizit C: angegeben, was nicht zwingend der Laufwerksbuchstabe sein muss, unter dem das Image eingebunden ist. In einem weiteren Artikel werde ich das Mysterium hoffentlich auflösen können.

Den Aufruf kann man aber noch verfeinern:

.\kape.exe --tsource C:\Users --tdest J:\KAPE_Daten\Targets --tflush --target Firefox --vss --vhdx test --zv false --gui

Der Schalter „–vss“ weist KAPE an, auch in den Volume Shadow Copies nach Daten zu suchen. Interessant ist auch der Schalter „–vhdx test“. Hiermit werden die Daten nicht einzeln kopiert, sondern es wird eine VHDX-Datei erzeugt (mit dem Namen „test“). Diese Datei soll aber nicht gepackt werden; deshalb der Schalter „–zv false“. Als Ziele stehen noch VHD- und ZIP-Dateien zur Auswahl.

Basierend auf dem SHA1-Hash der gefundenen Dateien findet auch noch eine Deduplizierung statt. Ist das nicht gewünscht, kann das mit dem Schalter „–tdd“ abgeschaltet werden.

Sofern bestimmte Dateien nicht kopiert werden sollen (obwohl sie zum Target passen), dann können entsprechenden SHA1-Hashes übergeben werden.

Werden die Dateien in einen VHDX- oder VHD-Container bzw. als ZIP kopiert, so kann die Zieldatei per SFTP übertragen oder in AWS S3 bzw. Azure Storage kopiert werden.

Hinweis: bei einem Live-System benötigt KAPE zwei Durchläufe, um in Benutzung befindliche Dateien auch kopieren zu können.

Liegen die kopierten Datein nun vor, können sie mit den passenden Modulen weiterbearbeitet werden.

Bleiben wir bei unserem Beispiel mit den Browserdaten. Als Quelle wird nun das Zielverzeichnis des obigen Aufrufs genommen. Die verarbeitenden Programme sind „Browsing History View“ von NirSoft und „Hindsight“.

.\kape.exe --msource J:\KAPE_Daten\Targets --mdest J:\KAPE_Daten\Modules --mflush --module BrowsingHistoryView,Hindsight 

Mit dem Schalter „–zm“ können die Ergebnisse gepackt werden; „–zpw <Passwort>“ legt ein Passwort auf die Datei.

Es können noch weitere Parameter gesetzt werden; aber für erste Gehversuche sollten die Angaben erst mal reichen.

Sofern es zu Problemen kommt, liegen im „Targets“- und im „Modules“-Ordner Protokolldateien.

[1] https://binaryforay.blogspot.com/2019/02/introducing-kape.html

 

Dieser Beitrag wurde unter forensik, security veröffentlicht. Setze ein Lesezeichen auf den Permalink.