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

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

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

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

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

Категории

Все категории
Loading categories
reconftw — reconFTW — это инструмент, предназначенный для автоматизированной разведки целевого домена путем запуска лучшего набора инструментов для сканирования и выявления уязвимостей. | Kitploit
Инструменты/GitHubGitHub/six2dez/reconftw
OSINT (Разведка открытых источников)РазведкаСканеры уязвимостейOSINT для социальной инженерииСканирование портовПеречисление DNS и поддоменовСкриптинг и автоматизацияСбор информацииВеб-безопасностьТестирование на ПроникновениеБезопасность облачных средПеречисление Поддоменов
8.0k1.2k518 дней назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Сбор Электронной Почты
Анализ DNS
Топ в Перечисление DNS и поддоменов №17
Топ в Сбор Электронной Почты №20
Топ в Сбор информации №6
Топ в OSINT (Разведка открытых источников) №20
Топ в OSINT для социальной инженерии №20
Топ в Разведка №3
Топ в Скриптинг и автоматизация №1
Топ в Перечисление Поддоменов №17
GitHubsix2dez/reconftw

reconftw

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

РепозиторийСайт


reconftw
reconFTW

Release License Closed Issues Discord Telegram Twitter

Docs Bash Script Linux macOS GitHub

GitHub Actions Docker Terraform Ansible Go Python

Buy Me a Coffee GitHub Sponsors PayPal

reconFTW — это мощный автоматизированный инструмент разведки, предназначенный для исследователей безопасности и специалистов по пентесту. Он оптимизирует процесс сбора информации о цели, выполняя перечисление поддоменов, сканирование уязвимостей, OSINT и многое другое. Благодаря модульной архитектуре, обширным возможностям настройки и поддержке распределённого сканирования через AX Framework, reconFTW создан для эффективного получения исчерпывающих результатов.

reconFTW использует широкий спектр техник, включая пассивное и активное обнаружение поддоменов, проверки веб-уязвимостей (например, XSS, SSRF, SQLi), OSINT, фаззинг каталогов, сканирование портов и создание скриншотов. Он интегрируется с передовыми инструментами и API для максимального охвата и точности, гарантируя, что вы будете на шаг впереди в своих разведывательных усилиях.

Ключевые возможности:

  • Комплексное перечисление поддоменов (пассивное, брутфорс, перестановки, прозрачность сертификатов и т. д.)
  • Сканирование уязвимостей XSS, SSRF, SQLi, LFI, SSTI и других
  • OSINT для поиска email-адресов, метаданных, утечек API и ошибок конфигурации сторонних сервисов
  • Распределённое сканирование с помощью AX Framework для ускорения выполнения
  • Настраиваемые рабочие процессы с подробным конфигурационным файлом
  • Интеграция с Faraday для отчётности и визуализации
  • Поддержка развёртывания через Docker, Terraform и Ansible

Отказ от ответственности: Использование reconFTW для атак на цели без предварительного согласия незаконно. Пользователь несёт ответственность за соблюдение всех применимых законов. Разработчики не несут ответственности за неправомерное использование или ущерб, причинённый этим инструментом. Используйте ответственно.


📔 Содержание

  • 📔 Содержание
  • ✨ Возможности
    • OSINT
    • Поддомены
    • Хосты
    • Веб-анализ
    • Проверки уязвимостей
    • Дополнительно
  • 🏗️ Архитектура
  • 💿 Установка
    • Локальная установка (ПК/VPS/VM)
    • Docker
    • Terraform + Ansible
  • Попробовать бета-версию v2 (переписанную на Go)
  • ⚙️ Конфигурация
  • 🚀 Использование
    • Параметры цели
    • Параметры режима
    • Общие параметры
    • Примеры использования
  • ☁️ Поддержка AX Framework (ранее Axiom)
  • 💻 Поддержка Faraday
  • 🧠 Интеграция с ИИ
  • 🗂️ Управление данными
    • Makefile
    • Вручную
  • 🧪 Тестирование
  • Mindmap/Рабочий процесс
  • Пример видео
  • 🤝 Как внести вклад
  • 🔒 Безопасность
  • ❓ Нужна помощь?
  • 💖 Поддержать проект
  • 🙏 Благодарности
  • 📝 Журнал изменений
  • 🛠️ Разработка
  • 📜 Лицензия
  • ⭐ История звёзд

✨ Возможности

reconFTW насыщен функциями, делающими разведку тщательной и эффективной. Ниже приведён подробный обзор его возможностей, обновлённый с учётом последней функциональности скрипта и конфигурации.

OSINT

  • Информация о домене: WHOIS-запрос для получения данных о регистрации домена (whois).
  • Утечки email и паролей: Поиск утёкших email-адресов и учётных данных (emailfinder и LeakSearch).
  • Определение Microsoft 365/Azure: Идентификация тенантов Microsoft 365 и Azure (msftrecon).
  • Извлечение метаданных: Извлечение метаданных из проиндексированных офисных документов (metagoofil).
  • Утечки API: Обнаружение открытых API в публичных источниках (porch-pirate, SwaggerSpy и postleaksNg).
  • Google Dorking: Автоматизированные Google dork-запросы для поиска конфиденциальной информации (dorks_hunter и xnldorker).
  • Анализ GitHub: Сканирование организаций GitHub на предмет репозиториев и секретов с выбираемыми движками (enumerepo, trufflehog, gitleaks, titus, noseyparker).
  • Аудит GitHub Actions (опционально): Аудит артефактов рабочих процессов и CI/CD-поверхности с помощью gato.
  • Ошибки конфигурации сторонних сервисов: Выявление неправильно настроенных сторонних сервисов (misconfig-mapper).
  • Гигиена почты: Проверка конфигурации SPF/DMARC для выявления проблем со спуфингом или доставляемостью.

Поддомены

  • Пассивное перечисление: Использование API и публичных источников для обнаружения поддоменов (subfinder и github-subdomains).
  • Прозрачность сертификатов: Запросы к журналам прозрачности сертификатов (crt).
  • Обнаружение NOERROR: Выявление поддоменов с DNS-ответами NOERROR (dnsx, подробнее здесь).
  • Брутфорс: Выполнение DNS-брутфорса с настраиваемыми словарями (puredns и пользовательские словари).
  • Перестановки: Генерация перестановок поддоменов с использованием ИИ, регулярных выражений и инструментов (Gotator как единственный движок перестановок, а также regulator и subwiz).
  • Веб-скрапинг: Извлечение поддоменов из пассивных источников URL и метаданных живых веб-сайтов (urlfinder, waymore, httpx, csprecon).
  • DNS-записи: Разрешение DNS-записей для поддоменов (dnsx).
  • Google Analytics: Идентификация поддоменов по ID Analytics (AnalyticsRelationships).
  • TLS-рукопожатие: Обнаружение поддоменов через TLS-порты (tlsx).
  • Рекурсивный поиск: Комбинированное рекурсивное пассивное перечисление или брутфорс (dsieve).
  • : Обнаружение уязвимых поддоменов ( и ).

Хосты

  • Информация об IP: Получение данных геолокации и WHOIS (ipinfo).
  • Обнаружение CDN: Выявление IP-адресов за CDN (cdncheck).
  • Обнаружение WAF: Определение межсетевых экранов веб-приложений (wafw00f).
  • Сканирование портов: Активное сканирование с помощью nmap (опционально с предварительным naabu) и пассивное сканирование с помощью smap.
  • Определение сервисов: Определение открытых сервисов на обнаруженных парах хост:порт с помощью nerva.
  • Уязвимости сервисов (опционально): Профиль глубокого сканирования портов может обогащать результаты сопоставлением CVE через vulners.
  • Password Spraying: Попытки password spraying на выявленных сервисах с выбором движка (brutespray или brutus).
  • Геолокация: Сопоставление IP-адресов с географическими местоположениями (ipinfo).
  • Обнаружение IPv6: Опциональное перечисление и сканирование обнаруженных IPv6-целей при включённом параметре IPV6_SCAN.

Веб-анализ

  • Веб-пробирование: Обнаружение живых веб-серверов на стандартных и нестандартных портах ((httpx)).
  • Скриншоты: Создание скриншотов веб-страниц (nuclei).
  • Фаззинг виртуальных хостов: Выявление виртуальных хостов путём фаззинга HTTP-заголовков (VhostFinder).
  • Обнаружение CMS: Определение систем управления контентом (CMSeeK).
  • Извлечение URL: Сбор URL-адресов пассивно и активно (urlfinder, waymore, katana, github-endpoints и JSA).
  • Анализ шаблонов URL: Классификация URL-адресов по шаблонам (urless, gf и gf-patterns).
  • Технологическая разведка по favicon: Определение технологий по хэшам favicon (favirecon).
  • Анализ JavaScript: Извлечение секретов и конечных точек из JS-файлов (subjs, JSA, xnLinkFinder, getjswords, mantra, jsluice).
  • Извлечение source map: Получение конфиденциальных данных из JavaScript source map (sourcemapper).
  • Обнаружение GraphQL: Обнаружение конечных точек GraphQL с помощью nuclei и опциональное углублённое исследование ().

