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

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

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

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

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

Категории

Все категории
Loading categories
OneForAll — Инструмент для перечисления поддоменов с более чем 50 модулями сбора, DNS-брутфорсом, пассивным анализом DNS, прозрачностью сертификатов, извлечением данных из поисковых систем и обнаружением захвата поддоменов для разведки. | Kitploit
Инструменты/GitHubGitHub/shmilylty/oneforall
OSINT (Разведка открытых источников)РазведкаСбор информацииТестирование на ПроникновениеПеречисление ПоддоменовАнализ DNS
GitHubshmilylty/oneforall

OneForAll

Инструмент для перечисления поддоменов с более чем 50 модулями сбора, DNS-брутфорсом, пассивным анализом DNS, прозрачностью сертификатов, извлечением данных из поисковых систем и обнаружением захвата поддоменов для разведки.

Репозиторий
10.0k1.4k534 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll — мощный инструмент для сбора поддоменов 📝English Document

Example

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

📢 Обязательно уделите время прочтению этого документа, это поможет быстро освоить OneForAll!

🐍Требования к установке

OneForAll разработан и протестирован на Python 3.6.0. Для работы OneForAll требуется версия Python выше 3.6.0. Инструкцию по установке Python можно найти в Руководстве по установке Python 3. Выполните следующие команды для проверки версий Python и pip3:

root@kitploit:~
python -V
pip3 -V

Если вы видите примерно такой вывод, значит с окружением Python всё в порядке:

root@kitploit:~
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
✔Шаги установки (версия git)
  1. Загрузка

Поскольку проект находится в разработке и постоянно обновляется, при загрузке используйте git clone для клонирования актуального репозитория. Это также удобно для последующего обновления. Не рекомендуется загружать из Releases, так как там версии обновляются реже и неудобно обновляться. Репозиторий также зеркалирован на Gitee. Для пользователей из Китая рекомендуется клонировать оттуда:

root@kitploit:~
git clone https://gitee.com/shmilylty/OneForAll.git

Или:

root@kitploit:~
git clone https://github.com/shmilylty/OneForAll.git
  1. Установка

Вы можете установить зависимости OneForAll с помощью pip3. Ниже приведён пример установки зависимостей с помощью pip3 в Windows: Примечание: если ваш Python3 установлен в системную директорию Program Files, например C:\Program Files\Python36, запускайте командную строку от имени администратора при выполнении следующих команд!

root@kitploit:~
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help

Для других операционных систем обратитесь к Установке зависимостей. Если во время установки зависимостей возникла ошибка компиляции какой-либо библиотеки, смотрите раздел . Если проблема не решается, присоединяйтесь к группе для обратной связи.

✔Шаги установки (версия docker)

Сначала загрузите и отредактируйте конфигурационные файлы, добавьте свои api и личные настройки, сохранив исходную структуру файлов:

root@kitploit:~
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py

Запустите образ, заменив ~/.config на путь к вашей папке с конфигурационными файлами:

root@kitploit:~
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

Параметры добавляются в конец команды. Результаты будут сохранены в локальную директорию ~/results. При необходимости путь можно изменить.

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

Если вы установили зависимости через pip3, запустите пример следующими командами:

root@kitploit:~
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run

Example

🧐Описание результатов

Рассмотрим команду python3 oneforall.py --target example.com run. При выполнении с параметрами по умолчанию OneForAll создаст соответствующие результаты в директории results:

Result

example.com.csv — результаты сбора поддоменов для каждого основного домена.

all_subdomain_result_1583034493.csv — сводный файл с результатами всех поддоменов за один запуск OneForAll, включающий example.com.csv. Удобен для получения полных результатов в сценариях массового сбора.

result.sqlite3 — база данных SQLite3, хранящая результаты сбора поддоменов за каждый запуск. Структура базы данных показана ниже:

Database

Таблицы вида example_com_origin_result содержат первоначальные результаты сбора поддоменов каждого модуля.

Таблицы вида example_com_resolve_result содержат результаты разрешения поддоменов.

Таблицы вида example_com_last_result содержат результаты предыдущего сбора (создаются после двух и более запусков).

🤔Справка по использованию

Параметры командной строки предоставляют лишь часто используемые опции. Более детальная настройка параметров описана в setting.py. Если вы считаете, что какой-то параметр часто используется в командном интерфейсе или чего-то не хватает, приветствуются отзывы. По известным причинам, если необходимо использовать заблокированные интерфейсы сбора, сначала настройте прокси в setting.py. Некоторые модули сбора требуют API (большинство можно получить бесплатно после регистрации). Если нужно их использовать, сконфигурируйте API в api.py. Если не используете, игнорируйте соответствующие сообщения об ошибках. (Подробнее о модулях читайте в Описании модулей сбора.)

Интерфейс командной строки OneForAll построен на Fire. Более продвинутое использование Fire см. в Использование CLI Fire.

