Привет, Хабр! Прошло достаточно много времени с написания моей первой статьи о сканере, который принёс мне выплату в багбаунти. Кто не знает, его суть в получении технологий на сайте, после чего проверки на CVE в массовом обличье. Сегодня я бы хотел рассказать о том, как он эволюционировал, какие были исправления и новшества.

Fullmute scanner

Критика и советы сообщества

Ни один хороший инструмент не смог бы дорасти до своих масштабов без критики и советов более опытного окружения. Это не обошло и меня. Если разбирать конкретно критику, то большая доля легла именно на обход Cloudflare и работу с сигнатурами. А советов было куда больше, но я выделю основное. Самый главный совет, обработка которого по итогу заняла самое большое время, — это создание user-friendly интерфейса. Позже мы разберём каждое из этого. Также советы были: сделать отложенное сканирование и задавать порты, на которых могут стоять технологии.

Обход cloudflare

Честно говоря, я всё ещё считаю себя новичком, особенно в этом вопросе, но что-то я сделать всё-таки смог. Была произведена замена обычного requests на Playwright, что, по моей логике, должно помочь в обходе Cloudflare. Также немного поиграл с заголовками запросов, чтобы сделать их более легитимными для сайта.

Работа с сигнатурами

Да, здесь первая версия FullMute очень сильно уступает второй. Были добавлены новые технологии (напомню, по желанию вы сами можете настраивать). В итоге я гораздо более тщательно изучил технологии, чтобы подобрать для них те сигнатуры, которые будут давать меньше ложных срабатываний. Также были изменены сигнатуры чувствительных файлов по типу /.git/, так как даже если они были на сайте, из-за слишком строгих правил оно не помечало их как найденные.

Web UI интерфейс

Один из моих давних знакомых, который только недавно начал увлекаться пентестом, сказал: «Для новичка работать с CLI куда сложнее, попробуй создать UI». Взяв его слова во внимание, я начал работу. Интерфейс я решил сделать очень близким к Acunetix, не знаю почему, просто он мне нравится. Взял за основу Flask + Jinja. При запуске генерируется ключ, по которому можно войти в веб-интерфейс. В целом там ничего особенного: дашборд, добавление сайтов, сканирование и отчётность. Единственное, что хотел бы выделить, — это создание новых пользователей (условно, если работаете не один), а также добавление API-ключа от NVD без изменения файлов.

Новшества

Тут бы я хотел остановиться более тщательно. Как и говорилось выше, было добавлено отложенное сканирование, чтобы можно было постоянно быть в курсе состояния сайта. Но я считаю, что это совсем не главная фишка. Всё, что я буду описывать дальше, — это рациональные решения, которые при желании можно не включать. Одно из моих любимых — это поиск эксплойтов по найденным CVE. Сделал я это достаточно просто, добавив интеграцию с SearchSploit и вывод результатов. Одно из не менее важных, особенно когда мы говорим о сканировании камер и роутеров, — это подбор стандартных учётных данных по типу admin:admin и т.д. Сканер делает это автоматически с помощью анализа HTML и того же Playwright. Ну и самая незначительная фишка — это проверка определённых портов (настраиваемая), чтобы не упустить какие-то технологии, недоступные из веба.

Что дальше?

Я считаю, что FullMute уже считается (лично для меня) законченным инструментом, осталось лишь добавить незначительные правки, которые я упустил в разработке. Но новых фишек, думаю, ждать не стоит. За это время я проделал долгий путь в его разработке: были и грустные моменты, когда я скрыл его и потерял все звёзды на GitHub, так и хорошие, когда его публиковали в некоторых ИБ-сообществах. В общем, я надеюсь, что мой инструмент полезен исследователям, и буду рад критике и советам по его улучшению.