
Universal Plug and Fuzz
UFuzz, или Universal Plug and Fuzz, — это автоматический инструмент для фаззинга UPnP. Он перечисляет все UPnP-конечные точки в сети, находит доступные сервисы и проводит их фаззинг. Он также умеет фаззить HTTP, используя логи прокси Burp.
Он предназначен для фаззинга встраиваемых систем и поэтому является однопоточным. Кроме того, он имеет очень ограниченный набор полезных нагрузок, поскольку фаззинг таких систем может быть медленным. Некоторые полезные нагрузки, такие как слепые SQL-инъекции (blind SQLi) и внедрение команд, полагаются на задержки для определения успешности инъекции и могут давать ложные срабатывания. Другие полезные нагрузки, такие как форматные строки и переполнения буфера, предназначены для использования специального монитора для обнаружения сбоев.
Включены примеры конфигурационных модулей и модулей мониторинга. Специальные мониторы позволяют использовать телеметрию целевой системы для обнаружения сбоев. Примеры модулей предоставлены для обнаружения сбоев на основе telnet и последовательной консоли.
Обратите внимание, что код довольно сырой. Пожалуй, лучше всего его описать словом “hacky”. К сожалению, этот проект был написан быстро и ни разу не был как следует спроектирован. В ближайшие месяцы я планирую это исправить.
Наконец, часть кода была заимствована из других проектов:
Код UPnP в значительной степени основан на коде miranda Крейга Хеффнера. Крейг служит для меня источником вдохновения, и я настоятельно рекомендую почитать его блог /dev/ttys0.
Часть кода генерации тестовых наборов основана на проекте Metafuzz Бена Надя.
Код для работы с сокетами и разбора HTTP основан на Excon.
UFuzz протестирован с Ruby 1.9.3 и Ruby 2.1.1. Вы можете установить все необходимые гемы, выполнив bundle install в каталоге UFuzz.
Запустите ufuzz с опцией -h, чтобы увидеть все параметры командной строки. При работе инструмента логи записываются в каталог log.
Для базового фаззинга всех UPnP-устройств в сети просто запустите ufuzz --upnp. Вероятно, вам также понадобится опция -v 4, чтобы видеть запросы и сводки ответов.