Проверки уязвимостей

  • CVE: Проверка на CVE и распространённые уязвимости nuclei
  • Nuclei DAST: Запуск шаблонов nuclei -dast по собранным URL-адресам и GF-кандидатам для дополнительного покрытия DAST.
  • XSS: Тестирование на уязвимости межсайтового скриптинга (dalfox).
  • SSL/TLS: Проверка ошибок конфигурации SSL/TLS (testssl).
  • SSRF: Тестирование на server-side request forgery (interactsh, значения параметров с помощью ffuf и опциональные полезные нагрузки альтернативных протоколов).
  • CRLF: Проверка на уязвимости внедрения CRLF (crlfuzz).
  • LFI: Тестирование на локальное включение файлов через фаззинг (ffuf).
  • SSTI: Обнаружение server-side template injection (TInjA).
  • SQLi: Тестирование на SQL-инъекции (SQLMap и ghauri).
  • Битые ссылки: Выявление битых ссылок и внешних ссылок, которые, вероятно, могут быть перехвачены (second-order).
  • Внедрение команд: Тестирование на уязвимости внедрения команд (commix).
  • HTTP Request Smuggling: Проверка на уязвимости контрабанды запросов (smugglex).
  • Веб-кэш: Выявление уязвимостей веб-кэша (Web-Cache-Vulnerability-Scanner и ).

Дополнительно- Многопоточность: Оптимизирует производительность (Interlace).

  • Пользовательские резолверы: Генерирует DNS-резолверы (dnsvalidator).
  • Поддержка Docker: Официальный Docker-образ на DockerHub.
  • Развёртывание в AWS: Развёртывается с помощью Terraform и Ansible.
  • Поддержка IP/CIDR: Сканирует диапазоны IP и CIDR-блоки.
  • Возобновление сканирования: Возобновляет сканирование с последнего завершённого шага.
  • Пользовательский вывод: Сохраняет результаты в заданную пользователем директорию.
  • Режим Diff: Выделяет новые находки при последующих сканированиях.
  • Фильтрация по области: Поддерживает списки in-scope и out-of-scope (inscope).
  • Уведомления: Отправляет оповещения через Slack, Discord или Telegram (notify).
  • Архивация результатов: Сжимает и отправляет результаты.
  • Интеграция с Faraday: Экспортирует результаты в Faraday для отчётности.
  • Генерация отчётов с помощью ИИ: Создаёт отчёты с использованием локальных ИИ-моделей (reconftw_ai).
  • Режим быстрого повторного сканирования: Автоматически пропускает тяжёлые этапы, когда не обнаружено новых активов (--quick-rescan / QUICK_RESCAN).
  • Построитель hotlist: Оценивает и выделяет наиболее рискованные активы (hotlist.txt) на основе новых находок.
  • Трассировка команд: Переключение SHOW_COMMANDS для записи каждой выполненной команды в журналы цели для отладки.

🏗️ Архитектура

reconFTW использует модульную архитектуру. Основная точка входа (reconftw.sh) обрабатывает разбор аргументов и подключает 8 специализированных модулей из директории modules/.

Структура директорий```

reconftw/ ├── reconftw.sh # Entry point — arg parsing, module loading, dispatch ├── reconftw.cfg # Default configuration ├── install.sh # Installer ├── Makefile # Data management, lint, fmt, test targets ├── modules/ │ ├── core.sh # Lifecycle, logging, notifications, cleanup (1024 lines) │ ├── modes.sh # Scan modes, argument parsing, help (902 lines) │ ├── subdomains.sh # Subdomain enumeration (1938 lines) │ ├── web.sh # Web analysis, fuzzing, JS checks (1712 lines) │ ├── vulns.sh # Vulnerability scanning (926 lines) │ ├── osint.sh # OSINT functions (500 lines) │ ├── axiom.sh # Ax/Axiom fleet helpers (143 lines) │ └── utils.sh # Utilities, sanitization, validation (508 lines) ├── tests/ │ ├── run_tests.sh # Test runner │ ├── unit/ # bats-core unit tests │ ├── integration/ # Integration tests │ └── fixtures/ # Test data ├── Docker/ │ └── Dockerfile # Official Docker image └── Terraform/ # AWS deployment

root@kitploit:~
### Справочник по модулям

| Модуль | Строк | Назначение |
|--------|------:|---------|
| `core.sh` | 1024 | Управление жизненным циклом, логирование, уведомления, обработчики очистки |
| `modes.sh` | 902 | Определения режимов сканирования, разбор аргументов, вывод справки |
| `subdomains.sh` | 1938 | Все функции перечисления поддоменов |
| `web.sh` | 1712 | Веб-анализ, фаззинг, анализ JS, обнаружение CMS |
| `vulns.sh` | 926 | Сканирование уязвимостей (XSS, SQLi, SSRF и др.) |
| `osint.sh` | 500 | Функции OSINT (WHOIS, электронные письма, дорки, метаданные) |
| `utils.sh` | 508 | Общие утилиты, санитизация ввода, валидация |
| `axiom.sh` | 143 | Управление распределённым парком Ax/Axiom |

Флаг `--source-only` позволяет подключать `reconftw.sh` без выполнения основной логики, что обеспечивает возможность модульного тестирования отдельных функций.

---

## 💿 Установка

reconFTW поддерживает несколько способов установки для различных сред. Убедитесь, что у вас достаточно дискового пространства (рекомендуется не менее 10 ГБ) и стабильное интернет-соединение.

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

1) Клонируйте и установите```yaml
git clone https://github.com/six2dez/reconftw
cd reconftw
./install.sh --verbose
  1. Запустите сканирование (полное + возобновление)```bash ./reconftw.sh -d example.com -r
root@kitploit:~
3) Минимальный запуск (только пассивный след)```bash
./reconftw.sh -d example.com -p

Совет: позже можно повторно запустить ./install.sh --tools, чтобы обновить набор инструментов без переустановки системных пакетов.

Локальная установка (ПК/VPS/VM)

  1. Предварительные требования:

    • Golang: последняя версия (install_golang включена по умолчанию в reconftw.cfg).
    • Права системы: если вы не работаете от root, настройте sudo, чтобы избежать запросов пароля:
      root@kitploit:~
      sudo echo "${USERNAME} ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/reconFTW
      
  2. Шаги: ```bash git clone https://github.com/six2dez/reconftw cd reconftw ./install.sh ./reconftw.sh -d target.com -r

    root@kitploit:~
  3. Примечания:

  • Скрипт install.sh устанавливает зависимости, инструменты и настраивает пути (GOROOT, GOPATH, PATH).
  • Установите install_golang=false в reconftw.cfg, если Golang уже настроен.
  • Для существующих установок запустите ./install.sh --tools, чтобы обновить Go-бинарники, пакеты pipx и репозитории, не затрагивая системные пакеты.
  • Ознакомьтесь с Руководством по установке для получения подробных инструкций.

Docker

  1. Загрузите образ: ```bash docker pull six2dez/reconftw:main
    root@kitploit:~
  2. Запустите контейнер: ```bash docker run -it --rm
    -v "${PWD}/OutputFolder/:/reconftw/Recon/"
    six2dez/reconftw:main -d example.com -r
    root@kitploit:~

Для списка целей примонтируйте файл списка в контейнер и укажите путь внутри контейнера: ```bash docker run -it --rm
-v "${PWD}/domains.txt:/reconftw/domains.txt:ro"
-v "${PWD}/OutputFolder/:/reconftw/Recon/"
six2dez/reconftw:main -l /reconftw/domains.txt -r

root@kitploit:~
3. **Просмотр результатов**:

- Результаты сохраняются в каталоге `OutputFolder` на хосте (не внутри контейнера).

