Автоматизация внешней разведки и поиск уязвимостей с reconFTW

Каждый специалист по безопасности или багхантер проходил через этот этап. Вы садитесь изучать периметр цели и открываете с десяток вкладок терминала. В одной крутится сбор поддоменов, во второй работает резолвер DNS, в третьей ползет веб-краулер, а в четвертой генерируются скриншоты. Через пару дней такой рутины в папке проекта появляется самописный скрипт на коленке, который пытается склеить вывод всех этих инструментов пайпами.
Испанский исследователь с ником six2dez довел эту идею до предела. Его проект reconFTW превратился из скромного скрипта в полноценный комбайн для автоматизации разведки и поиска уязвимостей на внешнем периметре.
Что умеет проект
По своей сути reconFTW объединяет десятки специализированных утилит в единый конвейер. Он берет целевой домен или список диапазонов IP-адресов, прогоняет их через несколько стадий анализа и выдает структурированные отчеты.

Если разобрать процесс на конкретные блоки, инструмент закрывает четыре основных направления:
- Разведка поддоменов и DNS. Скрипт совмещает пассивные источники вроде crt.sh и GitHub с брутфорсом через
puredns. Дальше в ход идут генерация перестановок с помощьюGotatorи проверка резолвинга черезdnsx. - Анализ веб-приложений. На живых хостах утилита вытягивает эндпоинты с помощью
katanaи архивов Wayback Machine, разбирает JavaScript-файлы черезjsluiceи вытаскивает скрытые параметры запросов сarjun. - Поиск уязвимостей. В боевом режиме запускаются шаблоны
nuclei, проверяются инъекции черезdalfoxиsqlmap, тестируются ошибки конфигурации SSL и CORS, а также утечки облачных хранилищ S3 черезcloud_enum. - Мониторинг и контроль окружения. Система умеет работать в инкрементальном режиме, подсвечивать только новые находки относительно прошлого сканирования и распределять нагрузку на облачные виртуальные машины через Ax Framework.

Архитектура и технические особенности
Раньше проект представлял собой монолитный bash-скрипт на несколько тысяч строк. Поддерживать такую простыню кода было тяжело, поэтому кодовую базу переписали. Теперь логика разделена на восемь модулей:
core.shотвечает за жизненный цикл, логирование и перехват сигналов завершения.subdomains.shизолирует всю работу с DNS и перебором имен.web.shиvulns.shсодержат вызовы краулеров, фаззеров и сканеров уязвимостей.osint.sh,axiom.shиutils.shберут на себя вспомогательную работу, распределенный запуск и валидацию входных данных.
Для тестирования функций авторы используют фреймворк bats-core. Скрипт можно запускать с флагом --source-only, что позволяет прогонять юнит-тесты на проверку санитизации доменов или парсинга аргументов прямо в GitHub Actions.
Параллельно в репозитории идет бета-тестирование пятой версии — автор постепенно переписывает всю логику на Go, чтобы избавиться от капризных bash-зависимостей и ускорить параллельную обработку данных.
Быстрый старт и режимы работы
Развернуть инструмент можно прямо на рабочей машине или через Docker. Локальная установка требует около 10-15 ГБ свободного места, потому что инсталлятор стягивает внушительный набор утилит на Go и Python.
git clone https://github.com/six2dez/reconftw
cd reconftw
./install.sh
Если не хочется засорять хостовую систему сотней бинарников, используйте готовый образ:
docker run -it --rm \
-v "${PWD}/OutputFolder/:/reconftw/Recon/" \
six2dez/reconftw:main -d target.com -r
Флаги запуска определяют глубину погружения:
- Пассивная разведка без шума в логах:
./reconftw.sh -d example.com -p
- Стандартный цикл сканирования с сохранением прогресса:
./reconftw.sh -d example.com -r
- Инкрементальный мониторинг каждые полчаса:
./reconftw.sh -d example.com -r --monitor --monitor-interval 30
Все параметры настраиваются в файле reconftw.cfg. Там задаются потоки, таймауты, списки доверенных DNS-резолверов и API-ключи для внешних сервисов.
С какими трудностями можно столкнуться
Первый подводный камень связан с сетью. При активном брутфорсе DNS утилита puredns способна мгновенно положить домашний роутер огромным количеством UDP-пакетов. Если запускаете сканирование из дома, переключите в конфигурации переменную DNS_RESOLVER на значение dnsx или используйте VPS.
Второй момент касается времени работы. Полный цикл с активными проверками (-a) на широком скоупе может выполняться сутками. Для регулярных задач практичнее использовать режим -r вместе с ключом --quick-rescan, который пропускает тяжелые этапы фаззинга, если на цели не появилось новых поддоменов.
Кому пригодится проект
reconFTW хорошо подойдет инженерам безопасности, которым нужно регулярно осматривать периметр своей организации с точки зрения внешнего атакующего. Также проект экономит массу времени участникам программ bug bounty и пентестерам на этапе сбора вводных данных.
Если вы устали вручную связывать утилиты между собой, этот комбайн определенно стоит запустить на тестовой цели и оценить его отчеты.
