
Sudomy — это инструмент для перечисления поддоменов, предназначенный для сбора поддоменов и анализа доменов с выполнением автоматизированной разведки (recon) для поиска уязвимостей / пентеста.
Sudomy — это инструмент для перебора поддоменов, сбора поддоменов и анализа доменов с выполнением автоматизированной разведки (фреймворк). Этот инструмент также может использоваться для OSINT (разведки по открытым источникам).
Активный метод
Пассивный метод
Путем оценки и выбора хороших сторонних сайтов/ресурсов процесс перебора можно оптимизировать. За меньшее время будет получено больше результатов. Sudomy может собирать данные с этих 22 тщательно отобранных сторонних сайтов:
https://censys.io
https://developer.shodan.io
https://dns.bufferover.run
https://index.commoncrawl.org
https://riddler.io
https://api.certspotter.com
https://api.hackertarget.com
https://api.threatminer.org
https://community.riskiq.com
https://crt.sh
https://dnsdumpster.com
https://docs.binaryedge.io
https://securitytrails.com
https://graph.facebook.com
https://otx.alienvault.com
https://rapiddns.io
https://spyse.com
https://urlscan.io
https://www.dnsdb.info
https://www.virustotal.com
https://threatcrowd.org
https://web.archive.org
Как работает Sudomy или поток разведки, когда вы запускаете лучшие аргументы для сбора поддоменов и анализа с автоматической разведкой.
root@maland: ./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze -sS
Это рабочий процесс разведки Sudomy v1.1.8#dev