oneforall.py — главная точка входа. oneforall.py может вызывать модули brute.py, takerover.py и dbexport.py и др. Для удобства перебора поддоменов выделен brute.py, для проверки рисков перехвата поддоменов — takerover.py, для экспорта базы данных — dbexport.py. Эти модули могут запускаться отдельно и принимают больше параметров. Для их самостоятельного использования см. Справку по использованию.

🎉Введение в проект

Адрес проекта: https://github.com/shmilylty/OneForAll

В тестировании на проникновение важность сбора информации очевидна. Сбор поддоменов — обязательная и очень важная часть этого процесса. В настоящее время существует множество открытых инструментов для сбора поддоменов, но у них часто есть следующие проблемы:

  • Недостаточная мощность: мало интерфейсов для сбора поддоменов, отсутствие автоматического сбора для пакетных поддоменов, нет автоматического разрешения, проверки, фаззинга и расширения информации.
  • Недостаточно удобный интерфейс: хотя модуль командной строки удобен, при большом количестве опций и сложных операциях командный режим становится неудобным. Было бы лучше иметь интерактивный, высокофункциональный интерфейс.
  • Отсутствие поддержки: многие инструменты не обновлялись годами, issues и PR отсутствуют.
  • Проблемы производительности: отсутствие многопроцессорности, многопоточности и асинхронных корутин приводит к низкой скорости.

Чтобы решить эти проблемы, был создан данный проект. Как следует из названия, я надеюсь, что OneForAll станет универсальным, мощным и быстрым инструментом для сбора поддоменов. 🔨

В настоящее время OneForAll находится в разработке, несомненно, есть много недостатков и мест для улучшения. Приветствуются Issues и PR. Если инструмент вам нравится, поставьте звездочку ✨. Существует группа QQ для общения и обратной связи по OneForAll 👨‍👨‍👦‍👦: 824414244 (проверка при вступлении: сбор информации)

👍Функциональные возможности

  • Мощный сбор: подробное описание модулей см. в Описании модулей сбора.
    1. Сбор поддоменов с использованием прозрачности сертификатов (в настоящее время 6 модулей: censys_api, certspotter, crtsh, entrust, google, spyse_api)
    2. Обычная проверка для сбора поддоменов (4 модуля: использование уязвимости передачи зоны axfr, проверка политики междоменных запросов cdx, проверка HTTPS-сертификата cert, проверка политики безопасности контента csp, проверка robots.txt robots, проверка sitemap.xml sitemap, обход DNS-зоны через NSEC-записи dnssec. В будущем будут добавлены модули NSEC3 и др.)

Если у вас есть отличные идеи, обязательно сообщите мне! 😎

🌲Структура каталогов

Более подробную информацию см. в Описании структуры каталогов.

В папке docs также содержатся справки, например Источники словарей поддоменов, Схема определения wildcard.

👏Используемые фреймворки

  • aiohttp — асинхронный HTTP-клиент/сервер
  • beautifulsoup4 — библиотека Python для извлечения данных из HTML/XML
  • fire — автоматическая генерация CLI из любого Python-объекта
  • loguru — библиотека для удобного логирования
  • massdns — высокопроизводительный DNS-резолвер
  • records — простая и мощная библиотека для сырых SQL-запросов к реляционным базам данных
  • requests — единственная не генномодифицированная Python HTTP-библиотека, безопасная для человека
  • tqdm — быстрый, расширяемый индикатор прогресса для Python и CLI

Спасибо этим замечательным библиотекам Python!

🔖Контроль версий

Проект использует семантическое версионирование SemVer. Историю изменений можно найти в журнале изменений.

⌛Планы на будущее

  • Постоянная оптимизация и доработка модулей
  • Реализация мощного, удобного фронтенд-интерфейса

Подробнее см. в Плане разработки.

🙏Вклад

Горячо приветствуется участие всех желающих в улучшении проекта!

👨‍💻Участники

  • Jing Ling
    • Основной разработчик

Список всех участников и их вклад можно найти в документе об участниках. Спасибо им за то, что сделали OneForAll мощнее и удобнее.

☕Пожертвования

Если проект помог вам, вы можете угостить автора чашкой кофе :)

📄Лицензия

Проект распространяется под лицензией GPL-3.0. Подробнее см. в LICENSE.

😘Благодарности

Спасибо всем проектам с открытым исходным кодом по сбору поддоменов!

Спасибо команде A-Team за горячие и бескорыстные ответы на вопросы!

📜Отказ от ответственности

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

💖Тренд звёзд

Stargazers over time

Скачать инструмент
Часто задаваемые вопросы и ответы
  1. Обновление

Выполните следующие команды для обновления проекта (изменения в /config/setting.py и /config/api.py будут сохранены):

root@kitploit:~
git stash        # временно сохранить локальные изменения
git fetch --all  # загрузить обновления проекта
git pull         # применить обновления
git stash pop    # восстановить локальные изменения

