Zum Inhalt springen
Startseite » HackMyVM Venus Walkthrough 1/5

HackMyVM Venus Walkthrough 1/5

Heute stelle ich die Plattform HackMyVM.eu vor und möchte euch helfen, die ersten 10 Level des Venus-Labs zu lösen.

HackMyVM.eu ist eine Plattform mit VMs, die ihr euch herunter laden und offline hacken könnt (wie der name der Seite schon vermuten lässt), mit klassischen CTF-Challenges sowie mit zwei online Labs (Venus und Hades).

Das Venus Lab von HackMyVM richtet sich an Einsteiger, die noch nicht all zu viel Erfahrung mit der Linux Konsole haben. Allerdings sind auch ein paar aufgaben dabei, die für einen absoluten Neuling in dem Bereich schon etwas kniffelig sein können.

HackMyVM Venus
HackMyVM.eu Venus Lab

Damit Ihr euch durch das Lab hacken könnt, müsst Ihr euch erst einen HackMyVM Account erstellen. Das ist völlig kostenlos und Ihr müsst dabei nur eine eMail-Adresse angeben.

Nach der Registrierung öffnet einfache ein Terminal und verbindet euch mit ssh zum Lab. Die Zugangsdaten findet Ihr unter https://hackmyvm.eu/venus/

Level 1

Mission: User sophia has saved her password in a hidden file in this folder. Find it and log in as sophia.

Um sich alle Dateien in einem Verzeichnis anzeigen zu lassen, gibt es unter Linux den ls Befehl. Dieser zeigt versteckte Dateien jedoch standardmäßig nicht an. Wenn man den Befehl jedoch mit der Option -a aufruft, werden auch versteckte Dateien angezeigt. Die -l Option gibt das ganze als Liste aus. Ich verwende fast immer diese Option.

ls -la

drwxr-x---  2 root   hacker 4096 Feb 24 11:50 .
drwxr-xr-x 55 root   root   4096 Feb 24 11:47 ..
-rw-r-----  1 root   hacker   31 Feb 24 11:50 ...
-rw-r--r--  1 hacker hacker  220 Aug  4  2021 .bash_logout
-rw-r--r--  1 hacker hacker 3526 Aug  4  2021 .bashrc
-rw-r-----  1 root   hacker   16 Feb 24 11:47 .myhiddenpazz
-rw-r--r--  1 hacker hacker  807 Aug  4  2021 .profile
-rw-r-----  1 root   hacker  287 Feb 24 11:47 mission.txt
-rw-r-----  1 root   hacker 2542 Feb 24 11:47 readme.txt

Hier sind nun alle Dateien im aktuellen Verzeichnis aufgeführt. Die Dateien mit dem Punkt am anfang sind Versteckte Dateien, die mit einem ls ohne -a nicht auftauchen würden.

Um sich nun den Inhalt der Datei ‚.myhiddenpazz‘ anzeigen zu lassen, benutzen wir den cat Befehl.

cat .myhiddenpazz

Und schon haben wir das Passwort für den User ’sophia‘.

Um den Benutzer zu wechseln, gebt benutzt einfach den su Befehl, gefolgt vom Benutzernamen, zu dem ihr wechseln wollt.

su sophia
Password:

Ihr werdet aufgefordert, das Passwort des gewünschten Benutzers einzugeben. Hat alles geklappt, seid ihr als der gewünschte Benutzer angemeldet und könnt mit einem cd ~ in das Home-Verzeichnis des Benutzers wechseln. Hier findet Ihr eine Datei namens flagz.txt mit einer Flag, die Ihr zur Bestätigung, dass ihr dieses Level gelöst habt, auf https://hackmyvm.eu/venus/flagz.php eingeben könnt (wie oben erwähnt, könnt ihr den cat Befehl nutzen, um euch den Inhalt einer Datei anzeigen zu lassen). Die Beschreibung der Mission für das nächste Level findet Ihr dann in der Datei ‚mission.txt‘ im aktuellen Home-Verzeichnis.

Nachdem ich das erste Level relativ ausführlich beschrieben habe, werde ich die Sache in den folgenden Leveln etwas abkürzen. Sollte etwas unklar sein, weist mich gerne mit der Kommentar-Funktion darauf hin.

Level 2

Mission: The user angela has saved her password in a file but she does not remember where … she only remembers that the file was called whereismypazz.txt

Wir müssen also eine Datei ‚whereismypazz.txt‘ finden. Dafür gibt es den find Befehl. Dieser hat einige nützliche Optionen. Hier benutzen wir die -name Option.

find / -name "whereismypazz.txt" 2>/dev/null
/usr/share/whereismypazz.txt

