
Предоставляет контейнеризированную среду и подписанный шаблон Nuclei для безопасного тестирования CVE-2025-32463, уязвимости повышения привилегий в sudo, с обнаружением и сравнением с исправленной версией.
Это первый случай, когда я портировал вредоносный эксплойт в шаблон Nuclei для неинтрузивного сканирования уязвимостей, которое при этом демонстрирует основную проблему.
Я задокументировал этот процесс более подробно специально как учебное упражнение.
Моими основными трудностями были:
-itags local, поскольку локальный тег игнорируется по умолчанию в настройках .nuclei-ignore.Может показаться странным, что я выбрал среду Windows для этой активности. Дело в том, что Windows — моя операционная система по умолчанию по причинам, которые я здесь не буду обсуждать.
docker-compose up --build -d
Этот шаблон использует code engine, который требует подписи по соображениям безопасности. Шаблон уже подписан в этом репозитории.
Файл docker-compose.yaml настроен на монтирование ваших ключей подписи Nuclei для Windows из %APPDATA%\nuclei\keys в контейнеры. Это позволяет проверить подписанный шаблон.
На хосте Windows (требуется установленный Nuclei).
nuclei -t cve-2025-32463.yaml -sign
Это подпишет шаблон и добавит поле digest.
Примечание: При первом запуске этой команды Nuclei создаст ключи подписи в %APPDATA%\nuclei\keys и запросит:
Linux/macOS/Git Bash:
docker exec -u testuser vulnerable-sudo-target sh -c 'nuclei -itags local -t /tmp/template.yaml -target localhost -code'
Windows PowerShell/CMD:
docker exec -u testuser vulnerable-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Альтернатива (работает на всех платформах):
docker exec -u testuser vulnerable-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Примечания:
-code обязателен для включения шаблонов на основе code protocolsh -c '...', чтобы избежать проблем с преобразованием путей Windows в MSYS2/Git Bash[INF] Executing 1 signed templates from <your-username>Windows PowerShell/CMD:
docker exec -u testuser patched-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
Альтернатива (работает на всех платформах):
docker exec -u testuser patched-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
Примечания:
-code обязателен для включения шаблонов на основе code protocol"..." или альтернативную команду без sh -c[INF] Executing 1 signed templates from <your-username>Если вы хотите проверить уязвимость без подписи шаблона Nuclei, вы можете запустить скрипт эксплойта напрямую:
Скопируйте и запустите скрипт эксплойта.
docker cp exploit.sh vulnerable-sudo-target:/tmp/exploit.sh
docker exec -u testuser vulnerable-sudo-target bash /tmp/exploit.sh
Ожидаемый вывод: woot! с последующей root-оболочкой (в интерактивном режиме).
[CVE-2025-32463] [code] [critical] localhost ["VULNERABLE UID=1000 EUID=0"]
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 140.454595ms. 1 matches found.
Обнаружение подтверждено: UID=1000 EUID=0 доказывает, что код от testuser (1000) выполнялся с привилегиями root (0).
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 143.319373ms. No results found.
Уязвимость не обнаружена — исправленная версия sudo предотвращает загрузку библиотеки.
Подробное техническое объяснение уязвимости, векторов атак и методологии обнаружения см. в документе Технические заметки.