4. **Настройка**:
- Измените Docker-образ или соберите свой собственный; см. [Руководство по Docker](https://github.com/six2dez/reconftw/wiki/4.-Docker).
- Чтобы пропустить инструменты Ax в пользовательских сборках, передайте `--build-arg INSTALL_AXIOM=false`.
- Смонтируйте ваш конфиг notify по пути `~/.config/notify/provider-config.yaml` внутри контейнера, если вы используете уведомления.

5. **Секреты во время выполнения**:

Передавайте API-ключи и секреты через переменные окружения — никогда не встраивайте их в образ:   ```bash
docker run -it --rm \
  -e SHODAN_API_KEY="your-key" \
  -e PDCP_API_KEY="your-projectdiscovery-key" \
  -e COLLAB_SERVER="your-server" \
  -e XSS_SERVER="your-server" \
  -v "${PWD}/OutputFolder/:/reconftw/Recon/" \
  six2dez/reconftw:main -d example.com -r

См. SECURITY.md для полного руководства по управлению секретами.

  1. Проверка работоспособности:

    Docker-образ включает встроенный HEALTHCHECK, который запускает ./reconftw.sh --health-check каждые 60 секунд. Вы также можете запустить его вручную: ```bash docker exec ./reconftw.sh --health-check

    root@kitploit:~

Terraform + Ansible

  • Разверните reconFTW в AWS с помощью Terraform и Ansible.
  • Следуйте инструкциям в Terraform/README.md для настройки.

Пробуем бета-версию v2 (переписанную на Go)

reconFTW переписывается на Go. Переписанная версия поставляется как опциональный предварительный релиз: она указана на странице релизов, и GitHub никогда не указывает releases/latest на предварительный релиз — поэтому если вы ничего не делаете, вы продолжаете получать bash-релиз. Это сделано намеренно.

Бинарный файл Go — это reconftw; точка входа bash — это reconftw.sh. Они не перезаписывают друг друга, поэтому вы можете хранить оба и в любой момент вернуться к предыдущему.

Текущая бета-версия — v5.0.0-beta.1. Она не обслуживается через releases/latest, поэтому вы указываете тег явно:```bash curl -sSL "https://github.com/six2dez/reconftw/releases/download/v5.0.0-beta.1/reconftw_Linux_x86_64.tar.gz" | tar xz sudo install -m 755 reconftw /usr/local/bin/reconftw reconftw version

root@kitploit:~
Выберите подходящий для вашей платформы ассет на
[странице релиза](https://github.com/six2dez/reconftw/releases/tag/v5.0.0-beta.1) — сборки `Darwin`
и `arm64`, статическая сборка musl, а также пакеты `.deb`/`.rpm` — всё публикуется.

- [**Что такое бета, а что нет**](https://github.com/six2dez/reconftw/blob/main/docs/V2-BETA-ANNOUNCEMENT.md) — включая три
  вещи, которые ещё явно не завершены.
- [**Сообщить о проблеме**](https://github.com/six2dez/reconftw/issues/new?template=v2-beta-feedback.md)
  — шаблон обратной связи для v2-беты. Баги в bash-релизе по-прежнему отправляются в обычный шаблон Bug report.


## 🛠️ Устранение неполадок

- Bash 4+ на macOS: Скрипты автоматически перезапускаются под Homebrew Bash. Если вы видите сообщение о Bash < 4, выполните `brew install bash`, откройте новый терминал и повторно запустите `./install.sh`.
- timeout на macOS: macOS предоставляет `gtimeout` через `brew install coreutils`. Скрипты теперь обнаруживают и используют его автоматически.
- Проблемы с сетью: Установщики скрывают большую часть вывода команд. Если что-то не удалось, повторите запуск с `upgrade_tools=true` в `reconftw.cfg`, выполните `./install.sh --tools` или установите недостающий инструмент вручную (ошибка укажет его имя).
- Бинарники GOPATH: Бинарники копируются в `/usr/local/bin`. Если вы предпочитаете иначе, убедитесь, что `~/go/bin` есть в вашем `PATH`.
- Шаблоны Nuclei: Если шаблоны не были клонированы, удалите `~/nuclei-templates` и повторно запустите `./install.sh`.

## 🔑 Чек-лист API (необязательно)

- `subfinder`: `~/.config/subfinder/provider-config.yaml`
- Токены GitHub: `~/Tools/.github_tokens` (по одному в строке)
- Токены GitLab: `~/Tools/.gitlab_tokens` (по одному в строке)
- WHOISXML: задайте `WHOISXML_API` в `reconftw.cfg` или переменной окружения
- Перечисление ASN (`asnmap`): задайте `PDCP_API_KEY` в окружении/конфиге (`ASN_ENUM` пропускается, если не задано)
- Slack/Discord/Telegram: настройте `notify` в `~/.config/notify/provider-config.yaml`
- SSRF-сервер: задайте `COLLAB_SERVER` в env/cfg, если используется
- Blind XSS-сервер: задайте `XSS_SERVER` в env/cfg, если используется

## 💾 Требования

- Диск: рекомендуется 10–20 ГБ свободного места (инструментарий + данные)
- Сеть: стабильное соединение во время установки и обновлений
- ОС: Linux/macOS с Bash ≥ 4
- Дополнительно: `shellcheck` и `shfmt` (необязательно) для `make lint`/`make fmt`

## ⚙️ Конфигурация

Файл `reconftw.cfg` управляет всем выполнением reconFTW. Он позволяет тонко настраивать:

- **Пути к инструментам**: Задайте пути к инструментам, резолверам и словарям (`tools`, `resolvers`, `fuzz_wordlist`).
- **Ключи API**: Настройте ключи для Shodan, WHOISXML и т.д. через переменные окружения или `secrets.cfg` (см. [SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md)).
- **Режимы сканирования**: Включение/отключение модулей (например, `OSINT`, `SUBDOMAINS_GENERAL`, `VULNS_GENERAL`).
- **Производительность**: Настройка потоков, лимитов скорости и таймаутов (например, `FFUF_THREADS`, `HTTPX_RATELIMIT`).
- **Адаптивное ограничение скорости**: Автоматическое снижение нагрузки при ошибках 429/503 (`ADAPTIVE_RATE_LIMIT`, `MIN_RATE_LIMIT`, `MAX_RATE_LIMIT`).
- **Инкрементальное сканирование**: Сканирование только новых находок с прошлого запуска (`INCREMENTAL_MODE`).
- **Уведомления**: Настройка уведомлений Slack, Discord или Telegram (`NOTIFY_CONFIG`).
- **Ax (ранее Axiom)**: Настройка распределённого сканирования и путей к резолверам (`AXIOM_FLEET_NAME`, `AXIOM_FLEET_COUNT`, `AXIOM_RESOLVERS_PATH`).
- **AI-отчёты**: Настройка модели/профиля/формата и элементов управления контекстом (`AI_MODEL`, `AI_REPORT_PROFILE`, `AI_REPORT_TYPE`, `AI_MAX_CHARS_PER_FILE`).
- **Расширенные веб-проверки**: Переключение GraphQL-интроспекции, обнаружения параметров, тестирования WebSocket, проверки gRPC и сканирования IPv6.
- **Автоматизация и данные**: Управление эвристиками быстрого повторного сканирования, логированием ассетов, размерами чанков, хотлистами и трассировкой отладки (`QUICK_RESCAN`, `ASSET_STORE`, `CHUNK_LIMIT`, `HOTLIST_TOP`, `SHOW_COMMANDS`).
- **Диск и логирование**: Предварительная проверка диска (`MIN_DISK_SPACE_GB`), ротация логов (`MAX_LOG_FILES`, `MAX_LOG_AGE_DAYS`), структурированное JSON-логирование (`STRUCTURED_LOGGING`).
- **Кэширование**: Настройка срока действия кэша для словарей и резолверов (`CACHE_MAX_AGE_DAYS`).
- **Безопасность DNS-резолверов**: Отсутствующие файлы резолверов приводят к быстрому сбою, загрузка резолверов использует настраиваемые параметры повторов/таймаутов (`RESOLVER_DOWNLOAD_*`), а таймаут DNS-брутфорса/резолвинга по умолчанию отключён (`DNS_*_TIMEOUT=0`) с прогрессом-пульсом.
- **Секреты**: Используйте `secrets.cfg` для локальных переопределений или переменные окружения для CI/Docker (см. [SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md)).

**Пример конфигурации**:```bash
#############################################
#			reconFTW config file			#
#############################################

# General values
tools=$HOME/Tools   # Path installed tools
if [[ -z "${SCRIPTPATH:-}" ]]; then
	if [[ -n "${BASH_SOURCE[0]:-}" ]]; then
		SCRIPTPATH="$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path
	else
		SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path
	fi
fi
_detected_shell="${SHELL:-/bin/bash}"
profile_shell=".$(basename "${_detected_shell}")rc" # Get current shell profile
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
	reconftw_version="$(git rev-parse --abbrev-ref HEAD)-$(git describe --tags 2>/dev/null || git rev-parse --short HEAD)"
else
	reconftw_version="standalone"
fi # Fetch current reconftw version
DATA_DIR="${SCRIPTPATH}/data"
WORDLISTS_DIR="${DATA_DIR}/wordlists"
PATTERNS_DIR="${DATA_DIR}/patterns"
generate_resolvers=false # Generate custom resolvers with dnsvalidator
update_resolvers=true # Fetch and rewrite resolvers from trickest/resolvers before DNS resolution
resolvers_url="https://raw.githubusercontent.com/trickest/resolvers/main/resolvers.txt"
resolvers_trusted_url="https://gist.githubusercontent.com/six2dez/ae9ed7e5c786461868abd3f2344401b6/raw/trusted_resolvers.txt"
RESOLVER_DOWNLOAD_CONNECT_TIMEOUT=10 # Seconds to wait for resolver download TCP connection
RESOLVER_DOWNLOAD_MAX_TIME=120 # Hard cap in seconds for resolver downloads
RESOLVER_DOWNLOAD_RETRY=2 # Retry count for resolver downloads
RESOLVER_DOWNLOAD_RETRY_DELAY=2 # Delay in seconds between resolver download retries
fuzzing_remote_list="https://raw.githubusercontent.com/six2dez/OneListForAll/main/onelistforallmicro.txt" # Used to send to Ax (if used) on fuzzing
proxy_url="http://127.0.0.1:8080/" # Proxy url
install_golang=true # Set it to false if you already have Golang configured and ready
upgrade_tools=true
upgrade_before_running=false # Upgrade tools before running
#dir_output=/custom/output/path
SHOW_COMMANDS=false # Set true to log every executed command to the per-target log (verbose; may include sensitive data)
MIN_DISK_SPACE_GB=0 # Minimum required disk space in GB before starting reconnaissance (0 to disable check)

# Incremental mode configuration
INCREMENTAL_MODE=false # Only scan new findings since last run (use --incremental flag to enable)
MONITOR_MODE=false # Continuous monitor mode (enabled by --monitor)
MONITOR_INTERVAL_MIN=60 # Minutes between monitoring cycles
MONITOR_MAX_CYCLES=0 # 0 = run forever until interrupted
ALERT_SUPPRESSION=true # Suppress repeated monitor alerts by fingerprint history
ALERT_SEEN_FILE=".incremental/alerts_seen.hashes" # Store of seen alert fingerprints

# Adaptive rate limiting configuration
ADAPTIVE_RATE_LIMIT=false # Automatically adjust rate limits when encountering 429/503 errors (use --adaptive-rate flag to enable)
MIN_RATE_LIMIT=10 # Minimum rate limit (requests per second)
MAX_RATE_LIMIT=500 # Maximum rate limit (requests per second)
RATE_LIMIT_BACKOFF_FACTOR=0.5 # Multiply rate by this when errors occur (0.5 = half speed)
RATE_LIMIT_INCREASE_FACTOR=1.2 # Multiply rate by this on success (1.2 = 20% faster)

# Cache configuration
CACHE_MAX_AGE_DAYS=30 # Maximum age in days for cached wordlists/resolvers (30 = 1 month)
CACHE_MAX_AGE_DAYS_RESOLVERS=7 # Resolver cache TTL
CACHE_MAX_AGE_DAYS_WORDLISTS=30 # Wordlist cache TTL
CACHE_MAX_AGE_DAYS_TOOLS=14 # Tool cache TTL
CACHE_REFRESH=false # Force-refresh cache (or use --refresh-cache)

# Log rotation
MAX_LOG_FILES=10       # Maximum number of log files to keep per target
MAX_LOG_AGE_DAYS=30    # Delete log files older than this many days

# Structured logging configuration (JSON format)
STRUCTURED_LOGGING=false # Enable JSON structured logging for advanced log analysis

# Golang Vars (Comment or change on your own)
export GOROOT="${GOROOT:-/usr/local/go}"
export GOPATH="${GOPATH:-$HOME/go}"
case ":${PATH}:" in
	*":$GOPATH/bin:"*) ;;
	*) PATH="$GOPATH/bin:$PATH" ;;
