Übung 3 Logbuch weitergemacht
parent
b0ddef9333
commit
7da03d30f4
|
@ -160,6 +160,7 @@ Ausgabe: Anschließend konnte die reparierte Datei mithilfe eines Image Viewers
|
|||
RecoverMe02 - Image Viewer
|
||||
|
||||
### Aufgabe 2:
|
||||
|
||||
**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)**
|
||||
|
||||
```
|
||||
|
@ -177,6 +178,7 @@ Zunächst führen wir den Befehl “fdisk -l Image.img” aus, um die Partitions
|
|||
```
|
||||
$ sudo fdisk -l image.img
|
||||
```
|
||||
|
||||
Ausgabe:
|
||||
|
||||

|
||||
|
@ -208,4 +210,186 @@ Ausgabe:
|
|||
**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.
|
||||
|
||||
Der Befehl sieht folgendermaßen aus:
|
||||
//kommt noch
|
||||
|
||||
```
|
||||
2023-04-08 17:19:46 $ dd if=image.img of=linux.img skip=1054720 count=40886272 conv=notrunc,sync,noerror
|
||||
40886272+0 records in
|
||||
40886272+0 records out
|
||||
20933771264 bytes (21 GB, 19 GiB) copied, 270.211 s, 77.5 MB/s
|
||||
```
|
||||
|
||||
Die Hashwerte der extrahierten Partition sind:
|
||||
|
||||
```
|
||||
2023-04-08 17:27:05 $ md5sum linux.img
|
||||
7b71af7946b69ab49ec7a127c1b3d01a linux.img
|
||||
|
||||
2023-04-08 17:28:17 $ shasum linux.img
|
||||
d03b6db5a233851aa94cedacd563bfe70664b03c linux.img
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**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:
|
||||
|
||||
```
|
||||
2023-04-08 17:29:45 $ mkdir mnt
|
||||
|
||||
2023-04-08 17:30:43 $ sudo mount -r linux.img mnt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**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```:
|
||||
|
||||
```
|
||||
2023-04-08 17:32:42 $ crunch 7 7 defghi A 01234 + -t %%@@@%% > wordlist.txt
|
||||
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:
|
||||
|
||||
```
|
||||
echo -n "$1$Al1JOy/e$nSQ5CgVYrz2WTfoeXQwH11" > hash.txt
|
||||
```
|
||||
|
||||
Danach können wir ```hashcat``` nutzen, um das Passwort zu cracken:
|
||||
|
||||
```
|
||||
2023-04-08 17:44:51 $ time hashcat -m 500 hash.txt wordlist.txt
|
||||
hashcat (v6.2.6) starting
|
||||
|
||||
OpenCL API (OpenCL 3.0 PoCL 3.1+debian Linux, None+Asserts, RELOC, SPIR, LLVM 14.0.6, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
|
||||
==================================================================================================================================================
|
||||
* Device #1: pthread-haswell-Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 2857/5778 MB (1024 MB allocatable), 4MCU
|
||||
|
||||
Minimum password length supported by kernel: 0
|
||||
Maximum password length supported by kernel: 256
|
||||
|
||||
Hashes: 1 digests; 1 unique digests, 1 unique salts
|
||||
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
|
||||
Rules: 1
|
||||
|
||||
Optimizers applied:
|
||||
* Zero-Byte
|
||||
* Single-Hash
|
||||
* Single-Salt
|
||||
|
||||
ATTENTION! Pure (unoptimized) backend kernels selected.
|
||||
Pure kernels can crack longer passwords, but drastically reduce performance.
|
||||
If you want to switch to optimized kernels, append -O to your commandline.
|
||||
See the above message to find out about the exact limits.
|
||||
|
||||
Watchdog: Temperature abort trigger set to 90c
|
||||
|
||||
Host memory required for this attack: 1 MB
|
||||
|
||||
Dictionary cache built:
|
||||
* Filename..: wordlist.txt
|
||||
* Passwords.: 135000
|
||||
* Bytes.....: 1080000
|
||||
* Keyspace..: 135000
|
||||
* Runtime...: 0 secs
|
||||
|
||||
$1$Al1JOy/e$nSQ5CgVYrz2WTfoeXQwH11:22dif04
|
||||
|
||||
Session..........: hashcat
|
||||
Status...........: Cracked
|
||||
Hash.Mode........: 500 (md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5))
|
||||
Hash.Target......: $1$Al1JOy/e$nSQ5CgVYrz2WTfoeXQwH11
|
||||
Time.Started.....: Sat Apr 8 17:45:11 2023 (7 secs)
|
||||
Time.Estimated...: Sat Apr 8 17:45:18 2023 (0 secs)
|
||||
Kernel.Feature...: Pure Kernel
|
||||
Guess.Base.......: File (wordlist.txt)
|
||||
Guess.Queue......: 1/1 (100.00%)
|
||||
Speed.#1.........: 8582 H/s (7.21ms) @ Accel:64 Loops:250 Thr:1 Vec:8
|
||||
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
|
||||
Progress.........: 65792/135000 (48.73%)
|
||||
Rejected.........: 0/65792 (0.00%)
|
||||
Restore.Point....: 65536/135000 (48.55%)
|
||||
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:750-1000
|
||||
Candidate.Engine.: Device Generator
|
||||
Candidates.#1....: 22dhi21 -> 22edg31
|
||||
Hardware.Mon.#1..: Temp: 45c Util: 97%
|
||||
|
||||
Started: Sat Apr 8 17:45:09 2023
|
||||
Stopped: Sat Apr 8 17:45:20 2023
|
||||
|
||||
real 0m10.436s
|
||||
user 0m31.037s
|
||||
sys 0m0.390s
|
||||
```
|
||||
|
||||
Zusätzlich haben wir den befehl ```time``` genutzt, um die genutzte Zeit zu messen.
|
||||
|
||||
Das Passwort lässt sich mit dem ```--show``` Parameter anzeigen:
|
||||
|
||||
```
|
||||
2023-04-08 17:45:20 $ hashcat -m 500 hash.txt wordlist.txt --show
|
||||
$1$Al1JOy/e$nSQ5CgVYrz2WTfoeXQwH11:22dif04
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
```
|
||||
root@kali:/# find . -user dif -type f -printf "%T+ %p\n" | sort | grep -v '.config\|.cache\|snap\|.local'
|
||||
2022-04-23+14:20:40.7738655050 ./home/dif/.bash_logout
|
||||
2022-04-23+14:20:40.7738655050 ./home/dif/.bashrc
|
||||
2022-04-23+14:20:40.7738655050 ./home/dif/.profile
|
||||
2022-04-23+14:44:16.4352436550 ./home/dif/Pictures/schuhschnabel.webp
|
||||
2022-04-23+14:46:33.7877701540 ./home/dif/.sudo_as_admin_successful
|
||||
2022-04-23+14:46:41.2756637240 ./home/dif/Downloads/firefox.tmp/tmpaddon
|
||||
2022-04-23+14:46:53.4235105960 ./home/dif/.bash_history
|
||||
2022-04-23+14:47:42.5311171350 ./home/dif/.gnupg/pubring.kbx
|
||||
2022-04-23+14:47:42.5311171350 ./home/dif/.gnupg/trustdb.gpg
|
||||
2022-04-23+14:48:08.8230391480 ./home/dif/Pictures/schuhschnabel.png
|
||||
```
|
||||
|
||||
Auffällig sind die Dateien ```./home/dif/Pictures/schuhschnabel.webp``` und ```./home/dif/Pictures/schuhschnabel.png```, eine png und eine webp Datei.
|
||||
|
||||
[schuhschnabel.png](./schuhschnabel.png)
|
||||
[schuhschnabel.webp](./schuhschnabel.webp)
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 639 KiB |
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
Loading…
Reference in New Issue