Ich veröffentliche weiterhin Lösungen, die zur Finalisierung von Maschinen von der HackTheBox- Site gesendet wurden .
In diesem Artikel wollen wir RCE in Tomcat herunterladen, das Zip-Archiv auflösen und die Berechtigungen mithilfe von LXD erhöhen.
Organisationsinformationen
Damit Sie mehr über neue Artikel, Software und andere Informationen erfahren können, habe ich einen Telegrammkanal und eine Gruppe erstellt, um alle Probleme im Bereich ICS zu diskutieren . Außerdem werde ich Ihre persönlichen Anfragen, Fragen, Vorschläge und Empfehlungen persönlich prüfen und alle beantworten .
. , - , .
. , - , .
Aufklärung
Dieser Computer hat eine IP-Adresse vom 10.10.10.194, die ich zu / etc / hosts hinzufüge.
10.10.10.194 tabby.htb
Der erste Schritt ist das Scannen offener Ports. Ich mache dies mit dem folgenden Skript, das ein Argument akzeptiert - die Adresse des gescannten Hosts:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
Die Auswahl ist gering. Beginnen wir mit Port 80, wo uns der nächste Standort trifft.
Wenn wir uns auf der Website umschauen, stellen wir eine interessante Art der Anzeige von Nachrichten fest (mit einem Hauch von LFI).
Fügen Sie außerdem einen weiteren Eintrag zu / etc / hosts hinzu.
10.10.10.194 megahosting.htb
Lassen Sie uns überprüfen, ob LFI verfügbar ist. Dafür verwende ich LFISuite.
Und wir finden LFI. Da wir nicht mehr bekommen, gehen wir zu Port 8080. Dort werden wir von einer Seite begrüßt, auf der wir erfahren, dass Tomcat verwendet wird.
Wir machen Sie auf eine interessante Datei aufmerksam. Wenn Sie auf einen anderen Link klicken, wird ein HTTP-Authentifizierungsfenster angezeigt. Lesen wir die angegebene Datei /usr/share/tomcat9/etc/tomcat-users.xml.
Und es gibt Anmeldeinformationen, mit denen wir uns anmelden können. Von hier aus können wir den RCE mit dem Modul tomcat_mgr_deploy abrufen.
Lassen Sie uns die erforderlichen Parameter einstellen.
Und wir bekommen den Dateipfadfehler.
Einstiegspunkt
Nachdem wir ein bisschen gewandert sind, stoßen wir auf die Hilfe, die das Textverzeichnis enthält.
Zeigen wir diesen Weg.
Und wir bekommen eine Meterpreter-Sitzung. Um eine schnelle Aufklärung durchzuführen, legen wir das LinPEAS-Skript auf dem Host ab und führen es aus.
Durch sorgfältige Analyse der Ausgabe finden wir eine interessante Datei.
NUTZER
Laden Sie es herunter und versuchen Sie es zu öffnen. Wir werden jedoch nach einem Passwort gefragt.
Lassen Sie uns versuchen, darüber zu iterieren.
fcrackzip -D -p ../tools/rockyou.txt 16162020_backup.zip
Und wir finden das wahrscheinliche Passwort. Das Archiv selbst enthält nichts Interessantes, aber es ist ein Kennwort eines im System erstellten Benutzers.
Erstellen Sie für eine bequeme Verbindung einen SSH-Schlüssel.
WURZEL
Lassen Sie uns über SSH mit einem privaten Schlüssel eine Verbindung herstellen und sehen, dass sich der Benutzer in der lxd-Gruppe befindet.
LXD ist ein Systemcontainer-Manager. Es bietet eine Benutzeroberfläche ähnlich wie virtuelle Maschinen, verwendet jedoch stattdessen Linux-Container.
Der LXD-Kernel ist ein privilegierter Daemon, der REST-APIs über den lokalen Unix-Socket sowie über das Netzwerk verfügbar macht, wenn dies konfiguriert ist. Clients wie das mit LXD gelieferte Befehlszeilentool senden Anforderungen über diese REST-API. Dies bedeutet, dass unabhängig davon, ob Sie auf localhost oder remote zugreifen, alles gleich funktioniert.
Aber wir können Befehle dadurch ausführen, das heißt als root. Dafür benötigen wir folgende SoftwareLaden Sie die resultierenden Images auf den Remote-Host hoch und erstellen Sie sie. Und nach dem vorbereitenden Teil importieren wir unsere lxd-kompatible Bilddatei.
lxc image import ./alpine-v3.12-x86_64-20200810_0015.tar.gz --alias ralf
Uns wird gesagt, dass es zuerst initialisiert werden musste, aber dies kann später erfolgen. Stellen Sie sicher, dass das Bild geladen ist.
lxc image list
Jetzt initialisieren wir.
Erstellen wir einen Container mit einem Bild und einem Namen.
lxc init ralf ignite -c security.privileged=true
Und wir werden die Konfigurationen festlegen, in denen die Festplatte als / mnt / root gemountet wird.
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
Starten und ausführen.
lxc start ignite
lxc exec ignite /bin/sh
Und wir haben Wurzelrechte.
Sie können sich uns per Telegramm anschließen . Dort finden Sie interessante Materialien, durchgesickerte Kurse und Software. Lassen Sie uns eine Community zusammenstellen, in der es Menschen geben wird, die sich in vielen Bereichen der IT auskennen. Dann können wir uns in Fragen der IT und der Informationssicherheit immer gegenseitig helfen.