Zum Inhalt springen
Startseite » HackMyVM Venus Walkthrough 5/5

HackMyVM Venus Walkthrough 5/5

Im letzten Teil der Blog-Post Reihe zum Venus-Lab der Plattform HackMyVM.eu geht es um die Level 41 – 50.

Falls Ihr euch jetzt fragt, was HackMyVM und das Venus-Lab sind, empfehle ich euch, mit dem ersten Post der Reihe zu starten:
HackMyVM Venus Walkthroug 1/5.

Damit Ihr euch mit dem Lab verbinden könnt, müsst Ihr euch auf HackMyVM.eu registrieren. Nach der kostenlosen Registrierung öffnet einfache ein Terminal und verbindet euch mit ssh zum Lab. Die Zugangsdaten findet Ihr unter https://hackmyvm.eu/venus/

HackMyVM Venus
HackMyVM.eu Venus Lab

Level 41

Mission: User sarah uses header in http://localhost/key.php

Sarah benutzt Header in der Kommunikation mit http://localhost/key.php
Dann rufen wir die URL doch einfach mal mit curl auf, um zu sehen, was uns erwartet:

curl http://localhost/key.php
Key header is true?

Der Server frag uns, ob das Feld „Key“ im Header true ist. Das war bei unserer ersten Anfrage natürlich nicht der Fall. Mit der Option -H können wir curl aber Header für den Aufruf mit geben. Setzen wir also den Header „Key: true“:

curl -H "Key: true" http://localhost/key.php

Schon belohnt uns der Server mit dem Passwort für Level 42.

Level 42

Mission: The password of mercy is hidden in this directory.

Das Passwort für das nächste Level ist also in diesem Verzeichnis versteckt. Dann schauen wir mal, was wir im Verzeichnis finden:

la -la

drwxr-x--- 2 root  sarah 4096 Apr  7 06:00 .
drwxr-xr-x 1 root  root  4096 Apr  7 05:55 ..
-rw-r----- 1 root  sarah   16 Apr  7 06:00 ...
-rw-r--r-- 1 sarah sarah  220 Aug  4  2021 .bash_logout
-rw-r--r-- 1 sarah sarah 3526 Aug  4  2021 .bashrc
-rw-r--r-- 1 sarah sarah  807 Aug  4  2021 .profile
-rw-r----- 1 root  sarah   31 Apr  7 05:55 flagz.txt
-rw-r----- 1 root  sarah  175 Apr  7 05:55 mission.txt

Wenn man nicht genau hin sieht, kann man die Versteckte Datei leicht übersehen, aber wir als Profis erkennen natürlich sofort die Datei ‚…‘

cat ...

Und schon haben wir das Passwort für das nächste Level.

Level 43

Mission: User mercy is always wrong with the password of paula.

Mercy kann sich anscheinend nicht das Passwort für Paula merken. Schauen wir mal nach, was für Dateien wir so finden:

ls -la

drwxr-x--- 2 root  mercy 4096 Apr  7 06:00 .
drwxr-xr-x 1 root  root  4096 Apr  7 05:55 ..
-rw-r----- 1 root  mercy  133 Apr  7 06:00 .bash_history
-rw-r--r-- 1 mercy mercy  220 Aug  4  2021 .bash_logout
-rw-r--r-- 1 mercy mercy 3526 Aug  4  2021 .bashrc
-rw-r--r-- 1 mercy mercy  807 Aug  4  2021 .profile
-rw-r----- 1 root  mercy   31 Apr  7 05:55 flagz.txt
-rw-r----- 1 root  mercy  190 Apr  7 05:55 mission.txt

Zwar finden wir keine Passwort-Datei, in der Mercy das Passwort für Paula gespeichert hat, aber dafür etwas anderes, was genau so gut ist: die Datei ‚.bash_history‘. Mit dem Befehl ‚history‘ können wir uns somit die letzten Kommandozeilen-Eingaben anzeigen lassen:

history

Eine Zeile der Ausgabe sieht doch sehr nach dem Passwort für das nächste Level aus.

Level 44

Mission: The user karla trusts me, she is part of my group of friends.

Karla ist in der Gruppe unserer Freunde. Dann schauen wir mal, in welchen Gruppen wir als Paula sind:

groups
paula hidden

Wir sind in den Gruppen ‚paula‘ und ‚hidden‘. Die Gruppe ‚hidden‘ sieht an dieser Stelle vielversprechend aus. Dann schauen wir mal, welche Dateien der Gruppe ‚hidden‘ zugeordnet sind:

find / -group hidden 2>/dev/null
/usr/src/.karl-a

Es ist nur eine Datei der entsprechenden Gruppe zu finden. Schauen wir uns doch einfach mal den Inhalt dieser Datei an:

cat /usr/src/.karl-a

Das sieht doch sehr nach dem Passwort für das nächste Level aus.

Level 45

Mission: User denise has saved her password in the image.

Denise hat das Passwort für das nächste Level in einem Bild gespeichert. Wie so oft schauen wir als erstes, was für Dateien sich im Home-Verzeichnis befinden:

ls -la

drwxr-x--- 2 root  karla  4096 Apr  7 06:00 .
drwxr-xr-x 1 root  root   4096 Apr  7 05:55 ..
-rw-r--r-- 1 karla karla   220 Aug  4  2021 .bash_logout
-rw-r--r-- 1 karla karla  3526 Aug  4  2021 .bashrc
-rw-r--r-- 1 karla karla   807 Aug  4  2021 .profile
-rw-r----- 1 root  karla    31 Apr  7 05:55 flagz.txt
-rw-r----- 1 root  karla   176 Apr  7 05:55 mission.txt
-rw-r----- 1 root  karla 32946 Apr  7 06:00 yuju.jpg

Tatsächlich gibt es eine Bild-Datei mit dem Namen ‚yuju.jpg‘. Auch die Überprüfung des Dateiformats mittels ‚file‘ bestätigt, dass es sich um eine JPEG-Datei handelt:

file yuju.jpg
yuju.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=4], baseline, precision 8, 442x463, components 3

Bevor wir jetzt davon ausgehen, dass das Passwort mit irgendwelchen kryptografischen Steganographie-Verfahren in der Bild-Datei versteckt wurde, werfen wir doch einen Blick in die Exif-Daten des Bildes:

exiftool yuyu.jpg

Und tatsächlich finden wir im About-Tag etwas, was sehr nach dem Passwort für das nächste Level aussieht.

Level 46

Mission: The user zora is screaming doas!

Wenn Zora ‚doas‘ schreit, benutzen wir es doch einfach:

doas
usage: doas [-Lns] [-C config] [-u user] command [args]

Der Befehl erwartet ein Kommando, das ausgeführt werden soll. Außerdem kann man einen User angeben, unter dem das Kommando ausgeführt wird. Wenn wir also die Bash mit dem Benutzer ‚zora‘ ausführen können, wären wir im nächsten Level:

doas -u zora /bin/bash

Jetzt müssen wir nur noch unser eigenes Passwort (das von ‚denise‘) eingeben, und sind im nächsten Level!

Level 47

Mission: The user belen has left her password in venus.hmv

Der Missionstext legt nahe, dass Belen das Passwort in einer Datei namens ‚venus.hmv‘ gespeichert hat.
Schauen wir als erstes mal nach, was sich im Home-Verzeichnis befindet:

ls -la

drwxr-x--- 2 root zora 4096 Apr  7 06:00 .
drwxr-xr-x 1 root root 4096 Apr  7 05:55 ..
-rw-r--r-- 1 zora zora  220 Aug  4  2021 .bash_logout
-rw-r--r-- 1 zora zora 3526 Aug  4  2021 .bashrc
-rw-r--r-- 1 zora zora  807 Aug  4  2021 .profile
-rw-r----- 1 root zora   31 Apr  7 05:55 flagz.txt
-rw-r----- 1 root zora  173 Apr  7 05:55 mission.txt
-rw-r----- 1 root zora   16 Apr  7 06:00 zora_pass.txt

Keine Datei namens ‚venus.hmv‘. Dann suchen wir doch einfach Systemweit nach der Datei:

find / -name venus.hmv 2>/dev/null

Wieder kein Erfolg. Die Datei scheint es nicht zu geben. Vielleicht ist ‚venus.hmv‘ ja gar keine Datei, sondern eine URL. Das lässt sich mit curl ja ziemlich einfach heraus finden:

curl venus.hmv

Tatsächlich bekommen wir als Rückgabe das Passwort für das nächste Level.

Level 48

Mission: It seems that belen has stolen the password of the user leona…

Schauen wir wieder als erstes danach, welche Dateien wir im Home-Verzeichnis von Belen finden:

ls -la

drwxr-x--- 2 root  belen 4096 Apr  7 06:00 .
drwxr-xr-x 1 root  root  4096 Apr  7 05:55 ..
-rw-r--r-- 1 belen belen  220 Aug  4  2021 .bash_logout
-rw-r--r-- 1 belen belen 3526 Aug  4  2021 .bashrc
-rw-r--r-- 1 belen belen  807 Aug  4  2021 .profile
-rw-r----- 1 root  belen   31 Apr  7 05:55 flagz.txt
-rw-r----- 1 root  belen  197 Apr  7 05:55 mission.txt
-rw-r----- 1 root  belen   32 Apr  7 06:00 stolen.txt

Hier sieht die Datei ’stolen.txt‘ vielversprechend aus. Schauen wir uns den Inhalt an:

cat stolen.txt
$1$leona$lhWp56YnWAMz6z32Bw53L0

Die Zeichenfolge $1$ am Anfang des Strings sagt uns, dass es sich um einen md5crypt-format handelt.
Speichern wir den String in eine Lokale Datei und lassen JohnTheRipper mal schauen, ob er den passenden Plaintext zum Hash findet:

john --format=md5crypt --wordlist=/usr/share/wordlists/rockyou.txt stolen.txt

John hat seine Arbeit gut gemacht und uns das Passwort für Level 49 geliefert.

Level 49

Mission: User ava plays a lot with the DNS of venus.hmv lately…

Ava spielt also mit dem DNS-Eintrag von venus.hmv. Dann schauen wir doch in den ‚bind‘-Ordner, in dem sich die lokalen DNS-Einträge befinden:

ls -la /etc/bind

drwxr-sr-x 2 root bind 4096 Apr  7 06:00 .
drwxr-xr-x 1 root root 4096 Apr  8 18:33 ..
-rw-r--r-- 1 root root 1991 Mar 14 14:25 bind.keys
-rw-r--r-- 1 root root  237 Mar 14 14:25 db.0
-rw-r--r-- 1 root root  271 Mar 14 14:25 db.127
-rw-r--r-- 1 root root  237 Mar 14 14:25 db.255
-rw-r--r-- 1 root root  353 Mar 14 14:25 db.empty
-rw-r--r-- 1 root root  270 Mar 14 14:25 db.local
-rw-r--r-- 1 root bind  613 Apr  7 06:00 db.venus.hmv
-rw-r--r-- 1 root bind  463 Mar 14 14:25 named.conf
-rw-r--r-- 1 root bind  498 Mar 14 14:25 named.conf.default-zones
-rw-r--r-- 1 root bind  307 Apr  7 06:00 named.conf.local
-rw-r--r-- 1 root bind  219 Apr  7 06:00 named.conf.options
-rw-r----- 1 bind bind  100 Apr  7 05:55 rndc.key
-rw-r--r-- 1 root root 1317 Mar 14 14:25 zones.rfc1918

Hier springt sofort die Datei ‚db.venus.hmv‘ ins Auge. Wenn man sich den Inhalt genau anschaut, findet man das Passwort für das nächste Level.

Level 50

MIssion: The password of maria is somewhere…

Das Passwort des Benutzers Maria und damit das Passwort des letzten Levels ist irgendwo… Der Missionstext suggeriert, dass wir das Passwort von Maria schon irgendwo benutzt haben und das stimmt auch, aber anders als man es vermuten mag… Ich sage nur so viel: Schaut euch an, wie ihr an die Passwörter der letzten Level gekommen seid.

Das waren die letzten 10 Level des Venus-Labs auf HackMyVM.eu
Ich hoffe, ihr hattet damit genau so viel Spaß wie ich. Von mir gibt es ganz klar einen Daumen hoch für diese doch noch recht neue Plattform, die in relativ kurzer Zeit eine Menge an CTF-Inhalten veröffentlicht hat.

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert