Hack The Box - TwoMillion Writeup
Übersicht
Dieses Repository enthält meinen Walkthrough für die Hack The Box - TwoMillion-Maschine. Das Ziel dieses Writeups ist es, meine Methodik zu dokumentieren, den Enumerationsprozess zu erklären und die Exploitation-Kette zu demonstrieren, die sowohl zu User- als auch zu Root-Zugriff führte.
Haftungsausschluss: Dieses Writeup dient ausschließlich zu Bildungszwecken. Alle Aktionen wurden in einer legalen Laborumgebung von Hack The Box durchgeführt.
| Platform | Schwierigkeitsgrad | Betriebssystem |
|---|
| Hack The Box | Einfach | Linux |
Behandelte Fähigkeiten
- Enumeration
- Webanwendungs-Tests
- JavaScript-Analyse
- API-Enumeration
- IDOR-Schwachstelle
- Befehlsinjektion
- Entdeckung von Zugangsdaten
- Lokale Privilegieneskalation
- CVE-Ausnutzung
Enumeration
Ich begann mit ein wenig Enumeration auf der Zielmaschine, um zu sehen, welche Ports und Dienste sie hat.

Nachdem ich festgestellt hatte, dass es einen HTTP-Dienst gibt und dieser versucht, auf einen anderen Host umzuleiten, aber es keine IP für diesen Hostnamen gibt, bearbeitete ich die Datei /etc/host

Ich versuchte, den Link zu öffnen, dann bekamen wir diese Seite, und ich versuchte, zu der interessanten Seite zu gehen, um zu sehen, was sie enthält.

Ich fand diese Webseite und klickte auf „Join HTB“.

Dann prüften wir, welche Dateien beim Öffnen dieser Seite geladen werden, und fanden eine interessante JS-Datei.

Hier ist der Inhalt der Datei, aber er ist obfuskiert, also wollen wir den Inhalt deobfuskieren, um den Code zu verstehen.

Hier ist der Code, und es scheint, als hätten wir URLs zu untersuchen.

Hier versuchte ich herauszufinden, wie man einen Invite-Key generiert, und nahm diese kodierten Daten, um sie zu dekodieren.

Ich dekodierte es mit Local CyberChef, und wir erhielten einen Pfad, um einen Schlüssel zu generieren.

Hier bearbeiten wir den URL-Pfad, und wir erhielten einen Einladungscode, aber er scheint kodiert zu sein.

Ich probierte Base64 aus, und es funktionierte!! Ich habe den Einladungsschlüssel.

Registrierung mit dem Einladungscode und Ausfüllen der Angaben.

Wir erhielten diese Seite und begannen, nach etwas Wertvollem zu suchen.

Wir fanden einen VPN-Datei-Generator, das ist sehr gut, falls wir Details über privilegierte Konten bekommen.

Wir folgten dem Link von der vorherigen Seite und versuchten, Endpunkte zu finden; dabei stießen wir auf sehr interessante Pfade für Admins.

Hier begann ich, zu versuchen, eine Admin-Authentifizierung für mein Konto zu erhalten.



Schließlich erhielten wir die ID, und ich denke, wir haben Admin-Rechte, also wollen wir jetzt den Auth-Status prüfen.

Ja, wie erwartet, haben wir Admin-Zugriff. Der nächste Schritt ist also, zu versuchen, eine VPN für mich als Admin zu generieren.

Hier beginnen wir, die angeforderten Angaben aus der Antwort auszufüllen.

Hier erhielten wir eine VPN-Datei, aber warum nicht etwas Befehlsinjektion ausprobieren?!!

Wie erwartet, es funktionierte!!!

Nachdem wir uns eine interessante Datei wie .env angesehen hatten, erhielten wir das Admin-Passwort.

Und schließlich sind wir in der Maschine.

User-Flagge auslesen

Hier versuchen wir alle, die Root-Flagge zu bekommen.



Hier erhielten wir eine E-Mail, die eine sehr wichtige Schwachstelle aufdeckt.

Nachdem ich die Kernel-Version identifiziert hatte, suchte ich nach öffentlich bekannten Schwachstellen, die sie betreffen, und fand CVE-2023-0386. Dies ist eine -Schwachstelle in der -Implementierung des Linux-Kernels. Sie ermöglicht es einem lokalen Angreifer, zu erlangen, indem er einen Fehler in der Art und Weise ausnutzt, wie OverlayFS Dateien mit Linux-Capabilities behandelt. Da die Zielmaschine einen verwundbaren Kernel ausführte, bot diese Schwachstelle einen geeigneten Weg, um Privilegien vom aktuellen Benutzer auf zu eskalieren.

Ich suchte nach einer Möglichkeit, die Schwachstelle auszunutzen, fand diesen PoC und versuchte, ihn zum Laufen zu bringen.

Ich lud das Repo in meine VM herunter, nutzte scp, um es auf die TwoMillion-Maschine zu kopieren, las die README-Datei und setzte den Exploit ein.




Hier erhielten wir Root-Zugriff und lasen die Root-Flagge.

Fertig!!

Danke <3
Abdullah Rawashdeh