HackTheBox. Exemplarische Vorgehensweise von OpenAdmin. RCE in OpenNetAdmin und GTFOBins in Nano

Bild

Ich veröffentliche weiterhin Lösungen, die zur weiteren Verarbeitung von der HackTheBox- Site gesendet wurden .

In diesem Artikel werden wir RCE in OpenNetAdmin ausnutzen, die Webserverkonfigurationen untersuchen, den Port mit SSH-Weiterleitung durchstoßen, das SSH-Schlüsselkennwort knacken und die GTFOBins-Technik verwenden, um die Berechtigungen zu erhöhen.

Die Verbindung zum Labor erfolgt über VPN. Es wird empfohlen, keine Verbindung von einem Arbeitscomputer oder von einem Host aus herzustellen, auf dem die für Sie wichtigen Daten verfügbar sind, da Sie in einem privaten Netzwerk mit Personen landen, die sich mit Informationssicherheit auskennen :)

Organisationsinformationen
, , Telegram . , , .

. , - , .

Aufklärung


Dieser Computer hat eine IP-Adresse 10.10.10.171, die ich zu / etc / hosts hinzufüge.

10.10.10.171    openadmin.htb

Zuerst scannen wir offene Ports. Da das Scannen aller Ports mit nmap sehr lange dauert, werde ich dies zunächst mit masscan tun. Wir scannen alle TCP- und UDP-Ports von der tun0-Schnittstelle mit einer Geschwindigkeit von 500 Paketen pro Sekunde.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.171   --rate=500

Bild

Für detailliertere Informationen zu den Diensten, die an Ports ausgeführt werden, führen wir nun einen Scan mit der Option -A durch.

nmap openadmin.htb -p22,80

Bild

Daher führt der Dienst SSH und den Apache-Webserver aus. Schauen Sie sich an, was sich auf der Website befindet.

Bild

Wir treffen die Hauptseite von Apache. In solchen Fällen befinden sich Websites möglicherweise nicht im Home-Verzeichnis des Dienstes. Um sie zu finden, müssen Sie die Verzeichnisse sortieren. Verwenden Sie dazu das Gobuster-Programm (angeblich den schnellsten Scanner). Wir wählen den Verzeichnis-Scan-Modus (dir), das Wörterbuch (-w), die Anzahl der Streams (-t), die Seitenerweiterungen (-x) sowie die erweiterte Ausgabe der Seiten (-e) und der URL (-u).

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb

Bild

In der Ausgabe gibt es zu viele Antworten mit dem Code 403, um sie zu filtern. Wir geben die Antwortcodes (-s) an, die wir benötigen.

gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb -s “200,204,301,302,307,401”

Bild

Und wir finden mehrere Verzeichnisse. Jetzt gehen wir alles durch, um herauszufinden, was sich dort befindet.

Bild

Bild

Bild

Und nur auf einer dieser Websites gibt es eine Anmeldefunktion. Wenn Sie dies versuchen, gehen wir zur OpenNetAdmin-Seite.

Bild

In diesem Fall wird, wie Sie sehen, Version 18.1.1 verwendet.

Einstiegspunkt


Lassen Sie uns nach Exploits für diese Version suchen.

Bild

Und für diese Version gibt es einen RCE-Exploit. Der Code befindet sich bereits in der lokalen Datenbank. Schauen wir uns das an.

Bild

Das Skript akzeptiert also einen Parameter - dies ist die URL. (Beim Start hatte ich Fehler, so dass Sie die Datei über mcedit öffnen und ^ M Zeichen entfernen können).

Bild

USER1


Wir sind im Home-Verzeichnis.

Bild

Und wir sind von einer großen Anzahl von Dateien umgeben.

Bild

Einige von ihnen können Anmeldeinformationen enthalten. Schauen wir uns alle Dateien rekursiv an.

Bild

Und es gibt keine Ergebnisse. Bei der Suche nach dem Wort „bestanden“ werden jedoch viele Ergebnisse erzielt.

Bild

Schauen Sie sich nun die gesamte Konfiguration an.

Bild

Dies ist das Kennwort für die Verbindung zur Datenbank. Versuchen wir es für Benutzer. Und wir melden uns erfolgreich als User Jimmy an.

