Schwache [TryHackMe] Komplettlösung

Apr 01 2023
Ich habe kürzlich einen THM-Raum für eine CTF-Veranstaltung an meiner Hochschule entwickelt und hier ist die Komplettlösung !! Link: https://tryhackme.com/jr/weak Hinweis: Die Box braucht bis zu 5–7 Minuten, um alle Dienste ordnungsgemäß zu starten, also müssen Sie ein wenig Geduld haben :) Recon Ein einfacher Port-Scan der Box zeigt, dass die Ports 80 und 22 sind mit gültigen Diensten geöffnet (http bzw. ssh).

Ich habe kürzlich einen THM-Raum für eine CTF-Veranstaltung an meiner Hochschule entwickelt und hier ist die Komplettlösung !!

Verknüpfung:https://tryhackme.com/jr/weak

Hinweis: Die Box braucht bis zu 5–7 Minuten, um alle Dienste ordnungsgemäß zu starten, also müssen Sie ein wenig Geduld haben :)

Aufklärung

Ein einfacher Port-Scan der Box zeigt, dass die Ports 80 und 22 mit gültigen Diensten (http bzw. ssh) geöffnet sind.

Aufzählung

Http

Eine sehr einfach aussehende Vorlage

Die http-Seite hat keine aktiven Schaltflächen oder ähnliches, daher würde ich eine Quellcodeanalyse und Verzeichniszerstörung durchführen.

Benutzer: Tyrone

Dieser spezielle Kommentar bittet um die Möglichkeit, dass Tyrone ein gültiger Benutzer auf der Box ist.

In der Zwischenzeit enthüllt das Verzeichnis-Busting die Existenz einer Datei namens impressum.txt

Was so glücklicherweise wie ein privater Schlüssel für die SSH-Anmeldung aussieht.

Wenn man zwei und zwei zusammenzählt, kann man sich für tyrone anmelden.

jap chmod 600 atw
Yay!

Mehr Aufzählung

Nach dem Login wird local.txt sofort in /home/tyrone/ gefunden

Außerdem hat /var/www/html/ eine Datei namens flag2, die wir nicht lesen dürfen

Wenn man es genau betrachtet, gehört es Tyrone selbst, also können wir die Berechtigungen ändern und es uns lesen lassen.

Versuchen Sie nicht, die Flagge zu kopieren

Ein gelegentliches grep auf den Dateiinhalt zeigt uns zwei weitere Dateien, die gelesen werden können, sobald wir ihre Berechtigungen ändern

4 Fahnen runter!

Das Stammverzeichnis enthält eine Textdatei, die von Tyrone gelesen werden kann, aber eindeutig kein Flag ist

baseRot1364 sieht aus wie ein base64-Wrapper um rot13

Base64 – Rot13 – Base64

Lasst uns die Flagge runterholen!

Privilegienausweitung

Der Benutzer tyrone hat keine sudo-Berechtigungen und keine Anmeldeinformationen als solche, die in irgendwelchen Verzeichnissen verfügbar sind.

Wenn wir uns die SUID-Bits mit dem folgenden Befehl ansehen, können wir uns Binärdateien ansehen, die es jedem Benutzer ermöglichen, sie als der Benutzer auszuführen, der sie besitzt

find / -perm -4000 2>/dev/null

https://gtfobins.github.io/gtfobins/tee/#suid

Jetzt können wir jede Datei im Dateisystem überschreiben. (Easy Priv Esc durch /etc/passwd)

Es gibt jedoch einen weiteren Privilege Escalation Vector, den ich gerne zeigen möchte.

crontab ist nicht lesbar. Seltsam.

Lässt Monitor Services sehen , was crontab ausführt .

https://github.com/DominicBreuker/pspy

Etwas, irgendwo löst ein Skript aus

Super, überschreiben wir das
Benutzerdefinierter Befehl zum Überschreiben der script.sh
Jetzt sollte dies zu einem SUID-Bit werden, sobald die Uhr 00 erreicht
Bash ist jetzt ein SUID-Bit.

Root-Zugriff ist jetzt einfach über einen einfachen GTFOBins-Befehl verfügbar

https://gtfobins.github.io/gtfobins/bash/#suid

cd zu root und schnapp dir die proof.txt ezpz.

Alle Kommentare, Vorschläge oder Kritik können mir über Twitter, LinkedIn oder hier als Kommentar mitgeteilt werden

@JodisKripe