screetsec/Sudomy

GitHub: screetsec/Sudomy

本项目是一款子域名枚举与分析工具,支持主动与被动模式,能够快速收集目标网站的子域信息并进行安全评估。

Stars: 2340 | Forks: 409

# 以下 are the requested translations in Simplified Chinese, preserving the original line count of 26 lines: [![License](https://img.shields.io/badge/license-MIT-red.svg)](https://github.com/Screetsec/Sudomy/blob/master/LICENSE.md) [![Build Status](https://action-badges.now.sh/screetsec/sudomy)](https://github.com/Screetsec/Sudomy/actions) [![Version](https://img.shields.io/badge/Release-1.2.1-red.svg?maxAge=259200)]() [![Build](https://img.shields.io/badge/Supported_OS-Linux-yellow.svg)]() [![Build](https://img.shields.io/badge/Supported_WSL-Windows-blue.svg)]() [![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/screetsec/sudomy/issues) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/screetsec) ### 子域名枚举与分析 sudomy ***Sudomy*** 是一个子域名枚举工具,用于收集子域名并分析域名,执行高级自动化侦察(框架)。该工具也可用于 OSINT(开源情报)活动。 ## 功能 ! ##### 最近,***Sudomy*** 拥有这 20 项功能: - 简单、轻量、快速且强大。几乎所有 Linux 发行版默认都提供 Bash 脚本(控制器)。通过使用 Bash 脚本的多进程特性,所有处理器将得到最优利用。 - 子域名枚举过程可以使用 **主动** 方法或 **被动** 方法实现 - **主动方法** - *Sudomy* 使用 Gobuster 工具,因为它在执行 DNS 子域名暴力破解攻击(支持通配符)时速度极快。使用的词表来自组合的 SecList(Discover/DNS)列表,约 300 万条目 - **被动方法** - 通过评估并 **选择** **优质** 第三方站点/资源,枚举过程可以 **优化**。可以在更短时间内获得更多结果。*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 - 测试收集的子域名列表并探测可用的 http 或 https 服务器。此功能使用第三方工具 [httprobe](https://github.com/tomnomnom/httprobe "httprobe")。 - 基于 Ping Sweep 和/或获取 HTTP 状态码的子域名可用性测试。 - 检测虚拟主机(多个子域名解析到同一 IP 地址)。Sudomy 将把收集的子域名解析为 IP 地址,然后对解析到同一 IP 的多个子域名进行分类。此功能在后续透测试/漏洞赏金过程中非常有用。例如,在端口扫描时,同一 IP 地址不会被重复扫描。 - 对收集的子域名/虚拟主机 IP 地址进行端口扫描。 - 测试子域名接管攻击(CNAME 解析、DNS 查询、检测 NXDomain、检查漏洞)。 - 使用 gowitness 截取子域名截图,或选择其他截图工具,如 (-ss webscreeenshot)。 - 识别网站技术(类别、应用、版本)。 - 检测 URL、端口、标题、内容长度、状态码、响应体等。 - 默认从 https 自动回退到 http。 - 从第三方(默认:Shodan)收集/抓取开放端口数据。当前仅使用 Shodan,未来计划支持 Censys、Zoomeye。更高效地从目标 IP 列表中收集端口信息 [[ 子域名 > IP 解析 > 爬取 > ASN 与开放端口 ]]。 - 收集有价值的 URL 并提取 URL 参数(默认资源:WebArchive、CommonCrawl、UrlScanIO)。 - 收集有趣的路径(api|.git|admin|etc)、文档(doc|pdf)、JavaScript(js|node)和参数。 - 为输出文件定义路径(完成后指定输出文件)。 - 检查 IP 是否属于 Cloudflare。 - 基于收集的 URL 资源(wayback、urlscan、commoncrawl)生成并制作词表。为此,我们从域名侦察中提取所有参数和路径。 - 生成网络图可视化子域名和虚拟主机。 - 以 HTML 与 CSV 格式输出报告。 - 向 Slack 频道发送通知。 ## Sudomy 工作原理 Sudomy 的工作方式或侦察流程,当你运行最佳参数以收集子域名并通过自动化侦察进行分析时。 ``` root@maland: ./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze -sS ``` ### 侦察工作流 此侦察工作流 Sudomy v1.1.8#dev ![Recon Workflow](https://static.pigsec.cn/wp-content/uploads/repos/2026/02/62fad056ca212903.png) ### 详细信息 详细信息文件 侦察与有价值数据 ``` ------------------------------------------------------------------------------------------------------ - subdomain.txt -- Subdomain list < $DOMAIN (Target) - httprobe_subdomain.txt -- Validate Subdomain < subdomain.txt - webanalyzes.txt -- Identify technology scan < httprobe_subdomain.txt - httpx_status_title.txt -- title+statuscode+lenght < httprobe_subdomain.txt - dnsprobe_subdomain.txt -- Subdomain resolv < subdomain.txt - Subdomain_Resolver.txt -- Subdomain resolv (alt) < subdomain.txt - cf-ipresolv.txt -- Cloudflare scan < ip_resolver.txt - Live_hosts_pingsweep.txt -- Live Host check < ip_resolver.txt - ip_resolver.txt -- IP resolv list < Subdomain_Resolver::dnsprobe - ip_dbasn.txt -- ASN Number Check < ip_resolver.txt - vHost_subdomain.txt -- Virtual Host (Group by ip) < Subdomain_Resolver.txt - nmap_top_ports.txt -- Active port scanning < cf-ipresolv.txt - ip_dbport.txt -- Passive port scanning < cf-ipresolv.txt ------------------------------------------------------------------------------------------------------ - Passive_Collect_URL_Full.txt -- Full All Url Crawl (WebArchive, CommonCrawl, UrlScanIO) ------------------------------------------------------------------------------------------------------ - ./screenshots/report-0.html -- Screenshoting report < httprobe_subdomain.txt - ./screenshots/gowitness/gowitness.sqlite3 -- Database screenshot < httprobe_subdomain.txt ------------------------------------------------------------------------------------------------------ - ./interest/interesturi-allpath.out -- Interest path(/api,/git,etc) < Passive_Collect_URL_Full.txt - ./interest/interesturi-doc.out -- Interest doc (doc,pdf,xls) < Passive_Collect_URL_Full.txt - ./interest/interesturi-otherfile.out -- Other files (.json,.env,etc) < Passive_Collect_URL_Full.txt - ./interest/interesturi-js.out -- All Javascript files(*.js) < Passive_Collect_URL_Full.txt - ./interest/interesturi-nodemodule.out -- Files from /node_modules/ < Passive_Collect_URL_Full.txt - ./interest/interesturi-param-full.out -- Full parameter list < Passive_Collect_URL_Full.txt - ./interest/interesturi-paramsuniq.out -- Full Uniq parameter list < Passive_Collect_URL_Full.txt - Notes : You can validate juicy/interest urls/param using urlprobe or httpx to avoid false positives ------------------------------------------------------------------------------------------------------ - ./takeover/CNAME-resolv.txt -- CNAME Resolver < subdomain.txt - ./takeover/TakeOver-Lookup.txt -- DNSLookup < CNAME-resolv.txt - ./takeover/TakeOver-nxdomain.txt -- Other 3d service platform < TakeOver-Lookup.txt - ./takeover/TakeOver.txt -- Checking Vulnerabilty < CNAME-resolv.txt ------------------------------------------------------------------------------------------------------ - ./wordlist/wordlist-parameter.lst -- Generate params wordlist < Passive_Collect_URL_Full.txt - ./wordlist/wordlist-pathurl.lst -- Generate List paths wordlis < Passive_Collect_URL_Full.txt - Notes : This Wordlist based on domain & subdomain information (path,file,query strings & parameter) ------------------------------------------------------------------------------------------------------ ``` ## 发表 - [Sudomy: Information Gathering Tools for Subdomain Enumeration and Analysis](https://iopscience.iop.org/article/10.1088/1757-899X/771/1/012019/meta) - IOP Conference Series: Materials Science and Engineering, Volume 771, 2nd International Conference on Engineering and Applied Sciences (2nd InCEAS) 16 November 2019, Yogyakarta, Indonesia ## 对比 Sudomy 在使用资源(第三方站点)时更省资源。通过评估并选择优质的第三方站点/资源,使枚举过程得到优化。本次对比使用的域名为 ***tiket.com***。 以下是对 *Sublist3r v1.1.0、Subfinder v2.4.5* 与 *Sudomy v1.2.0* 进行被动枚举 DNS 测试的结果。 Untitled 在这里,subfinder 仍然被归类为非常快速的子域名收集工具,但它会使用相当多的资源。尤其是当使用的资源已经被优化时(?)。 有关编译结果和视频,请查看: ### 但它很烂!你的实现太差! - 是的,你可能是对的。随意“不要使用它”,并且有一个拉取按钮可以“让它更好”。 ## 安装 *Sudomy* 目前已扩展以下工具。下面提供了安装和使用该应用的说明链接。 ### 从 Github 下载 Sudomy ``` # 1. Sudomy → 疑难 git clone --recursive https://github.com/screetsec/Sudomy.git ``` ### 依赖 ``` $ python3 -m pip install -r requirements.txt ``` *Sudomy* 需要 [jq](https://stedolan.github.io/jq/download/) 和 [GNU grep](https://www.gnu.org/software/grep/) 来运行和解析。关于如何下载和安装 jq 的信息可在 [here](https://stedolan.github.io/jq/download/) 获得。 ``` # 2. Clone this repository → 克隆此仓库 apt-get update apt-get install jq nmap phantomjs npm chromium parallel npm i -g wappalyzer wscat # 3. Linux → Linux brew cask install phantomjs brew install jq nmap npm parallel grep npm i -g wappalyzer wscat # 4. Mac → Mac All you would need is an installation of the latest Google Chrome or Chromium Set the PATH in rc file for GNU grep changes ``` ## 在 Docker 容器中运行 ``` # 5. Note → 注意 docker pull screetsec/sudomy:v1.2.1-dev # 6. Pull an image from DockerHub → 从 DockerHub 拉取镜像 mkdir output # 7. Create output 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] # 8. Run an image, you can run the image on custom directory but you must copy/download config sudomy.api on current directory → 运行镜像,你可以在自定义目录运行镜像,但必须在当前目录复制/下载 config sudomy.api 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 密钥。 - API 密钥设置可在 sudomy.api 文件中完成。 ``` # 9. or define API variable when executed an image. → 或者在执行镜像时定义 API 变量 # 10. Shodan → Shodan # 11. URL : http://developer.shodan.io → URL: http://developer.shodan.io # 12. Example : → 示例: SHODAN_API="" # 13. - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo" → - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo" # 14. Censys → Censys CENSYS_API="" CENSYS_SECRET="" # 15. URL : https://search.censys.io/register → URL: https://search.censys.io/register # 16. Virustotal → Virustotal VIRUSTOTAL="" # 17. URL : https://www.virustotal.com/gui/ → URL: https://www.virustotal.com/gui/ # 18. Binaryedge → Binaryedge BINARYEDGE="" # 19. URL : https://app.binaryedge.io/login → URL: https://app.binaryedge.io/login # 20. SecurityTrails → SecurityTrails SECURITY_TRAILS="" ``` 在使用 Slack 通知前,需要 YOUR_WEBHOOK_URL - URL 设置可在 slack.conf 文件中完成。 ``` # 21. URL : https://securitytrails.com/ → URL: https://securitytrails.com/ # 22. Configuration Slack Alert → 配置 Slack 警报 # 23. For configuration/tutorial to get webhook url following to this site → 用于配置/教程获取此站点的 webhook URL # 24. - https://api.slack.com/messaging/webhooks → - https://api.slack.com/messaging/webhooks # 25. Example: → 示例: 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 Running all Enumeration, no nmap & gobuster -b, --bruteforce Bruteforce Subdomain Using Gobuster (Wordlist: ALL Top SecList DNS) -d, --domain domain of the website to scan -h, --help show this help message -o, --outfile specify an output file when completed -s, --source Use source for Enumerate Subdomain -aI, --apps-identifier Identify technologies on website (ex: -aI webanalyze) -dP, --db-port Collecting port from 3rd Party default=shodan -eP, --extract-params Collecting URL Parameter from Engine -tO, --takeover Subdomain TakeOver Vulnerabilty Scanner -wS, --websocket WebSocket Connection Check -cF, --cloudfare Check an IP is Owned by Cloudflare -pS, --ping-sweep Check live host using methode Ping Sweep -rS, --resolver Convert domain lists to resolved IP lists without duplicates -sC, --status-code Get status codes, response from domain list -nT, --nmap-top Port scanning with top-ports using nmap from domain list -sS, --screenshot Screenshots a list of website (default: gowitness) -nP, --no-passive Do not perform passive subdomain enumeration -gW, --gwordlist Generate wordlist based on collecting url resources (Passive) --httpx Perform httpx multiple probers using retryablehttp --dnsprobe Perform multiple dns queries (dnsprobe) --no-probe Do not perform httprobe --html Make report output into HTML --graph Network Graph Visualization ``` 使用全部 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 报告示例: | Dashboard | Reports | | ------------ | ------------ | |![Index](https://user-images.githubusercontent.com/17976841/635973-6ab6e880-c5e7-11e9-819e-91634e347b0c.PNG)|![f](https://static.pigsec.cn/wp-content/uploads/repos/2026/02/4689d1ff1b212905.png)| 生成网络图可视化子域名与虚拟主机 ``` $ sudomy -d hackerone.com -rS --graph ``` 图形可视化 [Sample](https://screetsec.github.io/): | nGraph | | ------------ | |![nGraph](https://static.pigsec.cn/wp-content/uploads/repos/2026/02/ee547968bf212906.png)| 使用最佳参数收集子域名,进行自动化侦察并发送 Slack 通知 ``` ./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS ``` ## 工具概览 ## 更新日志 本项目的所有重要更改将记录在此 [file](https://github.com/Screetsec/sudomy/blob/master/CHANGELOG.md) 中。 ## 替代最佳工具 - 子域名枚举 - [Subfinder](https://github.com/projectdiscovery/subfinder) - Projectdiscovery - [Sublist3r](https://github.com/aboul3la/Sublist3r) - aboul3la - [Findomain](https://github.com/Edu4rdSHL/findomain) - Edu4rdSHL - [Amass](https://github.com/OWASP/Amass) - OWASP ## 致谢 - [Tom Hudson](https://github.com/tomnomnom/) - Tomonomnom - [OJ Reeves](https://github.com/OJ/) - Gobuster - [ProjectDiscovery](https://github.com/projectdiscovery) - Security Through Intelligent Automation - [Thomas D Maaaaz](https://github.com/maaaaz) - Webscreenshot - [Dwi Siswanto](https://github.com/dwisiswant0) - cf-checker - [Robin Verton](https://github.com/rverton/webanalyze) - webanalyze - [christophetd](https://github.com/christophetd/censys-subdomain-finder) - Censys - [Daniel Miessler](https://github.com/danielmiessler/) - SecList - [EdOverflow](https://github.com/EdOverflow/) - can-i-take-over-xyz - [jerukitumanis](https://github.com/myugan) - Docker Maintainer - [NgeSEC](https://ngesec.id/) - Community - [Zerobyte](http://zerobyte.id/) - Community - [Gauli(dot)Net](https://gauli.net/) - Lab Hacking Indonesia - [missme3f](https://github.com/missme3f/) - Raditya Rahma - [Bugcrowd](https://www.bugcrowd.com/) & [Hackerone](https://www.hackerone.com/) - [darknetdiaries](https://darknetdiaries.com/) - Awesome Art
标签:ESC4, OSINT, SecList, Snort++, Talos规则, VEH, Volatility, 主动扫描, 内存取证, 可视化界面, 子域名枚举, 字典攻击, 开源情报, 数字取证, 日志审计, 系统安全, 网络安全, 自动化脚本, 被动扫描, 请求拦截, 逆向工具, 隐私保护