esac
case ":${PATH}:" in
	*":$GOROOT/bin:"*) ;;
	*) PATH="$GOROOT/bin:$PATH" ;;
esac
case ":${PATH}:" in
	*":$HOME/.local/bin:"*) ;;
	*) PATH="$HOME/.local/bin:$PATH" ;;
esac
export PATH

# Rust Vars (Comment or change on your own)
export PATH="$HOME/.cargo/bin:$PATH"

# Tools config files
#NOTIFY_CONFIG=~/.config/notify/provider-config.yaml # No need to define
GITHUB_TOKENS=${tools}/.github_tokens
GITLAB_TOKENS=${tools}/.gitlab_tokens
#CUSTOM_CONFIG=custom_config_path.txt # In case you use a custom config file, uncomment this line and set your files path

# APIs/TOKENS - Set via environment variables (preferred) or uncomment and edit below.
# Environment variables take precedence if set.
SHODAN_API_KEY="${SHODAN_API_KEY:-}"
WHOISXML_API="${WHOISXML_API:-}"
PDCP_API_KEY="${PDCP_API_KEY:-}"
XSS_SERVER="${XSS_SERVER:-}"
COLLAB_SERVER="${COLLAB_SERVER:-}"
slack_channel="${slack_channel:-}"
slack_auth="${slack_auth:-}"
# For additional secrets, create a secrets.cfg file (gitignored) and it will be auto-sourced

# File descriptors
DEBUG_STD="&>/dev/null" # Skips STD output on installer
DEBUG_ERROR="2>/dev/null" # Skips ERR output on installer

# Osint
OSINT=true # Enable or disable the whole OSINT module
GOOGLE_DORKS=true
GITHUB_DORKS=true
GITHUB_REPOS=true
METADATA=true # Fetch metadata from indexed office documents
EMAILS=true # Fetch emails from differents sites
DOMAIN_INFO=true # whois info
IP_INFO=true    # Reverse IP search, geolocation and whois
API_LEAKS=true # Check for API leaks
API_LEAKS_POSTLEAKS=true # Enhance API leaks with postleaksNg
THIRD_PARTIES=true # Check for 3rd parties misconfigs
SPOOF=true # Check spoofable domains
MAIL_HYGIENE=true # Check DMARC/SPF records
CLOUD_ENUM=true # Enumerate cloud storage across providers with cloud_enum
GITHUB_LEAKS=true # Search for leaked secrets across GitHub with ghleaks
GHLEAKS_THREADS=5 # Concurrent download threads for ghleaks
SECRETS_ENGINE="gitleaks" # gitleaks|titus|noseyparker|hybrid
SECRETS_SCAN_GIT_HISTORY=false # Include git history scans when supported
SECRETS_VALIDATE=false # Validate detected secrets when supported (titus)
GITHUB_ACTIONS_AUDIT=false # Audit GitHub Actions artifacts/workflows with gato
GATO_INCLUDE_ALL_ARTIFACT_SECRETS=false # Include noisy artifact secret matches in gato output

# Subdomains
SUBDOMAINS_GENERAL=true # Enable or disable the whole Subdomains module
SUBPASSIVE=true # Passive subdomains search
SUBCRT=true # crtsh search
CTR_LIMIT=999999 # Limit the number of results
SUBNOERROR=false # Check DNS NOERROR response and BF on them
SUBANALYTICS=true # Google Analytics search
SUBBRUTE=true # DNS bruteforcing
SUBSCRAPING=true # Subdomains extraction from passive URLs and live web metadata
SUBPERMUTE=true # DNS permutations
SUBIAPERMUTE=true # Permutations by AI analysis
SUBREGEXPERMUTE=true # Permutations by regex analysis
GOTATOR_FLAGS=" -depth 1 -numbers 3 -mindup -adv -md" # Flags for gotator
PERMUTATIONS_WORDLIST_MODE=auto # auto|full|short (auto: short if subs > threshold, full if DEEP)
PERMUTATIONS_SHORT_THRESHOLD=100 # Use short wordlist when subdomain count exceeds this
SUBTAKEOVER=true # Check subdomain takeovers, false by default cuz nuclei already check this
SUB_RECURSIVE_PASSIVE=false # Uses a lot of API keys queries
DEEP_RECURSIVE_PASSIVE=10 # Number of top subdomains for recursion
SUB_RECURSIVE_BRUTE=false # Needs big disk space and time to resolve
ZONETRANSFER=true # Check zone transfer
S3BUCKETS=true # Check S3 buckets misconfigs
REVERSE_IP=false # Check reverse IP subdomain search (set True if your target is CIDR/IP)
TLS_PORTS="21,22,25,80,110,135,143,261,271,324,443,448,465,563,614,631,636,664,684,695,832,853,854,990,993,989,992,994,995,1129,1131,1184,2083,2087,2089,2096,2221,2252,2376,2381,2478,2479,2482,2484,2679,2762,3077,3078,3183,3191,3220,3269,3306,3410,3424,3471,3496,3509,3529,3539,3535,3660,36611,3713,3747,3766,3864,3885,3995,3896,4031,4036,4062,4064,4081,4083,4116,4335,4336,4536,4590,4740,4843,4849,5443,5007,5061,5321,5349,5671,5783,5868,5986,5989,5990,6209,6251,6443,6513,6514,6619,6697,6771,7202,7443,7673,7674,7677,7775,8243,8443,8991,8989,9089,9295,9318,9443,9444,9614,9802,10161,10162,11751,12013,12109,14143,15002,16995,41230,16993,20003"
INSCOPE=false # Uses inscope tool to filter the scope, requires .scope file in reconftw folder

