Benutzer-Werkzeuge

Webseiten-Werkzeuge


tools:dateisystem:sleuthkit:disk_images_untersuchen_mit_tsk

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
tools:dateisystem:sleuthkit:disk_images_untersuchen_mit_tsk [2024/05/18 18:52] – Seite überarbeitet gahsultools:dateisystem:sleuthkit:disk_images_untersuchen_mit_tsk [2024/05/20 09:13] (aktuell) – Kleinere Korrekturen gahsul
Zeile 3: Zeile 3:
 In diesen Tutorial wird TSK und das EWF (Expert Witness Compression Format) für die Image Erstellung verwendet, In diesen Tutorial wird TSK und das EWF (Expert Witness Compression Format) für die Image Erstellung verwendet,
 da das [[ap>libewf]] Paket bei einem [[https://archlinux.org|Arch Linux]] als Abhängigkeit mit installiert wird. da das [[ap>libewf]] Paket bei einem [[https://archlinux.org|Arch Linux]] als Abhängigkeit mit installiert wird.
-Als Alternative zu ''libewf'' sei [[aur>afflib]] zubennen. +Als Alternative zu ''libewf'' sei [[aur>afflib]]<sup>**AUR**</sup> zubennen. 
  
-Es werden immer wieder Begriffe wie case (Fall), Evidence (Beweis) etc. fallen. Da diese Tools hauptsächlich in der Digital Forensik zum Einsatz kommen.+Es werden Begriffe wie case (Fall), Evidence (Beweis) etc. fallen. Da diese Tools hauptsächlich in der Digital Forensik zum Einsatz kommen.
  
 ===== Vorbereitungen ===== ===== Vorbereitungen =====
Zeile 14: Zeile 14:
  
 <code bash> <code bash>
-blkdiscard -fz /dev/sdc+sudo blkdiscard -fz /dev/sdc
 </code> </code>
  
-Als nächtes legen wir auf dem USB-Stick eine neue GPT (Guided Partition Tabelle) mit zwei unterschiedlich großen Partitionen an. +Als nächtes legen wir auf dem USB-Stick eine neue [[wpde>GUID_Partition_Table|GPT]] mit zwei unterschiedlich großen [[wpde>Partition_(Datenträger)|Partitionen]] an. 
-Die wir wiederum einmal mit dem exFat und dem NTFS Dateisystem formatieren.+Die wir mit dem [[wpde>File_Allocation_Table#exFAT|exFat]] und dem [[wpde>NTFS]] [[wpde>Dateisystem]] [[wpde>Formatierung#High-Level-Formatierung|formatieren]].
  
 <WRAP todo> <WRAP todo>
Zeile 30: Zeile 30:
 NTFS_filesystem ="/mnt/usb-stick_ntfs" NTFS_filesystem ="/mnt/usb-stick_ntfs"
  
-mkdir -p ${exFAT_filesystem} ${NTFS_filesystem} +sudo mkdir -p ${exFAT_filesystem} ${NTFS_filesystem} 
-mount /dev/sdc1 ${exFAT_filesystem} +sudo mount /dev/sdc1 ${exFAT_filesystem} 
-mount /dev/sdc2 ${NTFS_filesystem}+sudo mount /dev/sdc2 ${NTFS_filesystem}
  
-echo "Ich bin eine Datei auf einem extFAT Dateisystem" >${exFAT_filesystem}/file_on_an_exfat_volume.txt +echo "Ich bin eine Datei auf einem extFAT Dateisystem" >${exFAT_filesystem}/file_on_an_exfat_volume.txt 
-echo "Ich bin eine Datei auf einem NTFS Dateisystem" >${NTFS_filesystem}/file_on_an_ntfs_volume.txt +echo "Ich bin eine Datei auf einem NTFS Dateisystem" >${NTFS_filesystem}/file_on_an_ntfs_volume.txt 
-echo "Ich bin ursprünglich gelöscht worden." >${exFAT_filesystem}/deleted_file.txt +echo "Ich bin ursprünglich gelöscht worden." >${exFAT_filesystem}/deleted_file.txt 
-echo "Ich bin ursprünglich gelöscht worden." >${NTFS_filesystem}/deleted_file.txt+echo "Ich bin ursprünglich gelöscht worden." >${NTFS_filesystem}/deleted_file.txt
 </code> </code>
  
Zeile 43: Zeile 43:
  
 <code bash> <code bash>
-rm -i ${exFAT_filesystem}/file_on_an_exfat_volume.txt +rm -i ${exFAT_filesystem}/file_on_an_exfat_volume.txt 
-rm -i ${NTFS_filesystem}/file_on_an_ntfs_volume.txt +rm -i ${NTFS_filesystem}/file_on_an_ntfs_volume.txt 
-umount ${exFAT_filesystem} ${NTFS_filesystem}+sudo umount ${exFAT_filesystem} ${NTFS_filesystem}
 </code> </code>
  
Zeile 51: Zeile 51:
  
 <WRAP important> <WRAP important>
-Das Erste, das man tun sollte, falls man festgestellt hat, dass man Daten von seinem Datenträger versehentlich gelöscht hat. +Das Erste, das man tun sollte, falls Daten von einem Datenträger versehentlich gelöscht wurden, 
-Ist die Daten auf dem Datenträger zu sichern und nicht mehr weiterzuverwenden, um die Wahrscheinlichkeit zu verringern, dass Daten auf dem Datenträger überschrieben werden.+sind die Daten auf dem Datenträger zu sichern und den Datenträger nicht mehr weiterzuverwenden, um zu verhindern dass Daten auf dem Datenträger überschrieben werden.
 </WRAP> </WRAP>
  
 <WRAP info> <WRAP info>
-Im folgenden Beispiel werden Daten, von einem intakten Datenträger gesichert+Im folgenden Beispiel handelt es sich um einem intakten Datenträger. 
-Sollte Daten von beschädigten Datenträgern gesichert werden, so müssen andere Tools wie ''dd_rescure'' herangezogen werden.+Sollen Daten von beschädigten Datenträgern gesichert werden, so müssen andere Tools wie ''dd_rescure'' herangezogen werden.
 </WRAP> </WRAP>
  
Zeile 64: Zeile 64:
 <WRAP todo> <WRAP todo>
   * Es sollte für ewfacquire eine eigene Wikiseite verwendet werden.   * Es sollte für ewfacquire eine eigene Wikiseite verwendet werden.
-  * Fehlende Sprache. Fürs Wiki sollte der Text sachlich und ohne persönliche Rede verwendet werden. 
 </WRAP> </WRAP>
  
-Um die Daten vom USB-Stick sicherzustellen. Verwende wir das Tool ''ewfacqurie'' aus der [[https://github.com/libyal/libewf/|libewf]] Bibliothek.+Um Daten vom USB-Stick sicherzustellen. Verwende wir das Tool ''ewfacqurie'' aus der [[https://github.com/libyal/libewf/|libewf]] Bibliothek.
 Das **EWF** speichert noch einige Metadaten rund um das zu sichernde Medium und der Forensik Station (in unseren Fall unser PC). Das **EWF** speichert noch einige Metadaten rund um das zu sichernde Medium und der Forensik Station (in unseren Fall unser PC).
-Welche zusätzlichen Metadaten dies sind, können wir weiter unten im Shell Output nachlesen:+Welche zusätzlichen Metadaten das sind, können wir weiter unten im Shell Output nachlesen:
  
-Wir legen für unseren Fall (**case**) ein neues Verzeichnis an und wechsel in dieses:+Wir legen für unseren Fall (**case**) ein neues Arbeitsverzeichnis an und wechsel in dieses:
  
 <code bash> <code bash>
Zeile 80: Zeile 79:
 Als Nächstes starten wir das Programm mit Root Rechten, um Zugriff auf den USB-Stick zu bekommen. Als Nächstes starten wir das Programm mit Root Rechten, um Zugriff auf den USB-Stick zu bekommen.
 Die einzige Option, die wir angeben, ist die ''-l'' Option um eine Logdatei für Fehler und der MD5 Prüfsummen Ausgabe anzugeben. Die einzige Option, die wir angeben, ist die ''-l'' Option um eine Logdatei für Fehler und der MD5 Prüfsummen Ausgabe anzugeben.
-für den rest lassen wir uns von ewfacquire abfragen.+für den rest lassen wir uns von ''ewfacquire'' abfragen.
  
 <code bash> <code bash>
-ewfacquire -l image.log /dev/sdc+sudo ewfacquire -l image.log /dev/sdc 
 ewfacquire 20140608 ewfacquire 20140608
  
Zeile 164: Zeile 164:
 Die Ausgabe ist auf das wesentliche gekürzt worden. Die Ausgabe ist auf das wesentliche gekürzt worden.
  
-Das Sicherstellen der Daten hat 3 Min Gedauert und die MD5 Prüfsumme über für die Daten ist ''d6742b4b02073025bcdf0a6dceff4bb3''.+Das Sicherstellen der Daten hat 3 Min Gedauert und die MD5 Prüfsumme über die Daten ist ''d6742b4b02073025bcdf0a6dceff4bb3''.
 Diese wurde in die Datei ''image.log'' geschrieben: Diese wurde in die Datei ''image.log'' geschrieben:
  
 <code bash> <code bash>
-cat image.log+cat image.log 
 MD5 hash calculated over data:      d6742b4b02073025bcdf0a6dceff4bb3 MD5 hash calculated over data:      d6742b4b02073025bcdf0a6dceff4bb3
 </code> </code>
  
-im Arbeitsverzeichnis befinden zu dem Zeitpunkt nun folgende Dateien:+im Arbeitsverzeichnis befinden sich zu disem Zeitpunkt nun folgende Dateien:
  
 <code bash> <code bash>
-ls -lh+ls -lh
 insgesamt 7,5M insgesamt 7,5M
 -rw-r--r-- 1 root      root        65    4. Mai 11:14 image.log -rw-r--r-- 1 root      root        65    4. Mai 11:14 image.log
Zeile 189: Zeile 190:
  
 Damit wir ohne Root Rechte am Image weiterarbeiten können,  Damit wir ohne Root Rechte am Image weiterarbeiten können, 
-änderen wir den den Besitzer der des Images auf unseren Benutzer. +änderen wir den den Besitzer des Images auf unseren Benutzer. 
 Sicherheitshalber geben wir der Datei auch nur Leserechte, da wir von dieser Datei nur lesen möchten. Sicherheitshalber geben wir der Datei auch nur Leserechte, da wir von dieser Datei nur lesen möchten.
  
 <code bash> <code bash>
-chown sebastian: usb_stick_image.E01 +sudo chown sebastian: usb_stick_image.E01 
-chmod 400 usb_stick_image.E01+chmod 400 usb_stick_image.E01
 </code> </code>
  
 ===== Daten Untersuchen/Analysieren ===== ===== Daten Untersuchen/Analysieren =====
 +
 +==== mmls (Image Struktur Analysieren) ====
  
 <WRAP todo> <WRAP todo>
   * mmls sollte eine eigene Wikiseite bekommen   * mmls sollte eine eigene Wikiseite bekommen
-  * Fehlende Sprache 
 </WRAP> </WRAP>
  
-==== mmls (Image Struktur Analysieren) ====+Um die Innere Struktur des Images anzuzeigen, kann ''mmls'' verwendet werden:
  
-Um die Innere Struktur des Images anzeigen lassen, kann ''mmls'' verwendet werden:+<code bash> 
 +mmls usb_stick_image.E01
  
-<code bash> 
-$ mmls usb_stick_image.E01 
 GUID Partition Table (EFI) GUID Partition Table (EFI)
 Offset Sector: 0 Offset Sector: 0
Zeile 224: Zeile 225:
 </code> </code>
  
- +Man erkennt, eine GPT mit 2 Partitionen und noch nicht zugewiesener Raum zwischen der Safety Table und dem [[wpde>GUID_Partition_Table#Header_der_GUID-Partitionstabelle|GPT Header]] bzw. noch einmal ganz am ende des Datenträgers.
- +
-Man erkennt, das sich in diesem Image eine  GPT (GUID Partition Table) an dem offset (versatz) +
-seiner eigenen Metadaten + 2 Partitionen und noch nicht zugewiesener Raumm zwischen der Safety Table und dem GPT Header bzw. +
-noch einmal ganz am ende des Datenträgers befindet.+
  
 <WRAP important> <WRAP important>
-Auf nicht Adressierte Berreiche, können sich auch Daten befinden!+**Auf nicht Adressierte Berreiche, können sich auch Daten befinden!**
 Dieser Raum wurde legetlich zurzeit der Image Erstellung nicht Adressiert. Dieser Raum wurde legetlich zurzeit der Image Erstellung nicht Adressiert.
 </WRAP> </WRAP>
  
-Wir haben jetzt also eine Ahnung wo sich interessante Daten befinden können.+Wir haben jetzt also eine Ahnung wo sich Daten befinden können.
 Einmal am **offset 2048**, und einmal am **offset 1026048**. Einmal am **offset 2048**, und einmal am **offset 1026048**.
  
Zeile 244: Zeile 241:
 </WRAP> </WRAP>
  
-Um in Erfahrung zu bringen welches Dateisystem sich an den beiden offsets befindet,+Um in Erfahrung zu bringen welches Dateisystem sich an den [[wpde>Speicheradresse#Segmentierte_Adressen|offsets]] befindet,
 setzten wir das ''fsstat'' Tool folgendermassen ein: setzten wir das ''fsstat'' Tool folgendermassen ein:
  
-<code bash [highlight_lines_extra="4,14,35,36,37"]> +<code bash [highlight_lines_extra="5,15,36,37,38"]> 
-fsstat -o 2048 usb_stick_image.E01+fsstat -o 2048 usb_stick_image.E01 
 FILE SYSTEM INFORMATION FILE SYSTEM INFORMATION
 -------------------------------------------- --------------------------------------------
Zeile 292: Zeile 290:
 Das gleiche wiederholen wir mit der anderen Partition: Das gleiche wiederholen wir mit der anderen Partition:
  
-<code bash [highlight_lines_extra="4,21,22,23,24"]> +<code bash [highlight_lines_extra="5,22,23,24,25"]> 
-fsstat -o 1026048 usb_stick_image.E01+fsstat -o 1026048 usb_stick_image.E01 
 FILE SYSTEM INFORMATION FILE SYSTEM INFORMATION
 -------------------------------------------- --------------------------------------------
Zeile 336: Zeile 335:
 </code> </code>
  
-Hier die selben Informationen spezifisch für das **NTFS Dateisystem**.+Hier änliche Informationen spezifisch für das **NTFS Dateisystem**.
  
 <WRAP help> <WRAP help>
-Um die Ausgaben vollstädnig verstehen zu können, sollte man sich speziell der Dokumentation des jeweiligen Dateisystems widmen.+Um die Ausgaben verstehen zu können, sollte man sich der Dokumentation des jeweiligen Dateisystems widmen.
 </WRAP> </WRAP>
  
Zeile 345: Zeile 344:
  
 <WRAP todo> <WRAP todo>
-  * fsstat sollte eine eigene Wikiseite bekommen.+  * fls sollte eine eigene Wikiseite bekommen.
 </WRAP> </WRAP>
  
Zeile 351: Zeile 350:
  
 <code bash> <code bash>
-fls -o 2048 usb_stick_image.E01+fls -o 2048 usb_stick_image.E01 
 r/r 2051:   FS_EXFAT (Volume Label Entry) r/r 2051:   FS_EXFAT (Volume Label Entry)
 r/r 2052:   $VOLUME_GUID r/r 2052:   $VOLUME_GUID
Zeile 366: Zeile 366:
 Die Ausgabe ist in mehren Spalten unterteilt. Die Ausgabe ist in mehren Spalten unterteilt.
  
-Die erste Spaltezeigt an um was es sich handelt eine Datei (r, Regular file), ein Verzeichnis (d, Directory) eine Virtuelle TSK Datei (v, TSK Virtual file) etc.+Die erste Spalte zeigtum was es sich handelt eine Datei (r, Regular file), ein Verzeichnis (d, Directory) eine Virtuelle TSK Datei (v, TSK Virtual file) etc.
 Mehr Information dazu gibt siehe [[https://wiki.sleuthkit.org/index.php?title=Fls#File_Type|TSK Wiki]] Mehr Information dazu gibt siehe [[https://wiki.sleuthkit.org/index.php?title=Fls#File_Type|TSK Wiki]]
  
 Es folgt eine Spalte indem eventuell ein ** * ** zu sehen ist. Dieses ** * ** bedeutet das diese Datei gelöscht, bzw. nicht mehr über den Index des Dateisystems referenziert wird. Es folgt eine Spalte indem eventuell ein ** * ** zu sehen ist. Dieses ** * ** bedeutet das diese Datei gelöscht, bzw. nicht mehr über den Index des Dateisystems referenziert wird.
-Und damit irgendwann überschrieben werden würde.+**Und damit irgendwann überschrieben werden würde.**
  
 Es folgt die Spalte mit der [[wpde>Inode]] Nummer für die jweilige Datei. Es folgt die Spalte mit der [[wpde>Inode]] Nummer für die jweilige Datei.
Zeile 379: Zeile 379:
  
 <code bash> <code bash>
-fls -d -o 2048 usb_stick_image.E01+fls -d -o 2048 usb_stick_image.E01 
 r/r * 2063:   deleted_file.txt r/r * 2063:   deleted_file.txt
 </code> </code>
  
-=== Daten Extrahieren ===+===== Daten Extrahieren ===== 
 + 
 +==== icat (Inhaltsausgabe anhand der Inode) ====
  
 <WRAP todo> <WRAP todo>
   * icat sollte eine eigene Wikiseite bekommen.   * icat sollte eine eigene Wikiseite bekommen.
 </WRAP> </WRAP>
- 
-== icat (Inhaltsausgabe anhand der Inode) == 
  
 wie das normale cat, gibt ''icat'' Eingabe Daten an die Standardausgabe weiter. wie das normale cat, gibt ''icat'' Eingabe Daten an die Standardausgabe weiter.
Zeile 397: Zeile 398:
  
 <code bash> <code bash>
-icat -o 2048 usb_stick_image.E01 2059+icat -o 2048 usb_stick_image.E01 2059 
 Ich bin eine Datei auf einem extFAT Dateisystem Ich bin eine Datei auf einem extFAT Dateisystem
 </code> </code>
Zeile 404: Zeile 406:
  
 <WRAP important> <WRAP important>
-Dies keine vollständigen Extraktion.+**Dies ist keine vollständigen Extraktion!**
 Es wird dabei nur der Dateiinhalt extrahiert nicht aber die Metadaten. Es wird dabei nur der Dateiinhalt extrahiert nicht aber die Metadaten.
-Dies spielt bei der Beweis Führung eine wichtige Rolle.+Dies spielt bei der Beweis Führung eine wichtige Rolle!
 </WRAP> </WRAP>
  
-Desweiteren gibt es noch andere Möglichkeiten um gleich mehre Dateien und Verzeichnisse auf einen Schlag zu extraieren. +Um mehrere Dateien und Verzeichnisse zu Extraieren gibt es andere Möglichkeiten.
-Es sollte also jeder für sich das Risiko von Datenmissbrauch Abwegen.+
  
 Dies funktioniert auch bei nicht mehr Referenzierten Dateien: Dies funktioniert auch bei nicht mehr Referenzierten Dateien:
  
 <code bash> <code bash>
-icat -o 2048 usb_stick_image.E01 2063+icat -o 2048 usb_stick_image.E01 2063 
 Ich bin ursprünglich gelöscht worden. Ich bin ursprünglich gelöscht worden.
 </code> </code>
  
-=== Dateisystem machen den Unterschied ===+==== Dateisystem machen den Unterschied ====
  
-Beim ex­a­mi­nie­ren von Daten haben Dateisysteme gravierende Unterschiede. +Beim ex­a­mi­nie­ren von Datenhaben Dateisysteme gravierende Unterschiede. 
-Manche sind mehr auf Sicherheit bedacht als andere+Manche sind mehr auf Sicherheit bedacht als andere.
  
 Um den Unterscheid zu Demonstrieren hier die Fehlende Ausgabe des NTFS Dateisystems: Um den Unterscheid zu Demonstrieren hier die Fehlende Ausgabe des NTFS Dateisystems:
  
 <code bash> <code bash>
-fls -o 1026048 usb_stick_image.E01+fls -o 1026048 usb_stick_image.E01 
 r/r 4-128-1:   $AttrDef r/r 4-128-1:   $AttrDef
 r/r 8-128-2:   $BadClus r/r 8-128-2:   $BadClus
Zeile 451: Zeile 454:
 Um diese sehen zu können muss die Option ''-r'' mit angegeben werden. Zudem verwendet NTFS eine anderes System für die Inode Nr. bezeichnung. Um diese sehen zu können muss die Option ''-r'' mit angegeben werden. Zudem verwendet NTFS eine anderes System für die Inode Nr. bezeichnung.
  
-<code bash [highlight_lines_extra="26,27,28,29,30,31,32,33,34,35,36,37,38"]> +<code bash [highlight_lines_extra="27,28,29,30,31,32,33,34,35,36,37,38,39"]> 
-fls -r -o 1026048 usb_stick_image.E01+fls -r -o 1026048 usb_stick_image.E01 
 r/r 4-128-1:   $AttrDef r/r 4-128-1:   $AttrDef
 r/r 8-128-2:   $BadClus r/r 8-128-2:   $BadClus
Zeile 495: Zeile 499:
  
 <code bash> <code bash>
-icat -o 1026048 usb_stick_image.E01 27-128-2+icat -o 1026048 usb_stick_image.E01 27-128-2 
 Ich bin ursprünglich gelöscht worden. Ich bin ursprünglich gelöscht worden.
 </code> </code>
tools/dateisystem/sleuthkit/disk_images_untersuchen_mit_tsk.1716058352.txt.gz · Zuletzt geändert: 2024/05/18 18:52 von gahsul