Файлы подробной информации о разведке и сочных данных
------------------------------------------------------------------------------------------------------
- subdomain.txt -- Список поддоменов < $DOMAIN (Цель)
- httprobe_subdomain.txt -- Проверка поддоменов < subdomain.txt
- webanalyzes.txt -- Сканирование технологий < httprobe_subdomain.txt
- httpx_status_title.txt -- заголовок+код состояния+длина < httprobe_subdomain.txt
- dnsprobe_subdomain.txt -- Разрешение поддоменов < subdomain.txt
- Subdomain_Resolver.txt -- Разрешение поддоменов (альт.) < subdomain.txt
- cf-ipresolv.txt -- Сканирование Cloudflare < ip_resolver.txt
- Live_hosts_pingsweep.txt -- Проверка живых хостов < ip_resolver.txt
- ip_resolver.txt -- Список IP-адресов < Subdomain_Resolver::dnsprobe
- ip_dbasn.txt -- Проверка номера ASN < ip_resolver.txt
- vHost_subdomain.txt -- Виртуальный хост (группировка по IP) < Subdomain_Resolver.txt
- nmap_top_ports.txt -- Активное сканирование портов < cf-ipresolv.txt
- ip_dbport.txt -- Пассивное сканирование портов < cf-ipresolv.txt
------------------------------------------------------------------------------------------------------
- Passive_Collect_URL_Full.txt -- Полный список всех URL-обходов (WebArchive, CommonCrawl, UrlScanIO)
------------------------------------------------------------------------------------------------------
- ./screenshots/report-0.html -- Отчет по скриншотам < httprobe_subdomain.txt
- ./screenshots/gowitness/gowitness.sqlite3 -- База данных скриншотов < httprobe_subdomain.txt
------------------------------------------------------------------------------------------------------
- ./interest/interesturi-allpath.out -- Интересные пути (/api, /git и т.д.) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-doc.out -- Интересные документы (doc, pdf, xls) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-otherfile.out -- Другие файлы (.json, .env и т.д.) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-js.out -- Все JavaScript-файлы (*.js) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-nodemodule.out -- Файлы из /node_modules/ < Passive_Collect_URL_Full.txt
- ./interest/interesturi-param-full.out -- Полный список параметров < Passive_Collect_URL_Full.txt
- ./interest/interesturi-paramsuniq.out -- Уникальный список параметров < Passive_Collect_URL_Full.txt
- Примечание: вы можете проверять сочные/интересные URL/параметры с помощью urlprobe или httpx, чтобы избежать ложных срабатываний.
------------------------------------------------------------------------------------------------------
- ./takeover/CNAME-resolv.txt -- CNAME Resolver < subdomain.txt
- ./takeover/TakeOver-Lookup.txt -- DNSLookup < CNAME-resolv.txt
- ./takeover/TakeOver-nxdomain.txt -- Другие сторонние платформы < TakeOver-Lookup.txt
- ./takeover/TakeOver.txt -- Проверка уязвимости < CNAME-resolv.txt
------------------------------------------------------------------------------------------------------
- ./wordlist/wordlist-parameter.lst -- Генерация словаря параметров < Passive_Collect_URL_Full.txt
- ./wordlist/wordlist-pathurl.lst -- Генерация списка путей < Passive_Collect_URL_Full.txt
- Примечание: этот словарь основан на информации о домене и поддоменах (пути, файлы, строки запроса и параметры).
------------------------------------------------------------------------------------------------------
Sudomy использует меньше ресурсов благодаря использованию сторонних сайтов/ресурсов. Оценивая и выбирая хорошие сторонние сайты/ресурсы, процесс перебора можно оптимизировать. Домен, использованный в этом сравнении: tiket.com.
Ниже приведены результаты пассивного тестирования DNS-перебора с помощью Sublist3r v1.1.0, Subfinder v2.4.5 и Sudomy v1.2.0.
Здесь subfinder по-прежнему классифицируется как очень быстрый для сбора поддоменов, используя довольно много ресурсов. Особенно если используемые ресурсы были оптимизированы (?).
Результаты компиляции и видео можно посмотреть здесь:
Когда у меня будет свободное время. Возможно, в будущем Sudomy тоже будет использовать Go. Если вы хотите внести вклад, pull request открыты.
Sudomy в настоящее время расширен следующими инструментами. Инструкции по установке и использованию приложения приведены ниже.
# Clone this repository
git clone --recursive https://github.com/screetsec/Sudomy.git
$ python3 -m pip install -r requirements.txt
Sudomy требует jq и GNU grep для запуска и парсинга. Информацию о загрузке и установке jq можно найти здесь.
# Linux
apt-get update
apt-get install jq nmap phantomjs npm chromium parallel
npm i -g wappalyzer wscat
# Mac
brew cask install phantomjs
brew install jq nmap npm parallel grep
npm i -g wappalyzer wscat
# Note
All you would need is an installation of the latest Google Chrome or Chromium
Set the PATH in rc file for GNU grep changes
# Pull an image from DockerHub
docker pull screetsec/sudomy:v1.2.1-dev
# Create output directory
mkdir output
# Run an image, you can run the image on custom directory but you must copy/download config sudomy.api on current directory
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v "${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -t --rm screetsec/sudomy:v1.1.9-dev [argument]
# or define API variable when executed an image.
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -e "SHODAN_API=xxxx" -e "VIRUSTOTAL=xxxx" -t --rm screetsec/sudomy:v1.1.9-dev [argument]
Для запросов к сторонним сайтам, таким как Shodan, Censys, SecurityTrails, Virustotal и BinaryEdge, требуется API-ключ.
# Shodan
# URL : http://developer.shodan.io
# Example :
# - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"
SHODAN_API=""
# Censys
# URL : https://search.censys.io/register
CENSYS_API=""
CENSYS_SECRET=""
# Virustotal
# URL : https://www.virustotal.com/gui/
VIRUSTOTAL=""
# Binaryedge
# URL : https://app.binaryedge.io/login
BINARYEDGE=""
# SecurityTrails
# URL : https://securitytrails.com/
SECURITY_TRAILS=""
YOUR_WEBHOOK_URL необходим для использования уведомлений Slack
# Configuration Slack Alert
# For configuration/tutorial to get webhook url following to this site
# - https://api.slack.com/messaging/webhooks
# Example:
# - YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"
YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"
___ _ _ _
/ __|_ _ __| (_)(_)_ __ _ _
\__ \ || / _ / __ \ ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
|__/ v{1.2.1#dev} by @screetsec
Sud⍥my - Fast Subdmain Enumeration and Analyzer
http://github.com/screetsec/sudomy
Usage: sud⍥my.sh [-h [--help]] [-s[--source]][-d[--domain=]]
Example: sud⍥my.sh -d example.com
sud⍥my.sh -s Shodan,VirusTotal -d example.com
Best Argument:
sudomy -d domain.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze --slack -sS
Optional Arguments:
-a, --all Запуск всех видов перебора, без nmap и gobuster
-b, --bruteforce Перебор поддоменов с помощью Gobuster (Словарь: ALL Top SecList DNS)
-d, --domain Домен для сканирования
-h, --help Показать эту справку
-o, --outfile Указать выходной файл по завершении
-s, --source Использовать источник для перебора поддоменов
-aI, --apps-identifier Определение технологий на сайте (например: -aI webanalyze)
-dP, --db-port Сбор портов от сторонних сервисов (по умолчанию = shodan)
-eP, --extract-params Сбор параметров URL из источников
-tO, --takeover Сканер уязвимости перехвата поддомена
-wS, --websocket Проверка WebSocket-соединения
-cF, --cloudfare Проверка, принадлежит ли IP-адрес Cloudflare
-pS, --ping-sweep Проверка живых хостов методом Ping Sweep
-rS, --resolver Преобразование списка доменов в список разрешенных IP-адресов без дубликатов
-sC, --status-code Получение кодов состояния и ответа из списка доменов
-nT, --nmap-top Сканирование портов с top-ports с помощью nmap из списка доменов
-sS, --screenshot Скриншоты списка сайтов (по умолчанию: gowitness)
-nP, --no-passive Не выполнять пассивный перебор поддоменов
-gW, --gwordlist Генерация словаря на основе собранных URL-ресурсов (пассивный)
--httpx Выполнить множественные проверки httpx с помощью retryablehttp
--dnsprobe Выполнить множественные DNS-запросы (dnsprobe)
--no-probe Не выполнять httprobe
--html Создать отчет в формате HTML
--graph Визуализация сетевого графика
Чтобы использовать все 22 источника и проверить работающие HTTP или HTTPS серверы (проверка):
$ sudomy -d hackerone.com
Чтобы использовать один или несколько источников:
$ sudomy -s shodan,dnsdumpster,webarchive -d hackerone.com
Чтобы использовать все источники без проверки:
$ sudomy -d hackerone.com --no-probe
Чтобы использовать один или несколько плагинов:
$ sudomy -pS -sC -sS -d hackerone.com
Чтобы использовать все плагины: проверка статуса хоста, HTTP/HTTPS кода состояния, перехвата поддомена и скриншотов.
Nmap, Gobuster, wappalyzer и wscat не включены.
$ sudomy -d hackerone.com --all
Чтобы создать отчет в HTML-формате:
$ sudomy -d hackerone.com --html --all
Пример HTML-отчета:
| Панель управления | Отчеты |
|---|---|
![]() | ![]() |
Чтобы сгенерировать визуализацию сетевого графика поддоменов и виртуальных хостов:
$ sudomy -d hackerone.com -rS --graph
Пример визуализации графика Sample:
| nGraph |
|---|
![]() |
Чтобы использовать лучшие аргументы для сбора поддоменов, анализа с автоматической разведкой и отправки уведомлений в Slack:
./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS
Пример уведомления в Slack:
| Slack |
|---|
![]() |
Все заметные изменения в этом проекте будут задокументированы в этом файле.