dif_gruppe_m/uebung3/logbuch_a2.md

12 KiB

Für die folgende Untersuchung wird eine virtuelle Maschine (im Folgenden als VM bezeichnet) mit Kali-Linux Version 2023.1 genutzt. Die in der Untersuchung genutzten Tools sind bereits in Kali-Linux vorinstalliert, weshalb keine zusätzliche Installation notwendig ist.


[15.04.2023 20:15:15 UTC+2]: Das Image wurde in die VM per Drag & Drop kopiert und auf dem Desktop der VM gespeichert.

[15.04.2023 20:18:53 UTC+2]: Die Datei wird mit 7-Zip [64] 16.02 entpackt.

$ 7z e image3.zip Folgender Output wird dabei erzeugt:

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,3 CPUs Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz (806EC),ASM)

Scanning the drive for archives:
1 file, 5021389400 bytes (4789 MiB)

Extracting archive: image3.zip

ERRORS:
Headers Error
--
Path = image3.zip
Type = zip
ERRORS:
Headers Error
Physical Size = 5021389400
64-bit = +

Archives with Errors: 1
Open Errors: 1                

[15.04.2023 20:29:42 UTC+2]: Mit fdisk -l wird nun die Partitionstabelle aufgerufen:

$ sudo fdisk -l image.img Der Command generiert folgenden Output:

Disk image.img: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C9C91594-26B4-4241-A6AC-99ED6689E164

Device       Start      End  Sectors  Size Type
image.img1    2048     4095     2048    1M BIOS boot
image.img2    4096  1054719  1050624  513M EFI System
image.img3 1054720 41940991 40886272 19.5G Linux filesystem

[15.04.2023 20:34:02 UTC+2]: Es wird die Partitionstabelle mit mmls über The Sleuth Kit Version 4.11.1 aufgerufen:

$ mmls -B image.img Dabei wird folgender Output generiert:

GUID Partition Table (EFI)
Offset Sector: 0
Units are in 512-byte sectors

          Slot      	Start        	End          	Length       	Size    Description
000:  Meta      0000000000   0000000000   0000000001   0512B   Safety Table
001:  -------     	0000000000   0000002047   0000002048   1024K   Unallocated
002:  Meta      0000000001   0000000001   0000000001   0512B   GPT Header
003:  Meta      0000000002   0000000033   0000000032   0016K   Partition Table
004:  000       0000002048   0000004095   0000002048   1024K   
005:  001       0000004096   0001054719   0001050624   0513M   EFI System Partition
006:  002       0001054720   0041940991   0040886272   0019G   
007:  -------   0041940992   0041943039   0000002048   1024K   Unallocated

[01.05.2023 16:24:03 UTC+2]: Es wird die größte Partition des Images image.img in die Datei image_dd gedumped. Um den Status-Fortschritt während des Dumpens anzeigen zu lassen, setzen wir den Status auf "progress". Damit der Dump während eines Fehlers nicht angehalten wird, wird conv auf sync,noerror gesetzt. Um nichts von der Ausgabe abzuschneiden, wird zusätzlich notrunc gesetzt. Zudem werden 512 große Byte-Blöcke gedumped, wobei die ersten 1054720 Blöcke geskippt werden, und mit count wird die Anzahl der zu dumpenden Blöcke festgelegt.:

$ dd if=image.img of=image_dd status=progress conv=notrunc,sync,noerror bs=512 skip=1054720 Folgende Ausgabe wird dabei erzeugt:

20905252352 bytes (21 GB, 19 GiB) copied, 502 s, 41.6 MB/s 
40886272+0 records in
40886272+0 records out
20933771264 bytes (21 GB, 19 GiB) copied, 502.408 s, 41.7 MB/s

[01.05.2023 16:42:34 UTC+2]: Die Image-Datei wird mit dem folgenden Command gemountet.

$ sudo mount -t auto image_dd ./mnt/U3-mnt

[01.05.2023 16:52:01 UTC+2]: Es wird mit folgendem Command in das mnt/U3-mnt Verzeichnis gewechselt:

$ cd mnt/U3-mnt Anschließend wird mit folgendem Command der Inhalt des Ordners angezeigt: $ ls Folgende Ausgabe wird dabei erzeugt:

bin  boot  cdrom  dev  etc  home  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  snap  srv  swapfile  sys  tmp  usr  var

[01.05.2023 16:58:36 UTC+2]: Um an eine Liste aller Login-Daten (und somit aller Benutzer) zu bekommen, muss zunächst mit folgendem Command die etc/passwd-Datei untersucht werden:

$ sudo cat passwd Dabei werden die folgenden Login-Daten ausgegeben:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:112:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:115::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:116::/nonexistent:/usr/sbin/nologin
avahi-autoipd:x:109:118:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
usbmux:x:110:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
rtkit:x:111:119:RealtimeKit,,,:/proc:/usr/sbin/nologin
dnsmasq:x:112:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
avahi:x:114:121:Avahi mDNS daemon,,,:/run/avahi-daemon:/usr/sbin/nologin
cups-pk-helper:x:115:122:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
whoopsie:x:116:123::/nonexistent:/bin/false
sssd:x:117:124:SSSD system user,,,:/var/lib/sss:/usr/sbin/nologin
speech-dispatcher:x:118:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false
nm-openvpn:x:119:125:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin
saned:x:120:127::/var/lib/saned:/usr/sbin/nologin
colord:x:121:128:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
geoclue:x:122:129::/var/lib/geoclue:/usr/sbin/nologin
pulse:x:123:130:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false
hplip:x:125:7:HPLIP system user,,,:/run/hplip:/bin/false
gdm:x:126:132:Gnome Display Manager:/var/lib/gdm3:/bin/false
dif:x:1000:1000:DIF,,,:/home/dif:/bin/bash
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin

Jede Zeile steht für einen Login-Datensatz. Der erste Eintrag einer Zeile entspricht dem Benutzer, der zweite Eintrag gibt an, ob ein verschlüsseltes Passwort in der etc/shadow Datei vorliegt (x -> Passwort liegt vor).

[01.05.2023 17:05:46 UTC+2]: Es wird nun auch die etc/shadow Datei mit folgendem Command untersucht:

$ sudo cat shadow Dabei entsteht folgende Ausgabe:

root:!:19105:0:99999:7:::
daemon:*:18912:0:99999:7:::
bin:*:18912:0:99999:7:::
sys:*:18912:0:99999:7:::
sync:*:18912:0:99999:7:::
games:*:18912:0:99999:7:::
man:*:18912:0:99999:7:::
lp:*:18912:0:99999:7:::
mail:*:18912:0:99999:7:::
news:*:18912:0:99999:7:::
uucp:*:18912:0:99999:7:::
proxy:*:18912:0:99999:7:::
www-data:*:18912:0:99999:7:::
backup:*:18912:0:99999:7:::
list:*:18912:0:99999:7:::
irc:*:18912:0:99999:7:::
gnats:*:18912:0:99999:7:::
nobody:*:18912:0:99999:7:::
systemd-network:*:18912:0:99999:7:::
systemd-resolve:*:18912:0:99999:7:::
systemd-timesync:*:18912:0:99999:7:::
messagebus:*:18912:0:99999:7:::
syslog:*:18912:0:99999:7:::
_apt:*:18912:0:99999:7:::
tss:*:18912:0:99999:7:::
uuidd:*:18912:0:99999:7:::
tcpdump:*:18912:0:99999:7:::
avahi-autoipd:*:18912:0:99999:7:::
usbmux:*:18912:0:99999:7:::
rtkit:*:18912:0:99999:7:::
dnsmasq:*:18912:0:99999:7:::
kernoops:*:18912:0:99999:7:::
avahi:*:18912:0:99999:7:::
cups-pk-helper:*:18912:0:99999:7:::
whoopsie:*:18912:0:99999:7:::
sssd:*:18912:0:99999:7:::
speech-dispatcher:!:18912:0:99999:7:::
nm-openvpn:*:18912:0:99999:7:::
saned:*:18912:0:99999:7:::
colord:*:18912:0:99999:7:::
geoclue:*:18912:0:99999:7:::
pulse:*:18912:0:99999:7:::
gnome-initial-setup:*:18912:0:99999:7:::
hplip:*:18912:0:99999:7:::
gdm:*:18912:0:99999:7:::
dif:$1$Al1JOy/e$nSQ5CgVYrz2WTfoeXQwH11:19105:0:99999:7:::
systemd-coredump:!*:19105::::::

