Der Durchgang der Labormaschine zum Pentest "Hackthebox - Friendzone"

Hallo Habr! In diesem Artikel möchte ich Ihnen über meine Erfahrungen beim Bestehen des Friendzone- Labors auf dem Hackthebox-Portal berichten. Für diejenigen, die noch nicht gehört haben, was Hackthebox ist, ist dies ein Portal, auf dem Sie Ihre Pentest-Fähigkeiten in der Praxis testen können. Es gibt CTF-Masken und Labormaschinen selbst, deren Passage in diesem Artikel behandelt wird.

Ich werde sofort sagen, dass die Regeln des Dienstes lauten: "Teilen Sie nicht mit anderen Mitgliedern, wie Sie jeden Computer gehackt haben. Dies beinhaltet die Generierung des Einladungscodes und alle Herausforderungen . " Da diese Maschine jedoch nicht mehr aktiv ist und im Abschnitt "Maschinen im Ruhestand" gespeichert ist, haben nur VIP-Mitglieder Zugriff auf die Maschinen in diesem Abschnitt und auf die Beschreibungen. Dieser Artikel verstößt gegen nichts und ist völlig legal. Also fangen wir an!



Informationsbeschaffung


Beginnen wir unsere Erkundung, indem wir das Port-Scannen mit nmap starten.



Aus dem Obigen ist ersichtlich, dass die Ports 21 (ftp), 22 (ssh), 53 (Domäne), 80 (http), 139 (netbios-ssn), 443 (https) geöffnet sind. Schauen wir sie uns an.

Aufzählung 139 / tcp (netbios-ssn)


Wir werden das Dienstprogramm enum4linux verwenden, um gemeinsam genutzte Ressourcen auf dem Host aufzulisten . Aus der Ausgabe des Dienstprogramms geht hervor, dass die Ressourcen / general und / Development eingegeben werden dürfen



Jetzt müssen wir diese Ressourcen überprüfen.

Mit smbclient //10.10.10.123/general finden wir die Datei creds.txt , die einige Anmeldeinformationen enthält. Speichern Sie sie.





DNS-Aufzählung


Wir werden das Dienstprogramm dig verwenden , mit dem die Einträge auf dem angegebenen DNS-Server auf die Domäne / Subdomäne überprüft werden können. Der Domainname friendzone.red stammt aus dem CommonName-SSL-Zertifikat (nmap-Ausgabe für 443 / tcp).



Wir gehen zum 10.10.10.123



Wir bemerken die Mailbox info@friendportal.red und verwenden dig erneut.



Fügen Sie die resultierenden Einträge zu / etc / hosts hinzu

Wir haben jetzt eine Liste von Adressen, die für die folgenden Leads überprüft werden müssen. Ich werde einen Teil der Geschichte weglassen, in dem sich die Seiten als Kaninchenlöcher herausstellten. Wir betrachten nur nützliche Ergebnisse.

Wir gehen zu administartor1.friendzone.red und geben die Anmeldeinformationen unter //10.10.10.123/general/creds.txt ein





Besuchen Sie /dashboard.php



Sie werden aufgefordert, bestimmte Parameter einzugeben, um Bilder zu erhalten. Als Ergebnis stehen uns 2 Bilder zur Verfügung.





Durch Versuch und Irrtum verstehen wir, dass die Seite für LFI (Local File Inclusion) anfällig ist. Und dass wir die Shell über smbclient laden und mit dieser Sicherheitsanfälligkeit darauf zugreifen können. Wir versuchen es!

Laden Sie die Shell in Developments herunter.





Wir kehren zur Seite zurück und verweisen auf die geladene Shell.



Vorher natürlich durch Ausführen von netcat, um Port 1234 abzuhören.



Wir bekommen die Shell des www-data-Benutzers.

Nachdem wir die Volunbox durchgesehen haben, finden wir die Datei mysql_data.conf, die die Anmeldeinformationen des Freundes enthält.





Versuchen wir, ein Terminal zu bekommen und uns als Freund anzumelden.



Wir gehen in das Home-Verzeichnis / home / friend und holen das Benutzer-Flag ab.

Schnapp dir root.txt


Laden Sie pspy64 in die Volunbox herunter, um laufende Prozesse zu verfolgen.

Spoiler Überschrift
pspy ist ein Tool zum Verfolgen von Prozessen, ohne dass Root-Rechte erforderlich sind. Hier können Sie Befehle anzeigen, die von anderen Benutzern ausgeführt wurden, Cron-Jobs usw. wie sie fortschreiten.



Wir starten pspy64, bevor wir die "Ausführung" auf die Datei chmod + x setzen.



Wir stellen fest, dass reporter.py von einem Benutzer mit UID = 0 (d. H. Root) gestartet wird. Sehen wir uns den Inhalt der Datei reporter.py an



Fast alle Zeilen sind auskommentiert und machen keinen Sinn, außer der ersten, in die das OS-Modul importiert wird. Bibliotheksentführung ?

Dieses os.py-Modul hatte eine Auflösung von 777, sodass wir sicher Änderungen am Benutzer Friend vornehmen konnten.

Durch Hinzufügen des Leitungssystems ("cp /root/root.txt /home/Friend/root.txt") zum Modul "os.py" und Warten auf den Start des Skripts.



Wir haben die Root-Flagge. Sieg!

Source: https://habr.com/ru/post/de464287/


All Articles