# Web detection
WEBPROBEFULL=true # Unified web probing over configured ports
WEBSCREENSHOT=true # Webs screenshooting
VIRTUALHOSTS=false # Check virtualhosts by fuzzing HOST header
UNCOMMON_PORTS_WEB="81,300,591,593,832,981,1010,1311,1099,2082,2095,2096,2480,3000,3001,3002,3003,3128,3333,4243,4567,4711,4712,4993,5000,5104,5108,5280,5281,5601,5800,6543,7000,7001,7396,7474,8000,8001,8008,8014,8042,8060,8069,8080,8081,8083,8088,8090,8091,8095,8118,8123,8172,8181,8222,8243,8280,8281,8333,8337,8443,8500,8834,8880,8888,8983,9000,9001,9043,9060,9080,9090,9091,9092,9200,9443,9502,9800,9981,10000,10250,11371,12443,15672,16080,17778,18091,18092,20720,32000,55440,55672"
WEBPROBE_PORTS="80,443,${UNCOMMON_PORTS_WEB}" # Ports used by webprobe_full

# Host
FAVIRECON=true # Favicon-based technology recon for discovered web targets
PORTSCANNER=true # Enable or disable the whole Port scanner module
GEO_INFO=true # Fetch Geolocalization info
PORTSCAN_PASSIVE=true # Port scanner with Shodan
PORTSCAN_ACTIVE=true # Port scanner with nmap
PORTSCAN_ACTIVE_OPTIONS="--top-ports 200 -sV -n -Pn --open --max-retries 2"
PORTSCAN_DEEP_OPTIONS="--top-ports 1000 -sV -n -Pn --open --max-retries 2 --script vulners"
PORTSCAN_STRATEGY=legacy # legacy|naabu_nmap
NAABU_ENABLE=true
NAABU_RATE=1000
NAABU_PORTS="--top-ports 1000"
SERVICE_FINGERPRINT=true # Fingerprint exposed services with nerva
SERVICE_FINGERPRINT_ENGINE="nerva" # nerva
SERVICE_FINGERPRINT_TIMEOUT_MS=2000 # nerva timeout per target (ms)
PORTSCAN_UDP=false
PORTSCAN_UDP_OPTIONS="--top-ports 20 -sU -sV -n -Pn --open"
CDN_IP=true # Check which IPs belongs to CDN
CDN_BYPASS=true # Try origin IP discovery on CDN-fronted hosts with hakoriginfinder

# Web analysis
WAF_DETECTION=true # Detect WAFs
NUCLEICHECK=true # Enable or disable nuclei
NUCLEI_TEMPLATES_PATH="$HOME/nuclei-templates" # Set nuclei templates path
NUCLEI_SEVERITY="info,low,medium,high,critical" # Set templates criticity
NUCLEI_EXTRA_ARGS="" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh"
#NUCLEI_EXTRA_ARGS="-etags openssh,ssl -eid node-express-dev-env,keycloak-xss,CVE-2023-24044,CVE-2021-20323,header-sql,header-reflection" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh"
NUCLEI_DAST=true # Run additional nuclei -dast module over webs/urls/gf candidates (forced on when VULNS_GENERAL=true, e.g. -a)
URL_CHECK=true # Enable or disable URL collection
URL_CHECK_PASSIVE=true # Search for urls, passive methods from Archive, OTX, CommonCrawl, etc
URL_CHECK_ACTIVE=true # Search for urls by crawling the websites
WAYMORE_TIMEOUT=30m # Timeout for waymore passive URL collection
WAYMORE_LIMIT=5000 # Optional URL collection limit for waymore
URL_GF=true # Url patterns classification
URL_EXT=true # Returns a list of files divided by extension
JSCHECKS=true # JS analysis
FUZZ=true # Web fuzzing
FUZZ_RECURSION_DEPTH=2 # ffuf recursion depth used in DEEP mode
IIS_SHORTNAME=true
CMS_SCANNER=true # CMS scanner
WORDLIST=true # Wordlist generation
ROBOTSWORDLIST=true # Check historic disallow entries on waybackMachine (DEEP mode only)
PASSWORD_DICT=true # Generate password dictionary
PASSWORD_DICT_ENGINE=cewler # cewler|pydictor
PASSWORD_MIN_LENGTH=5 # Min password length
PASSWORD_MAX_LENGTH=14 # Max password length
KATANA_HEADLESS_PROFILE=off # off|smart|full
CLOUD_ENUM_S3_PROFILE=optimized # optimized: quickscan (-qs + safe -m/-b paths) | exhaustive: -m/-b ${tools}/cloud_enum/enum_tools/fuzz.txt (missing fuzz => optimized)
CLOUD_ENUM_S3_THREADS=20 # Threads used by cloud_enum in s3buckets/cloud enumeration

# Vulns
VULNS_GENERAL=false # Enable or disable the vulnerability module (very intrusive and slow)
XSS=true # Check for xss with dalfox
TEST_SSL=true # SSL misconfigs
SSRF_CHECKS=true # SSRF checks
CRLF_CHECKS=true # CRLF checks
LFI=true # LFI by fuzzing
LFI_MAX_URLS=150 # Max single-parameter LFI candidates to test per target (0 = unlimited)
SSTI=true # SSTI by fuzzing
SSTI_ENGINE="TInjA" # SSTI engine
SQLI=true # Check SQLI
SQLMAP=true # Check SQLI with sqlmap
GHAURI=false # Check SQLI with ghauri
BROKENLINKS=true # Check for brokenlinks
BROKENLINKS_ENGINE="second-order" # Broken links engine
SPRAY=true # Performs password spraying
SPRAY_ENGINE="brutespray" # brutespray|brutus
SPRAY_BRUTUS_ONLY_DEEP=true # Run brutus only in DEEP mode unless disabled
BRUTUS_USERNAMES="" # Optional comma-separated usernames for brutus
BRUTUS_PASSWORDS="" # Optional comma-separated passwords for brutus
BRUTUS_KEY_FILE="" # Optional SSH private key path for brutus
COMM_INJ=true # Check for command injections with commix
SMUGGLING=true # Check for HTTP request smuggling flaws
WEBCACHE=true # Check for Web Cache issues
WEBCACHE_TOXICACHE=true # Complement web cache checks with toxicache
BYPASSER4XX=true # Check for 4XX bypasses
FUZZPARAMS=true # Fuzz parameters values

# Extra features
NOTIFICATION=false # Notification for every function
SOFT_NOTIFICATION=false # Only for start/end
DEEP=false # DEEP mode, really slow and don't care about the number of results
DEEP_LIMIT=500 # First limit to not run unless you run DEEP
DEEP_LIMIT2=1500 # Second limit to not run unless you run DEEP
DIFF=false # Diff function, run every module over an already scanned target, printing only new findings (but save everything)
REMOVETMP=false # Delete temporary files after execution (to free up space)
REMOVELOG=false # Delete logs after execution
PROXY=false # Send to proxy the websites found
SENDZIPNOTIFY=false # Send to zip the results (over notify)
PRESERVE=true      # set to true to avoid deleting the .called_fn files on really large scans
FFUF_FLAGS=" -mc all -fc 404 -sf -noninteractive -of json" # Ffuf flags

# HTTP options
HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0" # Default header

# Threads (auto-scaled based on CPU cores, override to set fixed values)
AVAILABLE_CORES=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
FFUF_THREADS=$((AVAILABLE_CORES * 10))
HTTPX_THREADS=$((AVAILABLE_CORES * 12))
HTTPX_UNCOMMONPORTS_THREADS=$((AVAILABLE_CORES * 25))
KATANA_THREADS=$((AVAILABLE_CORES * 5))
BRUTESPRAY_CONCURRENCE=$((AVAILABLE_CORES * 2))
DNSTAKE_THREADS=$((AVAILABLE_CORES * 25))
DALFOX_THREADS=$((AVAILABLE_CORES * 50))
DNS_RESOLVER=auto # auto|puredns|dnsx (auto: detects NAT/CGNAT → dnsx for home, puredns for VPS)
PUREDNS_PUBLIC_LIMIT=0 # Set between 2000 - 10000 if your router blows up, 0 means unlimited
PUREDNS_TRUSTED_LIMIT=400
PUREDNS_WILDCARDTEST_LIMIT=30
PUREDNS_WILDCARDBATCH_LIMIT=1500000
DNSX_THREADS=25 # Threads for dnsx when behind NAT (safe for home routers)
DNSX_RATE_LIMIT=100 # QPS for dnsx
DNSVALIDATOR_THREADS=200
INTERLACE_THREADS=10
LFI_INTERLACE_THREADS=4 # Dedicated interlace concurrency for LFI
TLSX_THREADS=1000
XNLINKFINDER_DEPTH=3

# Rate limits
HTTPX_RATELIMIT=150
NUCLEI_RATELIMIT=150
FFUF_RATELIMIT=0
LFI_FFUF_THREADS=20 # Dedicated ffuf threads for LFI
LFI_FFUF_RATELIMIT=50 # Dedicated ffuf rate limit for LFI