Jede Zeile entspricht einem Login-Datensatz. Der erste Eintrag in der Zeile entspricht dem Benutzer und der zweite dem verschlüsselten Passwort. Da nur der Benutzer dif ein verschlüsseltes Passwort hat (* und ! bedeuten, dass die Authentifizierung über einen anderen Weg als über ein Passwort erfolgt. Meistens handelt es sich dabei um Systemprozesse etc), lässt sich daraus erschließen, dass “dif” der Benutzer des Systems ist.

[01.05.2023 17:17:14 UTC+2]: Um den vorangegangenen Verdacht zu bestätigen, wird das Filesystem nach dem entsprechenden Homeverzeichnis untersucht. Dafür muss zunächst in das mnt/U3-mnt/home Verzeichnis gewechselt werden mit folgendem Command:

$ cd ../home Anschließend wird der Inhalt des Verzeichnis mit folgendem Command geprüft: $ ls Folgende Ausgabe wird dabei erzeugt: dif Somit ist bestätigt, dass es sich bei dem Nutzer um den Benutzer “dif” handeln muss.

[01.05.2023 17:20:08 UTC+2]: Es wird zurück auf den Desktop navigiert mit folgendem Command:

$ cd ~/Desktop

[07.05.2023 13:07:28 UTC+2]: Eine Liste mit möglichen Passwörtern (Aufbau: \d\d[a-z]+\d\d , Zahlen von 0-4, Kleinbuchstaben d-i, Länge: 7 Zeichen) wird mit crunch erzeugt:

$ crunch 7 7 defghi + 01234 -t %%@@@%% -o passwortliste.txt

Dabei wird folgender Output generiert:

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 

crunch: 100% completed generating output

[07.05.2023 13:08:32 UTC+2]: Das Passwort wird mit Hilfe des Tools John the Ripper (Version 1.9.) und der vorher erzeugten Wortliste geknackt:

$ sudo john combined_file --wordlist=passwortliste.txt

Dabei wird folgender Output generiert:

Warning: detected hash type "md5crypt", but the string is also recognized as "md5crypt-long"
Use the "--format=md5crypt-long" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (md5crypt, crypt(3) $1>$ (and variants) [MD5 128/128 SSE2 4x3])
Will run 3 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
22dif04          (dif)     
1g 0:00:00:01 DONE (2023-05-07 07:08) 0.5434g/s 35686p/s 35686c/s 35686C/s 22dhh40..22dih23
Use the "--show" option to display all of the cracked passwords reliably
Session completed. 

Aus dem Output lässt sich ablesen, dass das Passwort des Nutzers dif “22dif04” ist und die Ermittlung des Passworts eine Sekunde gedauert hat.

[07.05.2023 13:17:13 UTC+2]: Nachdem wir in den Ordner des Benutzers im gemounteten Image gewechselt sind (>$ cd ./mnt/U3-mnt/home/dif), haben wir dort alle Dateien, Ordner sowie Unterordner anzeigen lassen:

$ ls -R

Dabei wird folgender Output generiert:

Desktop  Documents  Downloads  Music  Pictures  Public  snap  Templates  Videos

./Desktop:

./Documents:

./Downloads:
firefox.tmp

./Downloads/firefox.tmp:
tmpaddon

./Music:

./Pictures:
schuhschnabel.png  schuhschnabel.webp

./Public:

./snap:
firefox

./snap/firefox:
631  common  current

./snap/firefox/631:

./snap/firefox/common:

./Templates:

./Videos:

Anhand der Ausgabe können wir erkennen, dass der Nutzer dif den Browser Firefox heruntergeladen hat und die beiden Bilder im Pictures-Verzeichnis angelegt hat. Die beiden Bilder haben die Dateientypen png und webp, wie wir an der Ausgabe erkennen können. Die Bilder zeigen den afrikanischen Vogel Schuhschnabel.