Bild

USER2


Führen Sie zunächst das LinEnum-Basisaufzählungsskript aus .

Bild

Die Schlussfolgerung muss sehr sorgfältig analysiert werden, jede Zeile !!! Und das einzige, woran Sie sich in der Ausgabe des Skripts festhalten können, ist die Gruppenmitgliedschaft.

Bild

Jimmy und Joanna sind in derselben internen Gruppe. Sehen wir uns die Dateien an, die zu dieser Gruppe gehören.

Bild

Nach dem Standort zu urteilen - das ist der Ort. Wir analysieren Dateien. Der erste, der zu sehen ist, ist main.

Bild

Wenn wir autorisiert sind, zeigen sie uns den privaten SSH-Schlüssel des Benutzers joanna. Aus der Indexdatei folgt, dass wir nach erfolgreicher Autorisierung zu main wechseln. Es enthält auch einen SHA512-Passwort-Hash.

Bild

Der Hash bricht mit Hilfe dieser Seite leicht .

Bild

Es bleibt zu lernen, wie man zur Seite kommt. Die Ports für den Zugriff auf jede Site befinden sich in der entsprechenden Konfigurationsdatei für jede Site im Verzeichnis / etc / apache2 / sites-available für Apache.

Bild

Wie Sie sehen, gibt es eine internal.conf, die uns interessiert. Leiten Sie nun den SSH-Port weiter.

Bild

Aus der Konfiguration geht hervor, dass wir vom lokalen Computer auf Port 52846 unter der Domäne internal.openadmin.htb auf die Site zugreifen können. Lassen Sie uns den Port zum Laufen bringen - das heißt, lassen Sie unseren lokalen Port 52846 zum Remote-Port 52846 umleiten. Diese Technik wird als SSH-Portweiterleitung bezeichnet.

Bild

Nehmen Sie nun auf dem lokalen Computer einen Eintrag in der Datei / etc / hosts vor.
127.0.0.1 internal.openadmin.htb
Und wir werden über den Browser an die Adresse internal.openadmin.htb : 52846 / index.php adressieren.

Bild

Melden Sie sich mit bekannten Anmeldeinformationen an und erhalten Sie einen privaten SSH-Schlüssel.

Bild

Wir speichern in einer Datei und weisen Rechte zu.

Bild

Beim Verbindungsversuch werden wir jedoch nach dem Kennwort für den Schlüssel gefragt, da dieser verschlüsselt ist.

Bild

Wir können durch die Taste scrollen. Dazu bringen wir es in das John'a-Format und geben dann die Datei mit dem Schlüssel, der bereits in das Format konvertiert wurde, zum Brute.

Bild

Und finden Sie erfolgreich das Passwort. Wir sind bereits mit dem Schlüssel und dem Passwort verbunden.

Bild

WURZEL


Zu überprüfen sind unter anderem die Sudo-Einstellungen zum Ausführen von Befehlen ohne Kennwort.

Bild

Die Zeile NOPASSWD besagt, dass wir diesen Befehl unter sudo ohne Passwort ausführen können. In diesem Fall wird der Befehl nano aufgerufen. Es gibt eine Technik wie GTFOBins, mit der verschiedene Dienstprogramme zum Lesen, Schreiben von Dateien oder Ausführen ganzer Befehle verwendet werden können. Eine vollständige Liste der Dienstprogramme und ihrer Funktionen finden Sie hier . Werfen wir einen Blick darauf, wie man mit Nano Shell bekommt.

Bild

Führen Sie unseren Befehl mit sudo aus.

Bild

Wählen Sie nun in der Reihenfolge der Befehle die Option zum Lesen der Datei aus.

Bild

Jetzt die Möglichkeit, Befehle auszuführen.

Bild

Und geben Sie die letzte Zeile der Anweisung ein.

Bild

Und wir bekommen die Shell im Namen der Wurzel.

Bild

Sie können sich uns per Telegramm anschließen. Dort finden Sie interessante Materialien, zusammengeführte Kurse sowie Software. Stellen wir eine Community zusammen, in der es Menschen gibt, die sich in vielen Bereichen der IT auskennen. Dann können wir uns in Fragen der IT und der Informationssicherheit immer gegenseitig helfen.

All Articles