# Timeouts
SUBFINDER_ENUM_TIMEOUT=180          # Minutes
CMSSCAN_TIMEOUT=3600            # Seconds
FFUF_MAXTIME=900                # Seconds
LFI_INTERLACE_TIMEOUT=180       # Seconds per LFI interlace worker
LFI_FFUF_TIMEOUT=10             # Seconds per LFI HTTP request
LFI_FFUF_MAXTIME=90             # Seconds per single LFI ffuf job
LFI_FOLLOW_REDIRECTS=false      # Follow redirects during LFI fuzzing
HTTPX_TIMEOUT=10                # Seconds
HTTPX_UNCOMMONPORTS_TIMEOUT=10  # Seconds
PERMUTATIONS_LIMIT=21474836480  # Bytes, default is 20 GB
DNS_BRUTE_TIMEOUT=0             # timeout/gtimeout duration for DNS bruteforce (0 disables hard-timeout, e.g. 4h)
DNS_RESOLVE_TIMEOUT=0           # timeout/gtimeout duration for DNS resolve (0 disables hard-timeout, e.g. 6h)
DNS_HEARTBEAT_INTERVAL_SECONDS=20 # Progress heartbeat interval for long DNS jobs

# lists
fuzz_wordlist=${WORDLISTS_DIR}/fuzz_wordlist.txt
lfi_wordlist=${WORDLISTS_DIR}/lfi_wordlist.txt
ssti_wordlist=${WORDLISTS_DIR}/ssti_wordlist.txt
subs_wordlist=${WORDLISTS_DIR}/subdomains.txt
subs_wordlist_big=${tools}/subdomains_n0kovo_big.txt
headers_inject=${WORDLISTS_DIR}/headers_inject.txt
resolvers=${tools}/resolvers.txt
resolvers_trusted=${tools}/resolvers_trusted.txt

# Ax Fleet (formerly Axiom — uses attacksurge/ax)
# Resolver paths on Ax instances (change if your fleet uses a different home dir)
AXIOM_RESOLVERS_PATH="/home/op/lists/resolvers.txt"
AXIOM_RESOLVERS_TRUSTED_PATH="/home/op/lists/resolvers_trusted.txt"
# Will not start a new fleet if one exist w/ same name and size (or larger)
# AXIOM=false Uncomment only to overwrite command line flags
AXIOM_FLEET_LAUNCH=true # Enable or disable spin up a new fleet, if false it will use the current fleet with the AXIOM_FLEET_NAME prefix
AXIOM_FLEET_NAME="reconFTW" # Fleet's prefix name
AXIOM_FLEET_COUNT=10 # Fleet's number
AXIOM_FLEET_REGIONS="eu-central" # Fleet's region
AXIOM_FLEET_SHUTDOWN=true # # Enable or disable delete the fleet after the execution
AXIOM_AUTO_FIX_HOSTKEY=true # Auto-repair known_hosts entries on SSH host-key mismatch before fallback to local mode
# This is a script on your reconftw host that might prep things your way...
#AXIOM_POST_START="~/Tools/axiom_config.sh" # Useful  to send your config files to the fleet
AXIOM_EXTRA_ARGS="" # Leave empty if you don't want to add extra arguments
#AXIOM_EXTRA_ARGS=" --rm-logs" # Example

# Faraday-Server
FARADAY=false # Enable or disable Faraday integration
FARADAY_WORKSPACE="reconftw" # Faraday workspace

# AI
AI_EXECUTABLE="python3" # Python executable fallback if reconftw_ai venv python is not available
AI_MODEL="llama3:8b" # Model to use
AI_REPORT_TYPE="md" # Report type to use (md, txt)
AI_REPORT_PROFILE="bughunter" # Report profile to use (executive, brief, or bughunter)
AI_PROMPTS_FILE="" # Optional custom prompts file (empty uses reconftw_ai default)
AI_MAX_CHARS_PER_FILE=50000 # Max chars loaded per file before truncation
AI_MAX_FILES_PER_CATEGORY=200 # Max files loaded per category for AI context
AI_REDACT=true # Redact sensitive indicators before AI analysis
AI_ALLOW_MODEL_PULL=false # Allow reconftw_ai to auto-pull missing model
AI_STRICT=false # Fail AI analysis if one or more categories have no data

# API & Advanced Web Checks
GRAPHQL_CHECK=true # Detect GraphQL endpoints and introspection
GQLSPECTION=false # Run GQLSpection deep introspection on detected GraphQL endpoints (heavier)
PARAM_DISCOVERY=true # Parameter discovery with arjun
GRPC_SCAN=false # Attempt basic gRPC reflection on common ports
LLM_PROBE=false # Probe discovered web/API endpoints for LLM services with julius
LLM_PROBE_AUGUSTUS=false # Include augustus generator config in julius output

# IPv6
IPV6_SCAN=true # Attempt IPv6 discovery/portscan where addresses exist

# Wordlists / threads for new modules
ARJUN_THREADS=10

# Data & Automation
ASSET_STORE=true # Append assets/findings to assets.jsonl
EXPORT_FORMAT="" # Optional exporter at end of scan: json|html|csv|all
REPORT_ONLY=false # Rebuild report artifacts from existing results (or use --report-only)
QUICK_RESCAN=false # Skip heavy steps if no new subdomains/webs
CHUNK_LIMIT=2000 # Split very large lists into chunks (urls, webs)
HOTLIST_TOP=50 # Number of top risky assets to highlight

# Performance
RESOLVER_IQ=false # Prefer fast/healthy resolvers (experimental)
PERF_PROFILE="balanced" # low|balanced|max

# Estimated durations for skipped heavy modules (seconds)
TIME_EST_NUCLEI=600
TIME_EST_FUZZ=900
TIME_EST_URLCHECKS=300
TIME_EST_JSCHECKS=300
TIME_EST_API=300
TIME_EST_GQL=180
TIME_EST_PARAM=240
TIME_EST_GRPC=120
TIME_EST_IIS=60

# TERM COLORS
bred='\033[1;31m'
bblue='\033[1;34m'
bgreen='\033[1;32m'
byellow='\033[1;33m'
red='\033[0;31m'
blue='\033[0;34m'
green='\033[0;32m'
cyan='\033[0;36m'
yellow='\033[0;33m'
reset='\033[0m'

Защитные механизмы DNS-резолверов:

  • Отсутствующие/пустые файлы резолверов теперь приводят к быстрому сбою до начала DNS-брутфорса/резолвинга.
  • Загрузка резолверов настраивается с помощью RESOLVER_DOWNLOAD_CONNECT_TIMEOUT, RESOLVER_DOWNLOAD_MAX_TIME, RESOLVER_DOWNLOAD_RETRY и RESOLVER_DOWNLOAD_RETRY_DELAY.
  • DNS_BRUTE_TIMEOUT=0 и DNS_RESOLVE_TIMEOUT=0 отключают жесткий тайм-аут по умолчанию (рекомендуется для очень больших наборов целей). Прогресс по heartbeat-сигналам по-прежнему выводится каждые DNS_HEARTBEAT_INTERVAL_SECONDS.```bash DNS_BRUTE_TIMEOUT=4h DNS_RESOLVE_TIMEOUT=6h DNS_HEARTBEAT_INTERVAL_SECONDS=20
root@kitploit:~
**Полные сведения**: см. [Руководство по настройке](https://github.com/six2dez/reconftw/wiki/3.-Configuration-file).

---

## 🚀 Использование

reconFTW поддерживает несколько режимов и опций для гибкой разведки. Используйте флаг `-h`, чтобы просмотреть меню справки.

### Опции цели

| Флаг | Описание                                                  |
| ---- | ------------------------------------------------------------ |
| `-d` | Одиночный целевой домен (например, `example.com`)                   |
| `-l` | Файл со списком целевых доменов (по одному в строке)              |
| `-m` | Многоцелевой домен (например, название компании для связанных доменов) |
| `-x` | Исключить поддомены (список вне области действия)                       |
| `-i` | Включить поддомены (список в области действия)                           |

### Опции режима

| Флаг | Описание                                                           |
| ---- | --------------------------------------------------------------------- |
| `-r` | **Разведка**: Полная разведка без активных атак                 |
| `-s` | **Поддомены**: Перечисление поддоменов, веб-проверка и перехваты     |
| `-p` | **Пассивная**: Только пассивная разведка                              |
| `-a` | **Всё**: Полная разведка плюс активные проверки уязвимостей         |
| `-w` | **Веб**: Проверки уязвимостей на конкретных веб-целях                 |
| `-n` | **OSINT**: Сканирование OSINT без перечисления поддоменов или атак        |
| `-z` | **Дзен**: Лёгкая разведка с базовыми проверками и некоторыми уязвимостями |
| `-c` | **Пользовательский**: Запуск конкретной функции (требует дополнительных аргументов)   |
| `-h` | Показать меню справки                                                        |

### Общие опции

| Флаг              | Описание                                              |
| ----------------- | -------------------------------------------------------- |
| `--deep`          | Включить глубокое сканирование (медленнее, рекомендуется VPS)           |
| `-f`              | Путь к пользовательскому файлу конфигурации                           |
| `-o`              | Каталог вывода для результатов                             |
| `-v`              | Включить распределённое сканирование Ax                           |
| `--vps-count`     | Переопределить количество экземпляров флота Ax для этого запуска            |
| `-q`              | Установить ограничение скорости (запросов в секунду)                     |
| `-y`              | Включает анализ результатов с помощью ИИ                              |
| `--check-tools`   | Выйти, если отсутствуют необходимые инструменты                       |
| `--quick-rescan`  | Пропустить тяжёлые модули, если не найдено новых поддоменов/веб-сайтов       |
| `--health-check`  | Запустить проверку работоспособности системы и выйти                         |
| `--incremental`   | Сканировать только новые находки с момента последнего запуска                    |
| `--adaptive-rate` | Автоматически регулировать ограничения скорости при ошибках (429/503)     |
| `--dry-run`       | Показать, что будет выполнено, без запуска команд     |
| `--parallel`      | Запускать независимые функции параллельно (быстрее, больше ОЗУ) |
| `--no-parallel`   | Принудительно последовательное выполнение, даже если параллельность включена   |
| `--monitor`       | Режим непрерывного мониторинга (одиночная цель; `-w` поддерживает `-l`) |
| `--monitor-interval` | Минуты между циклами мониторинга                        |
| `--monitor-cycles`   | Остановиться после N циклов (0 = бесконечно)                    |
| `--report-only`   | Пересобрать артефакты отчёта без сканирования                |
| `--refresh-cache` | Принудительно обновить кэшированные резолверы/списки слов              |
| `--export`        | Экспорт артефактов: `json`, `html`, `csv` или `all`        |

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

1. **Полная разведка по одной цели**:   ```bash
   ./reconftw.sh -d target.com -r
  1. Разведка по нескольким целям: ```bash ./reconftw.sh -l targets.txt -r -o /path/to/output/
    root@kitploit:~
  2. Глубокая разведка (рекомендуется VPS): ```bash ./reconftw.sh -d target.com -r --deep
    root@kitploit:~
  3. Параллельный режим (быстрее, требует больше оперативной памяти): ```bash ./reconftw.sh -d target.com -r --parallel
    root@kitploit:~
  4. Принудительный последовательный режим: ```bash ./reconftw.sh -d target.com -r --no-parallel
    root@kitploit:~
  5. Много-доменная разведка: ```bash ./reconftw.sh -m company -l domains.txt -r
    root@kitploit:~
  6. Интеграция с Ax: ```bash ./reconftw.sh -d target.com -r -v
    root@kitploit:~
  7. Интеграция Ax с переопределением fleet: ```bash ./reconftw.sh -d target.com -r -v 30
    root@kitploit:~
  8. Полная разведка с атаками (режим YOLO): ```bash ./reconftw.sh -d target.com -a
    root@kitploit:~
  9. Показать справку: ```bash ./reconftw.sh -h
root@kitploit:~
11. **Принудительное обновление кэша**:   ```bash
./reconftw.sh -d target.com -r --refresh-cache
  1. Экспорт всех артефактов отчёта: ```bash ./reconftw.sh -d target.com -r --export all
root@kitploit:~
13. **Непрерывный мониторинг (каждые 30 минут, 48 циклов)**:   ```bash
./reconftw.sh -d target.com -r --monitor --monitor-interval 30 --monitor-cycles 48
  1. Только пересборка отчётов (без сканирования): ```bash ./reconftw.sh -d target.com --report-only --export all
root@kitploit:~
**Полное руководство**: См. [Руководство по использованию](https://github.com/six2dez/reconftw/wiki/2.-Usage-Guide).

---

## ☁️ Поддержка Ax Framework (ранее Axiom)

reconFTW интегрируется с [Ax](https://github.com/attacksurge/ax) для распределённого сканирования, сокращая время выполнения за счёт распределения задач между несколькими облачными экземплярами.

- **Настройка**: Выберите `reconftw` в качестве провайдера при настройке Ax (`axiom-configure`).
- **Управление флотом**: Автоматически создавайте и уничтожайте флоты (`AXIOM_FLEET_LAUNCH`, `AXIOM_FLEET_SHUTDOWN`) или используйте существующий флот.
- **Конфигурация**: Задайте размер флота, регион и имя в `reconftw.cfg` (`AXIOM_FLEET_COUNT`, `AXIOM_FLEET_REGIONS`, `AXIOM_FLEET_NAME`).

**Пример**:```bash
./reconftw.sh -d target.com -r -v

Подробности: См. официальную документацию Ax и репозиторий attacksurge/ax.


💻 Поддержка Faraday

reconFTW интегрируется с Faraday для веб-отчетности и управления уязвимостями.

  • Настройка: Установите Faraday, выполните аутентификацию через faraday-cli и настройте рабочее пространство в reconftw.cfg (FARADAY_WORKSPACE).
  • Использование: Включите с помощью FARADAY=true в reconftw.cfg.

🧠 Интеграция с ИИ

reconFTW использует ИИ для генерации подробных отчетов по результатам сканирования с помощью инструмента reconftw_ai.

  • Модель: Настраиваемая модель ИИ (например, llama3:8b через AI_MODEL).
  • Типы отчетов: Markdown или обычный текст (AI_REPORT_TYPE).
  • Профили: Executive, brief или bug hunter (AI_REPORT_PROFILE).
  • Структурированный вывод: reconftw сохраняет машиночитаемый отчет в ai_result/reconftw_analysis.json.
  • Контроль контекста: Ограничьте размер входных данных с помощью AI_MAX_CHARS_PER_FILE и AI_MAX_FILES_PER_CATEGORY.
  • Контроль безопасности: Переключайте редактирование и строгий режим с помощью AI_REDACT и AI_STRICT.

Пример:```yaml AI_EXECUTABLE="python3" AI_MODEL="llama3:8b" AI_REPORT_TYPE="md" AI_REPORT_PROFILE="bughunter" AI_MAX_CHARS_PER_FILE=50000 AI_MAX_FILES_PER_CATEGORY=200 AI_REDACT=true AI_ALLOW_MODEL_PULL=false AI_STRICT=false

root@kitploit:~
---

## 🗂️ Управление данными

Безопасно управляйте данными сканирования и ключами API, используя приватный репозиторий.

Когда `ASSET_STORE=true`, reconFTW агрегирует ключевые результаты в `assets.jsonl` во время каждого запуска, что упрощает синхронизацию только значимых изменений с вашим приватным репозиторием.

### Makefile

Используйте предоставленный `Makefile` для удобного управления репозиторием (требуется [GitHub CLI](https://cli.github.com/)).

1. **Bootstrap**:   ```bash
   export PRIV_REPO="$HOME/reconftw-data"
   make bootstrap
  1. Синхронизация с вышестоящим репозиторием: ```bash make sync
    root@kitploit:~
  2. Загрузка данных: ```bash make upload
    root@kitploit:~
  3. Скрипты линтинга / форматирования: ```bash make lint # shellcheck for reconftw.sh, modules/*.sh & install.sh make fmt # shfmt with project defaults
    root@kitploit:~
  4. Запуск тестов: ```bash make test # unit tests (bats-core) make test-all # unit + integration tests
    root@kitploit:~

Руководство

  1. Создайте приватный репозиторий на GitHub/GitLab.
  2. Клонируйте и настройте: ```bash git clone https://github.com/yourusername/reconftw-data cd reconftw-data git commit --allow-empty -m "Initial commit" git remote add upstream https://github.com/six2dez/reconftw git fetch upstream git rebase upstream/main master
    root@kitploit:~
  3. Загрузка изменений: ```bash git add . git commit -m "Data upload" git push origin master
    root@kitploit:~
  4. Обновление инструмента: ```bash git fetch upstream git rebase upstream/main master
    root@kitploit:~

🧪 Тестирование

reconFTW использует bats-core для автоматизированного тестирования.

Установка bats-core```bash

macOS

brew install bats-core

Debian/Ubuntu

apt install bats

From source

git clone https://github.com/bats-core/bats-core.git /tmp/bats sudo /tmp/bats/install.sh /usr/local

root@kitploit:~
### Запуск тестов```bash
# Unit tests only
make test

# Unit + integration tests
make test-all

# Via the runner script
./tests/run_tests.sh         # unit only
./tests/run_tests.sh --all   # unit + integration

Структура тестового каталога```

tests/ ├── run_tests.sh # Test runner script ├── unit/ # Unit tests (fast, no network) │ ├── test_sanitize.bats │ ├── test_utils.bats │ └── test_validation.bats ├── integration/ # Integration tests (require installed tools) │ └── test_smoke.bats ├── security/ # Security tests (injection, etc.) │ └── test_injection.bats ├── mocks/ # Mock tools for offline testing └── fixtures/ # Shared test data files

root@kitploit:~
### Запуск тестов безопасности```bash
# Test command injection prevention
make test-security

# Or directly
bats tests/security/

Написание тестов

Тесты используют паттерн --source-only для загрузки функций без выполнения основного скрипта:```bash #!/usr/bin/env bats

setup() { source ./reconftw.sh --source-only }

@test "sanitize_domain strips invalid chars" { result="$(sanitize_domain 'exam;ple.com')" [ "$result" = "example.com" ] }

root@kitploit:~
### CI Pipeline

Рабочий процесс GitHub Actions (`.github/workflows/tests.yml`) запускается при каждом push и pull request:

1. **ShellCheck** — проверяет `reconftw.sh`, `modules/*.sh` и `install.sh`
2. **Модульные тесты** — запускает все файлы `tests/unit/*.bats`
3. **Интеграционные тесты** — устанавливает reconFTW и проверяет доступность инструментов

---

## Mindmap/Workflow

![Mindmap](https://assets.kitploit.com/production/public/readmes/670/935e9af062e82113e5ca06f4b13e80f243430684e8ece2643e868f3d2afa1403.png)

---

## Пример видео

![Video](https://raw.githubusercontent.com/six2dez/reconftw/HEAD/images/reconFTW.gif)

---

## 🤝 Как внести вклад

См. [CONTRIBUTING.md](https://github.com/six2dez/reconftw/blob/main/CONTRIBUTING.md) для полного руководства по внесению вклада, включая настройку среды разработки, стиль кода, тестирование и процесс pull request.

Быстрые ссылки:

- [Сообщить об ошибке](https://github.com/six2dez/reconftw/issues/new/choose)
- [Отправить pull request](https://github.com/six2dez/reconftw/tree/dev) (целевая ветка — `dev`)
- [Кодекс поведения](https://github.com/six2dez/reconftw/blob/main/CODE_OF_CONDUCT.md)

---

## 🔒 Безопасность

По вопросам политики безопасности, управления секретами и сообщения об уязвимостях см. [SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md).

---

## ❓ Нужна помощь?

- **Wiki**: Изучите [reconFTW Wiki](https://github.com/six2dez/reconftw/wiki).
- **FAQ**: Ознакомьтесь с [FAQ](https://github.com/six2dez/reconftw/wiki/7.-FAQs).
- **Сообщество**: Присоединяйтесь к [Discord-серверу](https://discord.gg/R5DdXVEdTy) или [Telegram-группе](https://t.me/joinchat/TO_R8NYFhhbmI5co).

---

## 💖 Поддержка проекта

Поддержите разработку reconFTW через:

- **Buy Me a Coffee**: [buymeacoffee.com/six2dez](https://www.buymeacoffee.com/six2dez)

[<img src="https://assets.kitploit.com/production/public/readmes/670/1177bf77de4c288d45b816dd405a8b5027116f0b1893449986cf200c765707ad.webp">](https://www.buymeacoffee.com/six2dez)

- **Реферальная программа DigitalOcean**: [Реферальная ссылка](https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)

<a href="https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>

- **Спонсорство через GitHub**: [github.com/sponsors/six2dez](https://github.com/sponsors/six2dez)

---

## 🙏 Благодарности

Особая благодарность следующим сервисам за поддержку reconFTW:

- [C99](https://api.c99.nl/)
- [CIRCL](https://www.circl.lu/)
- [NetworksDB](https://networksdb.io/)
- [ipinfo](https://ipinfo.io/)
- [hackertarget](https://hackertarget.com/)
- [Censys](https://censys.io/)
- [Fofa](https://fofa.info/)
- [intelx](https://intelx.io/)
- [Whoxy](https://www.whoxy.com/)

---

## 📝 Журнал изменений

См. [CHANGELOG.md](https://github.com/six2dez/reconftw/blob/main/CHANGELOG.md) для подробного списка изменений в каждом релизе.

---

## 🛠️ Разработка

### Структура проекта```
reconftw/
├── reconftw.sh          # Main entry point (~500 lines)
├── reconftw.cfg         # Configuration file
├── modules/             # Phase modules
│   ├── utils.sh         # Utilities, sanitization, caching, circuit breaker
│   ├── core.sh          # Framework core, logging, lifecycle, health check
│   ├── modes.sh         # Scan modes, argument parsing
│   ├── subdomains.sh    # Subdomain enumeration
│   ├── web.sh           # Web analysis, nuclei scans
│   ├── vulns.sh         # Vulnerability scanning
│   ├── osint.sh         # OSINT functions
│   └── axiom.sh         # Ax/Axiom fleet helpers
├── lib/                 # Pure utility libraries
│   └── validation.sh    # Input validation functions
├── tests/               # Test suite (100+ tests)
│   ├── unit/            # Unit tests (bats)
│   ├── integration/     # Integration/smoke tests
│   └── security/        # Injection prevention tests
├── docs/                # Documentation
│   └── ARCHITECTURE.md  # Detailed architecture guide
└── secrets.cfg.example  # Template for API keys

Запуск тестов```bash

make test # Unit tests make test-security # Security tests make test-all # All tests make lint # Shellcheck make lint-fix # Auto-fix with shfmt

root@kitploit:~
### Процесс разработки```bash
# 1. Source without executing (for testing)
source ./reconftw.sh --source-only

# 2. Test individual functions
sanitize_domain "test;domain.com"

# 3. Run health check
./reconftw.sh --health-check

# 4. Dry run to preview
./reconftw.sh -d example.com -r --dry-run

Вклад в проект

Рекомендации по разработке см. в CONTRIBUTING.md, технические детали — в docs/ARCHITECTURE.md.


📜 Лицензия

reconFTW распространяется под лицензией MIT.


⭐ История звёзд

Star History Chart

Скачать инструмент
  • Перечисление облачных хранилищ: Обследование бакетов крупнейших провайдеров на предмет открытого доступа (cloud_enum).
  • Поддомены, уязвимые для спуфинга: Проверка доменов на уязвимость к спуфингу (spoofcheck).
  • Перехват поддоменов
    nuclei
    dnstake
  • DNS Zone Transfer: Проверка неправильно настроенных DNS zone transfer (dig).
  • Облачные бакеты: Выявление неправильно настроенных облачных бакетов и открытых ресурсов хранения (S3Scanner и cloud_enum).
  • Примечание о покрытии облака: Проверки облачных бакетов больше не включают покрытие Alibaba OSS после замены CloudHunter на cloud_enum.
  • Миграция облачных результатов: Устаревшие артефакты бакетов cloudhunter_* удалены; вместо них используйте subdomains/cloud_enum_buckets_trufflehog.txt.
  • Обратный поиск по IP: Обнаружение поддоменов по диапазонам IP (hakip2host).
  • GQLSpection
  • Обнаружение параметров: Брутфорс скрытых параметров на конечных точках (arjun).
  • Аудит WebSocket: Проверка handshake-обновлений и обработки origin на конечных точках ws:// и wss://.
  • gRPC Reflection: Проверка распространённых gRPC-портов на предмет открытой рефлексии сервисов (grpcurl).
  • Определение LLM-сервисов (опционально): Проверка обнаруженных веб/API-конечных точек на предмет открытых LLM-сервисов с помощью julius.
  • Фаззинг: Выполнение фаззинга каталогов и параметров (ffuf).
  • Сортировка по расширениям файлов: Организация URL-адресов по расширениям файлов.
  • Генерация словарей: Создание пользовательских словарей для фаззинга.
  • Словарь паролей: Генерация словарей паролей из живого контента (cewler).
  • Сканирование IIS shortname: Обнаружение уязвимостей IIS shortname (shortscan).
  • toxicache
  • Обход 4XX: Попытки обхода ответов 4XX (nomore403).
  • Фаззинг параметров: Фаззинг параметров URL на предмет уязвимостей (nuclei).
  • Хранилище активов: Добавляет находки в assets.jsonl для последующей автоматизации, когда включён ASSET_STORE.
  • Консолидированный отчёт: Автоматически генерирует report/report.json и report/index.html по завершении сканирования.
  • Поддержка ARM: Совместим с Raspberry Pi и ARM-архитектурами (включая MacOS MX).
  • Проверка работоспособности: Встроенная проверка системы через --health-check (также используется Docker HEALTHCHECK).
  • Инкрементальный режим: Сканирует только новые находки с момента последнего запуска (--incremental).
  • Адаптивное ограничение скорости: Автоматически снижает нагрузку при ошибках 429/503 (--adaptive-rate).
  • Структурированное журналирование: Опциональный вывод журналов в формате JSON для расширенного анализа (STRUCTURED_LOGGING).
  • Очистка ввода: Весь пользовательский ввод очищается для предотвращения инъекций команд.
  • Режим пробного запуска: Предварительный просмотр того, что будет выполнено, без запуска команд (--dry-run).
  • Параллельный режим: Запускает независимые функции параллельно для более быстрого сканирования (--parallel, отключение через --no-parallel).
  • Модульная архитектура: Кодовая база разделена на 8 специализированных модулей для удобства сопровождения.
  • Управление секретами: Переменные окружения, secrets.cfg и секреты Docker runtime (см. SECURITY.md).
  • Автоматический выключатель: Автоматически пропускает инструменты после повторных сбоев, чтобы избежать зависания сканирования.
  • Система контрольных точек: Возобновляет прерванные сканирования с последней успешной фазы.
  • Нативная поддержка macOS: Полная совместимость с macOS (BSD coreutils, Homebrew Bash 4+).