2. Mounten der U2.img-Datei und Extraktion der Dateien.
3. Versuch, die extrahierten Dateien zu öffnen.
4. Untersuchung der Dateien mit einem Hex-Editor.
5. Ermittlung der möglichen Dateiformate der untersuchten Dateien.
6. Ermittlung der gängigen Signaturen (Magic Numbers) der gefundenen Dateiformate.
7. Vergleich der Dateisignaturen (Magic Numbers) mit den tatsächlichen Signaturen und gegebenenfalls Änderung der Bytes zur Wiederherstellung der Dateien.
**Schritt 6:** Um die gefundenen Dateien zu reparieren, war es notwendig, die Signaturen der Dateiformate zu überprüfen und gegebenenfalls anzupassen. Bei einer der Dateien handelte es sich um eine beschädigte JPEG-Datei, deren magische Zahl, siehe [https://de.wikipedia.org/wiki/Magische_Zahl_(Informatik)](https://de.wikipedia.org/wiki/Magische_Zahl_(Informatik)) im Hex-Editor als ```0x0FFD8FF``` statt ```0xFFD8FF``` angezeigt wurde. Um die Datei zu reparieren, musste diese magische Zahl auf ```0xFFD8FF``` geändert werden. Da die Datei jedoch zuvor gemounted wurde und somit nur lesbar war, musste sie zuerst in einen anderen Ordner kopiert werden, um die nötigen Änderungen durchführen zu können, siehe Schritt 7.
**Schritt 7:** Um die entsprechenden Bytes zu ändern und die Datei wiederherzustellen, muss die betreffende Datei zuerst in einen schreibbaren Ordner kopiert werden. Dazu kann ein neuer Ordner mit dem Befehl mkdir erstellt werden, und die Datei kann dann mit dem Befehl cp in den neuen Ordner kopiert werden. Anschließend können die entsprechenden Bytes im Hex-Editor geändert werden, um die Datei wiederherzustellen.
Um die Image-Datei zu reparieren, müssen wir nun in den "extracted" Ordner wechseln. Dazu verwenden wir den Befehl ```cd ..```, um in den übergeordneten Ordner zu gelangen, und anschließend ```cd extracted```, um in den Zielordner zu navigieren.
Nachdem wir in den "extracted" Ordner gewechselt sind, können wir Schritt 4 erneut durchführen und die betroffene Datei in einem Hex-Editor öffnen. Hier können wir die entsprechenden Bytes von ```0x0F``` auf ```0xFF``` ändern und die Änderungen mit ```^X``` speichern und den Editor verlassen.
Nachdem die Reparatur der Magischen Zahl erfolgreich durchgeführt wurde, konnten wir die Datei in einem Hex-Editor erneut überprüfen und die Bytes von ```0x0F``` zu ```0xFF ändern```. Anschließend haben wir die Datei gespeichert und den Hex-Editor verlassen. Mit dem Befehl ```xdg-open RecoverMe01``` konnten wir die reparierte Image-Datei öffnen, da wir zuvor mit dem Befehl ```binwalk RecoverMe01``` herausgefunden hatten, dass es sich um eine Image-Datei handelt.
Ausgabe: Anschließend konnte die reparierte JPEG-Datei mithilfe eines Image Viewers geöffnet werden und es war deutlich erkennbar, dass es sich um die Hochschule Mannheim, Gebäude H handelte.
**Schritt 1:** Nach erfolgreicher Reparatur der RecoverMe01-Datei können wir nun ähnlich vorgehen, um auch die RecoverMe02-Datei zu reparieren. Dazu müssen wir zunächst die RecoverMe02-Datei in den "extracted" Ordner kopieren, um sie bearbeiten zu können.
```
2023-04-08 15:28:46 $ cd /home/GruppeD/DIF/Uebung2
**Schritt 2:** Bevor wir jedoch die Datei reparieren können, müssen wir zunächst herausfinden, um welches Dateiformat es sich handelt. Hierfür können wir den Hexeditor verwenden, um uns die Datei im Binärformat anzusehen und anhand bestimmter Merkmale wie der Magischen Zahl oder anderen Signaturen das Dateiformat zu identifizieren.
Nachdem wir die Datei im Hexeditor geöffnet haben, konnten wir feststellen, dass die ausgegebene magische Nummer ```0x89504E470D0A1A0A``` nicht korrekt ist. Wir haben erkannt, dass anstatt des erwarteten Wertes ```0x89504E770D0A1A0A```, ein Fehler unterlaufen ist. Deshalb werden wir als nächstes die Zahl ```47``` zu ```77``` ändern, um die Datei zu reparieren.
**Schritt 3:** Nachdem wir die Datei im Hexeditor geöffnet haben, ändern wir die ```77``` zu ```47```, speichern die Änderungen mit ```^X``` und verlassen den Editor.
**Schritt 4:** Nach der erfolgreichen Reparatur der Zahl können wir wie in Schritt 7 beschrieben die reparierte Datei mithilfe des Befehls ```xdg-open``` öffnen.
Ausgabe: Anschließend konnte die reparierte Datei mithilfe eines Image Viewers geöffnet werden und es war deutlich erkennbar, dass es sich um das Logo der Hochschule Mannheim handelte.
**Schritt 1:** Um die Fragen des Rechts zu beantworten, laden wir die Image-Datei über den folgenden Download-Link für U3 herunter: **[https://anakin.informatik.hs-mannheim.de/downloads/image.zip](https://anakin.informatik.hs-mannheim.de/downloads/image.zip)**
Durch die Verwendung des Befehls 'shasum image.zip' wurde der SHA1-Hashwert des Image.zip-Archivs berechnet und zusammen mit dem Dateinamen 'image.zip' ausgegeben. Die Ausgabe '33685e37574d2dfc7d88acb72d566fc085561f9e image.zip' bedeutet, dass der SHA1-Hashwert des Image.zip-Archivs '33685e37574d2dfc7d88acb72d566fc085561f9e' lautet. Ebenso wurde der MD5-Hashwert des Archivs durch Verwendung des Befehls 'md5sum image.zip' berechnet, und die Ausgabe '8186f3686926e8366936873859debf01 image.zip' gibt den MD5-Hashwert des Image.zip-Archivs an. Wenn diese Hashwerte mit denen des ursprünglichen Archivs verglichen werden und sie identisch sind, bedeutet dies, dass das Archiv unverändert geblieben ist und keine Daten manipuliert oder hinzugefügt wurden.
Nachdem die Hashwerte der Datei berechnet wurden, kann auf die Image-Datei zugegriffen werden, indem das Zip-Archiv mithilfe von '7z e' extrahiert wird. Der Befehl lautet wie folgt:
**Schritt 2:** Ermitteln der Image-Datei enthaltenen Partitionen. Hierzu verwenden wir die Softwaretools fdisk und mmls und vergleichen die Ausgaben beider Tools.
Zunächst führen wir den Befehl “fdisk -l Image.img” aus, um die Partitionstabelle der Image-Datei anzuzeigen:
Die Ausgabe von ```fdisk``` und ```mmls``` zeigen, dass es in der Image-Datei eine einzige Partition gibt, welche als ```EFI System Partition``` bezeichnet wird. Beide Tools haben die gleiche Anzahl von Partitionen angezeigt, was darauf hinweist, dass sie in diesem Fall übereinstimmende Ergebnisse liefern.
Durch Ausführen des Befehls 'lsblk -f' konnten wir das Dateisystem in der Image-Datei ermitteln. Die Ausgabe des Befehls zeigte uns, dass das Image-Datei mehrere Dateisystemtypen enthält, nämlich ```vfat```, ```ext4``` und ```swap```.
**Schritt 4:** Um den größten Partitionsbereich aus der Image-Datei zu extrahieren, kann man den Befehl dd verwenden. Die Optionen notrunc, sync und noerror sind optional, aber empfohlen, um sicherzustellen, dass das Extrahieren reibungslos verläuft und keine Daten verloren gehen.
**Schritt 5:** Nun können wir die extrahierte Partition mounten um Zugriff auf die enthaltenen Daten zu bekommen. Dazu erstellen wir erst das neue Verzeichnis ___./mnt___ und nutzen dann den Befehl **mount** mit dem parameter **-r** um die Partition schreibgeschützt einzuhängen:
**Schritt 6:** Jetzt können wir den Benutzer des zu untersuchenden Systems aus der Datei ```/etc/passwd``` auslesen. Nutzeraccounts auf Linuxsystemen haben meist eine UserID von 1000 oder höher und nutzen normalerweise entweder ```bash```, ```zsh``` oder ```fish``` als Shell. Mit dem folgenden Befehl können wir uns einen schnellen Überblick über die Nutzer des Systems verschaffen:
```
2023-04-08 17:31:27 $ cat mnt/etc/passwd | grep sh
root:x:0:0:root:/root:/bin/bash
dif:x:1000:1000:DIF,,,:/home/dif:/bin/bash
```
Der Primäre nutzer des Systems hat also den Namen ```dif```.
---
**Schritt 7:** Erstellen der Passwordliste:
Laut Aufgabe soll nun eine Passwortliste mit Passwörtern im Format ```[0-4][0-4][d-i][d-i][d-i][0-4][0-4]``` erstellt werden. Wir nutzen dafür ```crunch```:
Crunch will now generate the following amount of data: 1080000 bytes
1 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 135000
```
Die Passwortliste hat 135000 Einträge:
```
2023-04-08 17:35:39 $ wc -l wordlist.txt
135000 wordlist.txt
```
---
**Schritt 8:** Herausfinden des Passwortes:
Da die gehaschten Passwörter in der Datei /etc/shadow gespeichert werden, können wir nun versuchen das Passwort des Nutzers ```dif``` mit Hilfe der Passwortliste zu finden.
Erst schreiben wir den Passworthash in eine neue Datei:
Das Passwort ist also ```22dif04``` und das Cracken hat 31 Sekunden gedauert.
---
**Schritt 9:** Welche Dateien hat der Nutzer erzeugt?
Wir nutzen den Befehl ```find``` mit dem Parameter ```-user dif``` um alle Dateien des Nutzers zu finden. Erst müssen wir jedoch ```chroot``` nutzen, um unser root Verzeichnis zu dem des zu untersuchendem Systems zu ändern:
```
2023-04-08 18:22:24 $ sudo chroot mnt bash
```
Außerdem nutzen wir zusätzlich den Parameter ```-type f``` um unsere Suche auf Dateien zu beschränken und ```-printf "%T+ %p\n"``` um das letzte Änderungsdatum jeder Datei anzuzeigen. Mit dem Befehl ```sort``` können wir die Dateien nach Datum sortieren und mit ```grep -v '.config\|.cache\|snap\|.local'``` blenden wir versteckte Verzeichnisse aus.