Unified | HTB Starting Point Writeup T2M04

Unified | HTB Starting Point Writeup T2M04

In diesem Writeup geht es um die Starting Point Maschine "Unified" auf Hack The Box.

Wie immer, dass passende Video zum Beitrag hier: https://youtu.be/ttPqasC2WCM


  1. Welche sind die ersten vier offenen Ports?

22, 6789, 8080, 8443

Die Ports finden wir mit einem nmap Scan heraus.

nmap scan

  1. Wie lautet der Titel der Software, die auf Port 8443 läuft?

Unifi Network

Den Namen der Software sehen wir im Browser.

unifi

  1. Welche Version der Software wird ausgeführt?

6.4.54

version

  1. Wie lautet die CVE für die identifizierte Schwachstelle?

CVE-2021-44228

Um die passende CVE zu finden, schauen wir zuerst in metasploit, ob es dort einen passenden Exploit gibt.

exploit

Da hier auf anhieb nicht die zugehörige CVE steht, suchen wir einfach im Web.

Log4j

  1. Welches Protokoll wird von JNDI bei der Injektion genutzt?

LDAP

Für die Antwort können wir uns den bereit oben entdeckten Artikel zu der Schwachstelle genauer durchlesen

cve

  1. Mit welchem Tool können wir den Datenverkehr abfangen, der anzeigt, dass der Angriff erfolgreich war?

tcpdump

Bei dieser Frage könnte es eigentlich mehrere Antworten geben. Wenn wir nach “intercept traffic“ suchen, finden wir einige Tools. Die richtige Antwort bei der Frage ist in dem Fall tcpdump

tools
Da wir für unseren Angriff Metasploit benutzen, wir der tcpdump Part hierbei automatisch von Metasploit für uns übernommen.

  1. Auf welchen Port müssen wir den abgefangenen Verkehr untersuchen?

389

Um zu prüfen ob ein Ziel anfällig für Log4j ist manipulieren wir eine LDAP anfrage und münze diese auf unser System um. Dabei fangen wir den Verkehr auf Port 389 (ldap) ab um zu sehen, ob sich das Ziel meldet.

In unserem Fall erkennen wir das an den Exploit Optionen unseres Exploits.

metasploit config

  1. Auf welchem Port läuft der MongoDB-Dienst?

Für diese Frage müssen wir uns zunächst einmal einen Weg auf das System suchen. Wir müssen also als nächstes unseren gefundenen Exploit entsprechend Konfigurieren.

setup exploit

Mit dem Metasploit Befehl check können wir nun überprüfen, ob das Ziel anfällig ist.

msf check

Anschließend nutzen wir den Befehl exploit um das Ziel final anzugreifen.

exploit

In der Shell angekommen, können wir jetzt mit ps aux | grep mongo prüfen auf welchem Port die MongoDB läuft.

mongodb port

  1. Wie lautet der Standard-Datenbankname für UniFi-Anwendungen?

ace

Die Antwort finden wir mit einem schnellen Googlen heraus.


  1. Wie lautet die Funktion, mit der wir in MongoDB die Benutzer in der Datenbank auflisten?

db.admin.find()

Die Benutzer können wir uns mit der folgenden Query ausgeben.

 mongo --port 27117 ace --eval "db.admin.find().forEach(printjson)"
get user

  1. Welche Funktion verwenden wir, um Benutzer innerhalb der Datenbank in MongoDB zu aktualisieren?

db.admin.update()

Wenn wir uns die Ausgabe von oben ansehen, fällt der Wert von x_shadow auf. Dies ist das gehashte Passwort von dem User.

Wir können versuchen, ein neues Passwort zu generieren und dieses mit dem aktuellen auszutauschen.

mkpasswd -m sha-512 <password-here>
generate new password-hash

Nun können wir das User-Objekt mit dem neuen Passwort-Hash aktualieseren.

mongo --port 27117 ace --eval 'db.admin.update({"_id":ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"NEW-HASH"}})'
update user

Wenn wir die Abfrage von oben jetzt erneut ausführen, sollte der Administrator unseren neuen Hash haben.

double check changes

  1. Wie lautet das Passwort für den Benutzer root?

NotACrackablePassword4U2022

Um jetzt das Passwort für den root User zu erhalten, loggen wir uns im Unifi Portal mit dem administrator und unserem vergeben Passwort ein.

login

Jetzt navigieren wir zu Settings → SItes und scrollen zu “Device Authentication”. Dort können wir uns jetzt das root Passwort anzeigen lassen.

root pass

Flags

Für die Flags loggen wir uns einfach per SSH mit dem root Account ein.

ssh root

User Flag

Die User Flag liegt im Home Verzeichnis von Michael /home/michael

user flag

Root Flag

Die root Flag liegt wie immer im /root Verzeichnis

root flag