Dies ist der zweite Beitrag zur Plattform HackMyVM.eu, bei dem ich euch helfen möchte, die Level 11 – 20 des Venus-Labs zu lösen.
Wenn ihr mehr über HackMyVM.eu und das Venus-Lab wissen möchtet, schaut euch meinen ersten Beitrag der Reihe zu HackMyVM an.
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/

Level 11
Mission: The password of the user lucy is in the line that ends with 0JuAZ (these last 5 characters are not part of her password)
Das Passwort für lucy befindet sich in der Datei ‚end‘ und befindet sich in der Zeile, die mit ‚0JuAZ‘ endet. Um das Passwort zu erhalten, benutzen wir einfach cat
um den Inhalt von ‚end‘ auszugeben und pipen nach grep
mit dem regulären Ausdruck 0JuAZ$
. Das Dollar-Zeichen gibt an, dass wir nach einer Zeichenkette suchen, die mit den Zeichen vor dem Dollar-Zeichen endet.
cat end | grep 0JuAZ$
Schon habt Ihr die Zugangsdaten für das nächste Level. Vergesst aber nicht, dass die Zeichenfolge ‚0JuAZ‘ nicht zum Passwort gehört.
Level 12
Mission: The password of the user elena is between the characters fu and ck
Das Passwort für das nächste Level steht also zwischen ‚fu‘ und ‚ck‘. Sehr lustig. Auch hier hilft uns grep
in Verbindung mit einem regulären Ausdruck weiter. Dann schauen wir mal, wie der reguläre Ausdruck aussehen könnte:
- Wir suchen nach einer Zeichenkette, die mit ‚fu‘ anfängt. Der Ausdruck dafür ist
^fu
- Als nächstes kommt eine beliebige Anzahl beliebiger Zeichen. Dafür ist der Ausdruck
.*
- Enden soll die Zeichenkette mit ‚ck‘ also ist der Ausdruck dafür
ck$
Alles zusammen sieht dann so aus:
cat file.yo | grep ^fu.*ck$
Jetzt habt Ihr das Passwort für das nächste Level. Denkt daran, dass das ‚fu‘ am Anfang und das ‚ck‘ am Ende nicht zum Passwort gehört.
Level 13
Mission: The user alice has her password is in an environment variable.
Um an das Passwort für das nächste Level zu bekommen, müssen wir uns nur die Umgebungsvariablen ausgeben lassen. Dass Passwort befindet sich in der Variable PASS
printenv | grep PASS
Schon habt Ihr das nächste Passwort.
Level 14
Mission: The admin has left the password of the user anna as a comment in the file passwd.
Das Passwort befindet sich also in der Datei /etc/passwd. Da die Datei ziemlich lang ist, schauen wir mal in die Zeile des aktuellen Benutzers 😉
cat /etc/passwd | grep alice
Level 15
Mission: Maybe sudo can help you to be natalia.
Sudo kann uns laut Missions-Beschreibung dabei helfen, zu natalia zu werden. Dann probieren wir es mal mit der Option -u
und geben als Benutzer natalia an. Außerdem möchten wir bash
als Befehl ausführen:
sudo -u natalia /bin/bash
whoami
natalia
cd ~
Na, das hat ja super geklappt.
Level 16
Mission: The password of user eva is encoded in the base64.txt file.
Das Passwort für das nächste Level befindet sich in der Datei base64.txt und ist codiert. Der Name der Datei lässt darauf schließen, dass das Passwort Base64 codiert ist, also benutzen wir das Kommando base64 mit der Option -d um es zu dekodieren.
cat base64.txt | base64 -d
Level 17
Mission: The password of the clara user is found in a file modified on May 1, 1968.
Das Passwort befindet sich also in einer Datei, die am 1. Mai 1968 geändert wurde.
Hier können wir den Befehl find
mit der Option -newermt
benutzen. Da Linux mit Epoch Unix Timestamps arbeitet und diese erst am 01.01.1970 beginnen, können wir allerdings nicht nach Dateien suchen, die 1968 geändert wurden. Wir lassen uns stattdessen alle Dateien anzeigen, die vor dem 02.01.1970 geändert wurden:
find / -type f ! -newermt 1970-01-02 -ls 2>/dev/null
403708 4 -rw-r--r-- 1 root root 16 Jan 1 1970 /usr/lib/cmdo
cat /usr/lib/cmdo
Level 18
Mission: The password of user frida is in the password-protected zip (rockyou.txt can help you).
Dieses Level ist etwas umständlicher. Zuerst müssen wir uns das passwort geschützte Zip Archiv auf unseren PC laden, um es anschließend mit JohnTheRipper zu knacken. Zum Glück sind sowohl JohnTheRipper als auch die Passwort-Datei rockyou.txt in Kali bzw. ParrotOS enthalten.
Als ersten Schritt laden wir mit dem Kommandozeilen-Tool sftp
das Archiv auf unseren PC.
sftp -P 5000 clara@venus.hackmyvm.eu
get protected.zip
Fetching /pwned/clara/protected.zip to protected.zip
/pwned/clara/protected.zip
Als nächstes müssen wir aus dem Zip-Archiv einen Hash erzeugen, mit dem JohnTheRipper arbeiten kann:
zip2john protected.zip > hash.txt
Jetzt, wo wir die Hash-Datei haben, können wir JohnTheRipper mit der rockyou.txt benutzen, um das Passwort zu knacken:
john --format=PKZIP --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
pass123 (protected.zip/pwned/clara/protected.txt)
1g 0:00:00:00 DONE (2022-04-02 18:50) 25.00g/s 204800p/s 204800c/s 204800C/s 123456..whitetiger
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Das Passwort ist also pass123 – damit können wir nun das Archiv entpacken und das Passwort ausgeben:
unzip protected.zip
Archive: protected.zip
[protected.zip] pwned/clara/protected.txt password:
extracting: pwned/clara/protected.txt
cat pwned/clara/protected.txt
Level 19
Mission: The password of eliza is the only string that is repeated (unsorted) in repeated.txt.
Dieses Level lässt sich wieder mit einem einzelnen Befehl lösen. Das Passwort ist der String, der in der angegebenen Datei mehrfach vorkommt. Um diesen herauszufiltern, können wir den Befehl uniq
mit der Option -d
benutzen
uniq -d repeated.txt
Level 20
MIssion: The user iris has left me her key.
In diesem Level hat der Benutzer iris freundlicherweise einen ssh-Key zurück gelassen.
Also erstmal alle Dateien anzeigen lassen:
ls -la
total 32
drwxr-x--- 2 root eliza 4096 Feb 24 11:48 .
drwxr-xr-x 55 root root 4096 Feb 24 11:47 ..
-rw-r--r-- 1 eliza eliza 220 Aug 4 2021 .bash_logout
-rw-r--r-- 1 eliza eliza 3526 Aug 4 2021 .bashrc
-rw-r----- 1 root eliza 2602 Feb 24 11:48 .iris_key
-rw-r--r-- 1 eliza eliza 807 Aug 4 2021 .profile
-rw-r----- 1 root eliza 31 Feb 24 11:47 flagz.txt
-rw-r----- 1 root eliza 143 Feb 24 11:47 mission.txt
Die Datei ‚.iris_key‘ sieht viel versprechend aus:
ssh -i .iris_key iris@localhost
Das waren die Level 11 – 20 des Venus-Labs auf HackMyVM.eu
Ich hoffe, das eine oder andere hat euch weiter geholfen.