01Einführung
Die TryHackMe Mr. Robot CTF Maschine ist als Easy eingestuft und basiert auf der gleichnamigen TV-Serie rund um den Hacker Elliot Alderson. Ziel ist es, drei versteckte Keys zu finden — vom einfachen Reconnaissance bis zur vollständigen Root-Kompromittierung des Systems.
02Reconnaissance
Wie üblich starten wir mit aktivem Reconnaissance auf der Zielmaschine. Ein Nmap-Scan verschafft uns einen ersten Überblick über offene Ports und laufende Dienste.
nmap -sC -sV 10.10.119.16803Web Enumeration — Port 80
Port 80 ist offen — also rein. Wir navigieren zur Ziel-IP und werden direkt von einer cineastischen Boot-Sequenz begrüßt. Ein interaktives Terminal das aussieht als hätte fsociety es selbst gebaut. Beeindruckend — aber wir sind hier um Schwachstellen zu finden.
Mr. Robot Terminal-Website — Rechtsklick zeigt "View Page Source"
Die vollständige Mr. Robot Startseite mit interaktiven Commands
Ein kurzer Blick in den Quellcode — Zeile 20 verrät etwas Interessantes. Die interaktiven Commands auf der Startseite sind gut gemacht, bringen uns aber nicht weiter. Wir graben tiefer.
📁 Directory Enumeration mit Dirbuster
Mit Dirbuster suchen wir nach versteckten Verzeichnissen und Dateien auf dem Webserver.
dirbuster -u http://10.10.119.168 -l /usr/share/dirb/wordlists/common.txt/wp-login.php antwortet mit Status 200. Die Maschine läuft auf WordPress — und WordPress ist bekannt für seine Angriffsfläche. Das ist unser nächstes Ziel. Das /admin/ Verzeichnis gibt noch keinen Zugang.04Key 1 — robots.txt
Bevor wir irgendwas cracken — immer zuerst die robots.txt prüfen. Administratoren sperren dort Bereiche für Suchmaschinen. Und manchmal vergessen sie dabei, was sie eigentlich verstecken wollten.
http://10.10.119.168/robots.txtrobots.txt enthält zwei interessante Einträge: key-1-of-3.txt und fsocity.dic
key-1-of-3.txt. Einfach den Dateinamen in der URL eingeben und der erste Key ist unser!
Aber das ist noch nicht alles — die robots.txt enthält auch fsocity.dic. Eine Wörterliste. Jemand hat sie dort vergessen. Wir nehmen sie mit — sie wird uns später sehr nützlich sein.
fsocity.dic wird automatisch heruntergeladen — eine lange Wordlist
Die Datei ist eine lange Liste mit tausenden Einträgen. Mögliche Benutzernamen. Mögliche Passwörter. Wir wissen es noch nicht — aber wir werden es herausfinden.
05Bruteforce — WordPress Login
WordPress Login-Seite — check. Wordlist — check. Hydra — gestartet. Wir starten den Angriff in zwei Phasen: erst den Benutzernamen aufdecken, dann das Passwort brechen. WordPress macht uns dabei ungewollt einen Gefallen: es zeigt unterschiedliche Fehlermeldungen je nachdem ob der Username existiert oder nicht.
🔍 Schritt 1 — Benutzernamen ermitteln
hydra -L fsocity.dic -p test 10.10.119.168 http-post-form "/wp-login.php:log=^USER^&pwd=^PWD^:Invalid username" -t 30Hydra findet den gültigen Benutzernamen: Elliot
Wir probieren den Fund direkt an der Login-Maske aus. WordPress antwortet — und verrät dabei mehr als es sollte:
WordPress bestätigt: Benutzer "Elliot" existiert — nur das Passwort stimmt noch nicht
🔑 Schritt 2 — Passwort cracken
Phase 2. Benutzername bekannt: Elliot. Jetzt jagen wir das Passwort. Hydra bekommt diesmal einen festen Username und die komplette fsocity.dic als Munition. Wichtig: -L auf -l (Kleinbuchstabe) ändern — sonst läuft der Scan gegen die Wand.
hydra -l Elliot -P fsocity.dic 10.10.119.168 http-post-form "/wp-login.php:log=^USER^&pwd=^PWD^:The password you entered for the username" -t 30WordPress Dashboard von Elliot — wir haben vollen Admin-Zugriff
Als Admin haben wir Zugriff auf den Theme-Editor. Das ist kein Feature — das ist eine Hintertür. Wir werden sie benutzen.
06Reverse Shell via WordPress Editor
📡 Schritt 1 — Netcat Listener starten
Bevor wir die Shell triggern, muss unser Listener bereitstehen. Netcat öffnet einen Port auf unserer Kali-Maschine und wartet auf die eingehende Verbindung vom Ziel:
nc -lvnp 1234🐚 Schritt 2 — PHP Reverse Shell einbinden
Wir greifen zur PHP-Reverse-Shell von PentestMonkey — ein Klassiker im Toolkit jedes Pentesters. Im Theme-Editor reißen wir den Inhalt von archive.php raus und ersetzen ihn komplett mit unserem Payload.
WordPress Theme Editor — archive.php wird mit der Reverse Shell ersetzt
Kritischer Schritt: In der Shell-Datei muss die eigene Kali-IP eingetragen werden — nicht die des Ziels. Falsche IP = keine Shell. Doppelt prüfen, dann speichern.
PHP Reverse Shell — eigene Kali-IP (10.8.200.139) und Port 1234 eintragen
File gespeichert. Jetzt den Payload zünden — wir rufen die archive.php direkt im Browser auf:
http://TARGET-IP/wp-content/themes/twentyfifteen/archive.phpShell erhalten! Netcat Listener empfängt Verbindung — wir sind als daemon eingeloggt
whoami sehen wir: wir sind als daemon eingeloggt — ein User mit sehr niedrigen Rechten. Weiter geht's!07Key 2 — Hash Cracking
Shell haben wir — jetzt erkunden wir das System. Das Home-Verzeichnis ist immer ein guter Startpunkt. Was hat der User robot dort versteckt?
ls /home
cd /home/robot
ls -lsa/home/robot — key-2-of-3.txt (kein Zugriff) und password.raw-md5 (lesbar!)
Key 2 liegt direkt vor uns — aber wir dürfen ihn nicht lesen. Noch nicht. Dafür sehen wir etwas Interessanteres: password.raw-md5. Ein MD5-Hash. Den speichern wir und schicken ihn durch John the Ripper:
john robot.hash --wordlist=fsocity.dic --format=Raw-MD5John the Ripper crackt den Hash — Passwort für den User robot: abcdefghijklmnopqrstuvwxyz
Hash geknackt. Passwort in der Hand. Wir stabilisieren die Shell mit Python und wechseln den User — Zeit robot zu werden:
python -c 'import pty;pty.spawn("/bin/bash")'
su robotShell stabilisiert — User robot eingeloggt — Key 2 kann jetzt gelesen werden
08Privilege Escalation — SUID Nmap
Jetzt kommt der entscheidende Schritt: Root. Wir suchen nach SUID-Binaries — Programme die mit erhöhten Rechten laufen. Eines davon könnte unsere Eintrittskarte nach ganz oben sein.
find / -perm +6000 2>/dev/null | grep 'bin/'SUID Binary Liste — /usr/local/bin/nmap fällt sofort auf!
nmap mit SUID-Bit — das ist ein grober Konfigurationsfehler. Auf GTFOBins schlagen wir nach und finden den Exploit: nmap hat einen interaktiven Modus der direkt eine Shell mit den Rechten des Owners spawnt. Der Owner ist root.
/usr/local/bin/nmap --interactive
nmap> !sh09Key 3 — Root!
nmap --interactive gibt Root-Shell — ls /root zeigt key-3-of-3.txt
ls /root — da liegt er. Key 3. Mission abgeschlossen. Du hast alle drei Keys gefunden, das System vollständig kompromittiert und jeden Schritt des Angriffspfads gemeistert. Access granted. 💀
10Alle Flags
Gefunden via robots.txt
Nach MD5-Hash Crack → User robot
Nach SUID Nmap → Root
11Fazit & Lernpunkte
Mr. Robot zeigt dir wie ein realer Angriff aussieht — von der ersten Enumeration bis zur Root-Shell. Kein einzelner magischer Exploit, sondern eine Chain aus kleinen Fehlern die zusammen das System öffnen. Genau so läuft es in der echten Welt.
- robots.txt immer als erstes prüfen — enthält oft sensible Pfade
- WordPress als Angriffsfläche: Der Theme-Editor erlaubt direkte Code-Ausführung
- Hydra Bruteforce: Zuerst Username ermitteln, dann Passwort — spart enorm Zeit
- MD5-Hashes mit John the Ripper und einer guten Wordlist schnell crackbar
- SUID-Binaries immer nach initialem Zugriff prüfen — GTFOBins ist unverzichtbar
- Shell stabilisieren mit
python -c 'import pty;pty.spawn("/bin/bash")'nicht vergessen!