Таблицы вида example_com_now_result содержат текущие результаты сбора. Обычно достаточно следить именно за этой таблицей.

Дополнительную информацию см. в Пояснении полей.

❗Внимание: если в процессе использования возникают вопросы или затруднения, сначала выполните поиск в Issues. Также можно прочитать Часто задаваемые вопросы и ответы.

Справка по oneforall.py

Следующая справка может быть не самой актуальной. Используйте python oneforall.py --help для получения актуальной информации.

root@kitploit:~
python oneforall.py --help
root@kitploit:~
NAME
    oneforall.py - Справка OneForAll

SYNOPSIS
    oneforall.py COMMAND | --target=TARGET <flags>

DESCRIPTION
    OneForAll — мощный инструмент для сбора поддоменов

    Example:
        python3 oneforall.py version
        python3 oneforall.py --target example.com run
        python3 oneforall.py --targets ./domains.txt run
        python3 oneforall.py --target example.com --valid None run
        python3 oneforall.py --target example.com --brute True run
        python3 oneforall.py --target example.com --port small run
        python3 oneforall.py --target example.com --fmt csv run
        python3 oneforall.py --target example.com --dns False run
        python3 oneforall.py --target example.com --req False run
        python3 oneforall.py --target example.com --takeover False run
        python3 oneforall.py --target example.com --show True run

    Note:
        Параметр alive может принимать значения True, False для экспорта только живых или всех поддоменов
        Параметр port может принимать значения 'default', 'small', 'large', подробнее в config.py
        Параметр fmt может принимать форматы 'csv', 'json'
        Параметр path по умолчанию None используется для указания пути к результатам OneForAll

ARGUMENTS
    TARGET
        Одиночный домен (обязательный параметр из двух)
    TARGETS
        Путь к файлу с доменами (по одному на строку) (обязательный параметр из двух)

FLAGS
    --brute=BRUTE
        Перебор поддоменов (по умолчанию False)
    --dns=DNS
        Разрешение DNS для поддоменов (по умолчанию True)
    --req=REQ
        HTTP-запросы к поддоменам (по умолчанию True)
    --port=PORT
        Диапазон портов для проверки поддоменов (по умолчанию только 80 порт)
    --valid=VALID
        Экспортировать только живые поддомены (по умолчанию False)
    --fmt=FMT
        Формат сохранения результатов (по умолчанию csv)
    --path=PATH
        Путь сохранения результатов (по умолчанию None)
    --takeover=TAKEOVER
        Проверить возможность перехвата поддоменов (по умолчанию False)
  • Сбор с использованием архивов веб-сканеров (2 модуля: archivecrawl, commoncrawl — эти модули ещё в разработке)
  • Сбор с использованием наборов DNS-данных (24 модуля: bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)
  • Сбор с помощью DNS-запросов (5 модулей: перебор распространённых SRV-записей srv, а также запросы MX, NS, SOA, TXT записей домена)
  • Сбор с использованием платформ Threat Intelligence (6 модулей: alienvault, riskiq_api, threatbook_api, threatminer, virustotal, virustotal_api — последний ещё дорабатывается)
  • Обнаружение поддоменов через поисковые системы (18 модулей: ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api). За исключением специальных поисковых систем, все поддерживают автоматическое исключение, полный и рекурсивный поиск.
  • Поддержка перебора поддоменов: модуль включает обычный перебор по словарю и кастомный режим fuzz. Поддерживается массовый и рекурсивный перебор, автоматическое обнаружение и обработка wildcard-записей.
  • Поддержка проверки поддоменов: по умолчанию включена проверка: автоматическое разрешение DNS поддоменов, автоматический HTTP-запрос для получения title и banner, комплексная оценка жизнеспособности поддомена.
  • Поддержка краулинга поддоменов: на основе уже имеющихся поддоменов выполняется запрос к их контенту и JavaScript, откуда извлекаются новые поддомены.
  • Поддержка подстановки поддоменов: на основе существующих поддоменов с использованием техники подстановки находятся новые.
  • Поддержка проверки на перехват поддоменов: по умолчанию включена проверка риска перехвата, поддерживается автоматический перехват (пока только для Github, дорабатывается). Поддерживается массовая проверка.
  • Мощная обработка результатов: найденные поддомены автоматически очищаются, выполняется DNS-разрешение, HTTP-проверка, отбор только валидных поддоменов, расширение баннерной информации. Поддерживаемые форматы экспорта: txt, csv, json.
  • Высокая скорость: модули сбора используют многопоточность; модуль перебора использует massdns со скоростью разрешения более 350 000 доменов в секунду; DNS-разрешение и HTTP-запросы при проверке используют асинхронные корутины, многопоточную проверку рисков перехвата.
  • Удобство использования: у каждого модуля есть индикатор прогресса, результаты сохраняются асинхронно.