Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!
Joomla-CMS-Full-Lifecycle-Pentest — Ein umfassendes Penetrationstest-Projekt über den gesamten Lebenszyklus gegen Joomla 4.2.5, das CVE-2023-23752 in einer dockerisierten Laborumgebung ausnutzt. | Kitploit
Ein umfassendes Penetrationstest-Projekt über den gesamten Lebenszyklus gegen Joomla 4.2.5, das CVE-2023-23752 in einer dockerisierten Laborumgebung ausnutzt.
Penetrationstest über den gesamten CMS-Lebenszyklus (Joomla 4.2.5)
📌 Projektübersicht
Dieses Projekt demonstriert einen Penetrationstest über den gesamten Lebenszyklus, der an einem Open-Source-CMS (Joomla 4.2.5) durchgeführt wurde. Der gesamte Test folgt standardisierten Methodiken (OWASP/PTES) von der Laborbereitstellung bis hin zu Ausnutzung, Post-Exploitation und Übernahme des Administratorkontos.
🛠️ Phase 1: Leitfaden zur Laborbereitstellung (Schritt für Schritt)
Befolgen Sie diese genauen Schritte, um diese verwundbare Umgebung in Ihrer lokalen Infrastruktur bereitzustellen und zu replizieren.
Schritt 1: Zielmaschine vorbereiten (VM-Server)
Schalten Sie Ihre Ziel-Ubuntu-VM ein und verbinden Sie sich per SSH (oder öffnen Sie das Terminal direkt in der VM).
Installieren Sie Docker und das Compose-Dienstprogramm basierend auf Ihrer Ubuntu-Version:
Öffnen Sie eine neue Datei namens docker-compose.yml mit dem Nano-Editor:
root@kitploit:~
nano docker-compose.yml
Kopieren Sie den vollständigen Inhalt der in diesem Repository verfügbaren Datei docker-compose.yml und fügen Sie ihn im Terminal ein.
Speichern und beenden Sie den Editor, indem Sie Ctrl + O drücken, dann Enter, dann Ctrl + X.
Schritt 3: Umgebung ausführen
Starten Sie die Container im Hintergrund (Detached-Modus), indem Sie Folgendes ausführen:
root@kitploit:~
sudo docker compose up -d
Warten Sie einen Moment, bis der Download abgeschlossen ist. Überprüfen Sie, ob die Dienste aktiv ausgeführt werden:
root@kitploit:~
sudo docker compose ps
Schritt 4: Zugriff und Konfiguration von der Host-Maschine (Angreifer-Box)
Wechseln Sie zurück zu Ihrer Haupt-Host-Maschine (oder Kali-Linux-Box).
Öffnen Sie Ihren Webbrowser und navigieren Sie zur IP-Adresse der Ziel-VM auf Port 8080:
root@kitploit:~
http://<YOUR_VM_IP>:8080
Folgen Sie dem Joomla-Installationsassistenten und geben Sie diese genauen Datenbank-Anmeldedaten ein, um die Container zu verknüpfen:
Datenbanktyp/-verbindung: MySQL (PDO)
Hostname:db
Benutzername:joomla_user
Passwort:joomlapassword
Datenbankname:joomla_db
🔍 Phase 2: Aufklärung & Scannen
In der Rolle eines Angreifers wurden Netzwerk- und CMS-spezifische Scan-Tools von Kali Linux aus eingesetzt:
Nmap: Durchgeführt, um offene Ports und Dienste auf Port 8080 zu identifizieren.
JoomScan / CMSeek: Verwendet, um die genaue CMS-Version (Joomla 4.2.5) zu identifizieren.
⚡ Phase 3: Schwachstellenanalyse & Ausnutzung
Basierend auf dem Versions-Fingerprinting führte die Schwachstellenforschung zur Entdeckung von CVE-2023-23752 (Unzureichende Zugriffskontrolle in der Joomla-Core-API).
Angriffsausführung:
Mithilfe des Metasploit-Frameworks (msfconsole) wurde das spezielle Exploit-Modul gegen das Ziel ausgeführt:
Ergebnis: Die Datenbank-Anmeldedaten im Klartext (joomla_user / joomlapassword) wurden erfolgreich extrahiert.
🔑 Phase 4: Post-Exploitation & Kontoubernahme
In einer realen Bewertung eskalieren Fehlkonfigurationen oft. Um Credential Reuse zu testen, wurde das geleakte Datenbankpasswort verwendet, um eine administrative Übernahme zu versuchen:
Navigierte zum Joomla-Administrator-Login-Dashboard (/administrator).
Testete das extrahierte Datenbankpasswort am Admin-Login-Panel.
Erfolgreich als Super User authentifiziert, wodurch vollständiger administrativer Zugriff auf die CMS-Kernkonfiguration erlangt wurde, ohne Alarme auszulösen.
📝 Phase 5: Behebung & Gegenmaßnahmen
Um das System gegen CVE-2023-23752 abzusichern:
Update: Aktualisieren Sie Joomla sofort auf Version 4.2.8 oder höher.
Netzwerksicherheit: Beschränken Sie den Zugriff auf die /api-Endpunkte mithilfe von Web Application Firewalls (WAF) oder Konfigurationssperren auf Serverebene.