
Быстрый, точный сканер захвата поддоменов с нулевым количеством ложных срабатываний. Обнаруживает уязвимые поддомены, собирает метаданные (IP, CNAME, заголовок, код состояния) и предоставляет анализ с помощью ИИ для разведки.
Subdosec
Сканер захвата поддоменов и инструмент рекогносцировки.

Установка • Использование • Веб-версия • Вклад • Онлайн-сканирование • Благодарности
Subdosec — это быстрый и точный сканер захвата поддоменов без ложных срабатываний, с публичной базой данных уязвимых поддоменов и подробными метаданными неуязвимых (IP, CNAME, заголовок и код состояния) для рекогносцировки.
Установка или обновление subdosec
pipx install git+https://github.com/xcapri/subdosec.git
pipx upgrade subdosec
Затем выполняйте это каждый раз при запуске нового сеанса терминала (до появления сообщения «server started successfully»).
$ subdosec -ins
Запуск сервера Node.js...
Сервер Node.js успешно запущен.
[ПРЕДУПРЕЖДЕНИЕ] Не захватывайте все поддомены в test.txt, пусть все используют его для демонстрации.
[ИНФОРМАЦИЯ] Также проверьте раздел Релизы. Там можно найти интересную информацию.
$ subdosec -h
_____ __ __
/ ___/__ __/ /_ ____/ /___ ________ _____
\__ \/ / / / __ \/ __ / __ \/ ___/ _ \/ ___/
___/ / /_/ / /_/ / /_/ / /_/ (__ ) __/ /__
/____/\__,_/_.___/\__,_/\____/____/\___/\___/
usage: subdosec [-h] [-mode {private,public}] [-initkey INITKEY] [-vo] [-pe] [-ins] [-pf PF] [-subfng SUBFNG] [-lf LF] [-sfid] [-ks] [-o O] [-su] [-lu LU] [-lm] [-uf] [-unai UNAI] [-v] [-t THREADS]
Сканер захвата поддоменов.
options:
-h, --help показать это сообщение и выйти
-mode {private,public}
Режим работы (private/public)
-initkey INITKEY Инициализация API-ключа
-vo Только уязвимые: скрывать сообщения UNDETECT
-pe Вывод ошибок: при возникновении проблем с определением цели
-ins Подготовить node и запустить сервер
-pf PF Частный отпечаток: использует ваш локальный отпечаток. Пример: -pf /path/to/tko.json
-subfng SUBFNG Отправить отпечаток: отправить локальный отпечаток администратору. Пример: -subfng localfinger.json
-lf LF Блокировка отпечатка: для фокусировки на одном или нескольких отпечатках. (-lf github.io,surge.sh) и без этого аргумента сканируются все отпечатки
-sfid Показать все доступные идентификаторы отпечатков.
-ks Остановить серверный узел, если вы не планируете использовать subdosec в течение длительного времени.
-o O Сохранить результат локально в указанный путь. Пример: -o /path/to/dir
-su Пропустить undetect: не сохранять на сервер (https://subdosec.vulnshot.com/result/undetected)
-lu LU Undetected сохранённый локально: сохранить в указанный путь. Пример: -lu /path/to/dir
-lm Локальный режим: сохранять уязвимые и undetect по умолчанию в каталог инструмента (авто -su)
-uf Обновить отпечатки
-unai UNAI Анализировать неопределённые поддомены с помощью ИИ. Пример: -unai /path/to/undetect.json
-v, --verbose Показывать счётчик прогресса (например, [1/10])
-t THREADS, --threads THREADS
Количество потоков для сканирования (по умолчанию: 10)
Подготовить список
Поддерживает работу без протокола
cat list
https://careers.rotacloud.com
http://creators.thinkorion.com
https://docs.polygon-nightfall.technology
a.anchorsawaytpt.com
help.oceges.com
Команда 1
Пропустить сохранение undetect на сервер и сохранить локально
cat test.txt | subdosec -lm
https://subdosec.vulnshot.com [UNDETECT]
http://feedback.bazoom.com [sleekplan.com] [VULN] [SAVED]
http://demodev.destinojet.co [meteor.com] [VULN] [SAVED]
http://creators.thinkorion.com [UNDETECT]
https://www.www.savillerow.status.lnt.cl [ohdear.app] [VULN] [SAVED]
https://careers.rotacloud.com [gohire.io] [VULN] [SAVED]
https://careers.rotacloud.com [gohire.io] [VULN] [SAVED]
https://ai.yooture.com [UNDETECT]
https://help.oceges.com [UNDETECT]
http://ftp.thiagolima.com [surge.sh] [VULN] [SAVED]
VULN DIRECTORY : /home/alice/.subdosec/vulns
UNDETECT FILE : /home/alice/.subdosec/undetect/undetect.json
Чтение вывода
~$ ls /home/alice/.subdosec/vulns
gohire.io_tko.txt meteor.com_tko.txt ohdear.app_tko.txt sleekplan.com_tko.txt surge.sh_tko.txt
~$ cat /home/alice/.subdosec/vulns/gohire.io_tko.txt
careers.rotacloud.com
Чтение undetect и автоматический анализ новых потенциальных уязвимостей с помощью -unai
cat /home/alice/.subdosec/undetect/undetect.json
[
{
"title": "No title found",
"status_code": 404,
"redirect_url": "No redirects",
"cname_records": [
"cname.redacted.com"
],
"a_records": [
"76.76.21.98",
"76.76.21.241"
],
"subdomain": "try.redacted.com",
"rootdomain": "redacted.com"
},
{
"title": "No title found",
"status_code": 200,
"redirect_url": "No redirects",
"cname_records": [
"cname.fermat.shop"
],
"a_records": [
"216.150.16.129",
"216.150.1.129"
],
"subdomain": "get.redacted.com",
"rootdomain": "redacted.com"
}
]
subdosec -unai /home/pd/.subdosec/undetect/undetect.json
[INFO] PURE UNDETECTED 0 | Поддомены не обнаружены как уязвимые, хотя прошли сканирование subdosec..
[INFO] Анализируется 8 элементов в 2 пакетах.
[INFO] Прогресс: проанализировано 5/8 данных.
NEW POTENTIAL :
Domain : try.redacted.com
CNAME : cname.redacted-service.com
A Record : 76.76.21.98, 76.76.21.241
Takeover : NOT
Reason : В руководстве по настройке пользовательского домена redacted-service прямо указано требование добавления TXT-записи (например, 'redacted-service-verification=<your_site_id>') для подтверждения владения доменом. Наличие этапа проверки TXT-записи исключает уязвимость.
Reference: https://www.redacted-service.com/blog/how-to-setup-custom-domain/
================================================================================
Domain : get.redacted.com
CNAME : cname.fermat.shop
A Record : 216.150.16.129, 216.150.1.129
Takeover : POSSIBLE
Reason : Сервис использует статический CNAME (cname.fermat.shop) для настройки пользовательского домена. В общедоступной документации Fermat по настройке пользовательского домена чётко не указано требование TXT-записи или любого другого динамического метода проверки владения доменом. Без такой проверки статический CNAME делает поддомен потенциально уязвимым, если соответствующая учётная запись Fermat будет удалена или отвязана.
Reference: https://fermat.shop/
================================================================================
Команда 2
Использование корневого домена и пайплайн инструментов для поиска поддоменов (например, subfinder, assetfinder, amass и т.д.)
cat list
example.com
cat list | subfinder -silent | subdosec -lm
https://subdosec.vulnshot.com [UNDETECT]
http://feedback.bazoom.com [sleekplan.com] [VULN] [SAVED]
http://demodev.destinojet.co [meteor.com] [VULN] [SAVED]
http://creators.thinkorion.com [UNDETECT]
https://www.www.savillerow.status.lnt.cl [ohdear.app] [VULN] [SAVED]
https://careers.rotacloud.com [gohire.io] [VULN] [SAVED]
https://careers.rotacloud.com [gohire.io] [VULN] [SAVED]
https://ai.yooture.com [UNDETECT]
https://help.oceges.com [UNDETECT]
http://ftp.thiagolima.com [surge.sh] [VULN] [SAVED]
VULN DIRECTORY : /home/alice/.subdosec/vulns
UNDETECT FILE : /home/alice/.subdosec/undetect/undetect.json
Команда 3
(Передача результата в notify)
cat list | subdosec -lm -vo | notify -silent
https://careers.rotacloud.com [100.00%] [gohire.io] [VULN] [SAVED]
Команда 4
Использование частного отпечатка: этот флаг автоматически объединяет публичный и частный отпечатки
cat priv8.json
{
"fingerprints": [
{
"fid": 0,
"name": "Захват поддомена - Pagedeck",
"rules": {
"cname": "cname.pagedeck.com",
"status_code": "404",
"in_body":"This page could not be found."
},
"status_fingerprint": 0,
"reference": "https://docs.pagedeck.com/getting-started/connecting-a-subdomain",
"service": "pagedeck.com",
"logo_service": "https://i.ytimg.com/vi/DY76Tjf1m-8/maxresdefault.jpg"
},
добавьте ещё
]}
echo try.hugsleep.com | subdosec -pf privfinger.json -o testpriv -lu okgaslu
_____ __ __
/ ___/__ __/ /_ ____/ /___ ________ _____
\__ \/ / / / __ \/ __ / __ \/ ___/ _ \/ ___/
___/ / /_/ / /_/ / /_/ / /_/ (__ ) __/ /__
/____/\__,_/_.___/\__,_/\____/____/\___/\___/
https://try.hugsleep.com [pagedeck.com] [VULN] [SAVED]
VULN DIRECTORY : /home/pd/tko/testpriv
UNDETECT FILE : /home/pd/tko/okgaslu/undetect.json
Зная функции веб-версии subdosec, вы можете использовать функцию https://subdosec.vulnshot.com/result/undetected для рекогносцировки, чтобы узнать IP, CNAME, TITLE, STATUS CODE и т.д. для получения дополнительной информации или даже для поиска новых захваченных поддоменов.
Она имеет ту же функцию, что и undetect.json, отличие в том, что вы и другие люди делятся ею друг с другом.
Например, вы ищете сайт, который не был обнаружен как уязвимый с помощью subdosec, по ключевому слову 404, и есть информация о cname.gohire.io и заголовке GoHire, и если вы поищете в Google, то не найдёте статей о захвате поддомена для сервиса gohire.

После того как вы найдёте новый захват поддомена, вручную или автоматически (с помощью -unai), вы можете отправить нам данные с помощью команды subdosec -subfng.
Динамически вы можете использовать эти элементы для правил:
title, cname, status_code, in_body, a_record, redirect
cat newvuln.json
{
"name": "Захват поддомена - GoHire",
"rules": {
"cname": "custom.gohire.io",
"in_body": "Page not found",
"status_code": "404"
},
"status_fingerprint": 0,
"reference": "https://help.gohire.io/en/articles/3385288-setting-up-a-custom-domain",
"service": "gohire.io",
"logo_service": "https://gohire-website.s3.amazonaws.com/img/logos/gh-logo-main.gif"
}
subdosec -subfng newvuln.json
[Info] Отправка отпечатка ...
Данные отпечатка успешно импортированы
Если вы не являетесь специалистом по безопасности, возможно, вы веб-разработчик/программист и не знакомы с инструментами командной строки. Вы можете использовать веб-версию для сканирования всех своих поддоменов, максимум 10 поддоменов за одно сканирование.

Предшествующие инструменты, которые вдохновили на создание subdosec.
subdosec распространяется по лицензии MIT License