Das erste / gibt dabei an, wo gesucht werden soll, nämlich im Root-Verzeichnis, also ganz von vorne an. Die -name Option ist selbsterklärend und das 2</dev/null ist dafür da, eventuelle Fehlermeldungen zu unterdrücken. Dabei ist 2 die Standard-Fehlerausgabe, welche mit > nach /dev/null also ins Nichts umgeleitet wird.

Jetzt habt Ihr die Datei, die das Passwort für den nächsten Nutzer enthält.

Level 3

Mission: The password of the user emma is in line 4069 of the file findme.txt

Hier benutzen wir den Befehl sed, um uns die Zeile 4069 der Datei ‚findme.txt‘ ausgeben zu lassen.

sed -n '4069p' findme.txt

Schon habt Ihr das nächste Passwort.

Level 4

Mission: User mia has left her password in the file -.

Da wir dem Befehl cat nicht den Dateinamen ‚-‚ übergeben können, weil Optionen mit einem ‚-‚ eingeleitet werden und cat diesen Namen somit nicht als solchen erkennen kann, müssen wir etwas tricksen. Wir sagen cat einfach, dass er die Datei im aktuellen Verzeichnis suchen soll. Dies können wir machen, indem wir dem Dateinamen die Zeichenfolge ‚./‘ voran stellen. Der vollständige Befehl lautet also

cat ./-

Level 5

Mission: It seems that the user camila has left her password inside a folder called hereiam

Hier können wir mit der Methode aus Level 2 in Kombination mit der Methode aus Level 1 arbeiten:

find / -name "hereiam" 2>/dev/null
/opt/hereiam

ls -la /opt/hereiam
total 12
drwxr-xr-x 2 root root 4096 Feb 24 11:47 .
drwxr-xr-x 1 root root 4096 Feb 24 11:47 ..
-rw-r--r-- 1 root root   16 Feb 24 11:47 .here

cat /opt/hereiam/.here

Level 6

Mission: The user luna has left her password in a file inside the muack folder.

Auch hier können wir wieder mit dem find Befehl Arbeiten. Diesmal jedoch mit der Option ‚-type f‘ welche explizit nach Dateien sucht und keine Verzeichnisse ausgibt.

find ./muack -type f
./muack/111/111/muack

cat ./muack/111/111/muack

Level 7

Mission: The user eleanor has left her password in a file that occupies 6969 bytes.

Wieder können wir den find Befehl benutzen. Diesmal mit der Option ‚-size‘, wobei wir an die Dateigröße ein c anhängen, da find ansonsten nicht von Bytes sondern von Blöcken ausgehen würde.

find / -size 6969c 2>/dev/null
/usr/share/man/man1/h2xs.1.gz
/usr/share/moon.txt

cat /usr/share/moon.txt

find hat zwei Dateien mit der entsprechenden Größe gefunden. Da wir nicht davon ausgehen, dass die Passwort-Datei kompremiert ist, probieren wir zuerst aus, den Inhalt der .txt Datei auszugeben und bekommen Somit das Passwort für den nächsten Benutzer.

Level 8

Mission: The user victoria has left her password in a file in which the owner is the user violin.

Wieder ein Fall für den find Befehl. Diesmal mit der Option -user

find / -user violin 2>/dev/null
/usr/local/games/yo

cat /usr/local/games/yo

Level 9

Mission: The user isla has left her password in a zip file.

Um eine Zip-Datei zu entpacken, müssen wir für den Zielort Schreibrechte haben, da wir im aktuellen Home-Verzeichnis keine Schreibrechte haben, erstellen wir einen temporären Ordner innerhalb des Ordners ‚/tmp‘.

mkdir /tmp/1234

unzip passw0rd.zip -d /tmp/1234

Archive:  passw0rd.zip
 extracting: /tmp/1234/pwned/victoria/passw0rd.txt  

cat /tmp/1234/pwned/victoria/passw0rd.txt

Level 10

MIssion: The password of the user violet is in the line that begins with a9HFX (these 5 characters are not part of her password.).

Hier kommt ein neuer sehr wichtiger Befehl in Spiel, der grep Befehl. Dieser wird dazu benutzt, nach bestimmten Zeichenfolgen oder Regulären Ausdrücken zu suchen. Hier benutzen wir auch gleich einen regulären Ausdruck. Wir suchen nach einer Zeichenfolge, die mit ‚a9HFX‘ beginnt. Dazu benugtzen wir das ^ Zeichen, das den Start einer Zeichenkette Markiert. Außerdem benutzen wir das | Zeichen (AltGr + <) um die Ausgabe des Befehls cat in die Eingabe das Befehls grep umzuleiten.

cat passy | grep ^a9HFX  

Achtet darauf, dass das Passwort erst nach der gesuchten Zeichenfolge anfängt.

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.