Writeup-DB/sudomy-ng

GitHub: Writeup-DB/sudomy-ng

Sudomy 是一款集被动与主动枚举于一体的子域名侦察框架,用于渗透测试和漏洞赏金场景的自动化资产发现与深度分析。

Stars: 0 | Forks: 0

# Sudomy [![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)]() [![欢迎贡献](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/screetsec/sudomy/issues) [![捐赠](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/screetsec) ### 子域名枚举与分析 sudomy ***Sudomy*** 是一个子域名枚举工具,用于收集子域名并通过执行高级自动化侦察(框架)来分析域名。该工具也可用于 OSINT(开源情报)活动。 ## 特性 ! ##### 目前,***Sudomy*** 具有以下 20 项特性: - 简单、轻量、快速且强大。Bash 脚本(控制器)在几乎所有 Linux 发行版中默认可用。通过利用 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 状态码的子域名可用性测试。 - 能够检测 virtualhost(解析为单个 IP 地址的多个子域名)。Sudomy 会将收集到的子域名解析为 IP 地址,然后如果多个子域名解析为单个 IP 地址,则对其进行分类。此功能对于后续的渗透测试/漏洞赏金过程非常有用。例如,在端口扫描中,不会重复扫描单个 IP 地址 - 对收集到的子域名/virtualhosts IP 地址执行端口扫描 - 测试子域名接管攻击(CNAME 解析器、DNSLookup、检测 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。为此,我们从域侦察中提取所有参数和路径 - 生成子域名 & Virtualhosts 的网络图可视化 - 以 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/03/1105d432f0211101.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: 子域名枚举与分析的信息收集工具](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) 2019年11月16日, 印度尼西亚日惹 ## 用户指南 - 离线用户指南 : [Sudomy - 子域名枚举与分析用户指南 v1.0](https://github.com/Screetsec/Sudomy/blob/master/doc/Sudomy%20-%20Subdomain%20Enumeration%20%26%20Analaysis%20User%20Guide%20v1.0.pdf) - 在线用户指南 : [子域名枚举与分析用户指南](https://sudomy.screetsec.web.id/features) - 最新 ## 对比 Sudomy 在使用资源(第三方站点)时最大限度地减少了资源消耗。通过评估和选择优质第三方站点/资源,可以优化枚举过程。此对比中使用的域名是 ***tiket.com***。 以下是 *Sublist3r v1.1.0, Subfinder v2.4.5*, 和 *Sudomy v1.2.0* 的被动枚举 DNS 测试结果。 Untitled 在这里,Subfinder 仍然被归类为非常快速,因为它利用了相当多的资源来收集子域名。特别是如果所使用的资源已经过优化(?)。 关于编译结果和视频,您可以在这里查看: - [Sudomy](https://www.youtube.com/watch?v=ksZkMpLljcY) - [Subfinder](https://youtu.be/Zxf3pwh7uMI) - [Sublist3r](https://youtu.be/DexFkrEwtt4) 当我有空闲时间时。也许在未来,Sudomy 也会使用 Golang。如果您想贡献,欢迎提交 Pull Request。 ### 但这很烂!而且你的实现很糟糕! - 是的,您可能是对的。请随意“不使用它”,并且有一个 Pull 按钮可以“让它变得更好”。 ## 安装 *Sudomy* 目前扩展了以下工具。有关如何安装和使用应用程序的说明链接如下。 ### 从 Github 下载 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 的信息可以访问 [这里](https://stedolan.github.io/jq/download/) ``` # 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 # 注意 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 容器中运行 ``` # 从 DockerHub 拉取镜像 docker pull screetsec/sudomy:v1.2.1-dev # 创建输出目录 mkdir output # 运行镜像,您可以在自定义目录下运行镜像,但必须将 config sudomy.api 复制/下载到当前目录 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] # 或者在执行镜像时定义 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 Key。 - API Key 设置可以在 sudomy.api 文件中完成。 ``` # Shodan # URL : http://developer.shodan.io # 示例 : # - 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="" ``` 在使用 Slack 通知之前需要 YOUR_WEBHOOK_URL - URL 设置可以在 slack.conf 文件中完成。 ``` # 配置 Slack 告警 # 获取 webhook url 的配置/教程请参考此站点 # - https://api.slack.com/messaging/webhooks # 示例: # - 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 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://static.pigsec.cn/wp-content/uploads/repos/2026/03/4fab0f0fbc211104.png)|![f](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7939e959db211107.png)| 生成子域名 & virtualhosts 的网络图可视化 ``` $ sudomy -d hackerone.com -rS --graph ``` 图可视化 [示例](https://screetsec.github.io/): | nGraph | | ------------ | |![nGraph](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/23d3342766211109.png)| 使用最佳参数收集子域名,通过执行自动侦察进行分析并向 Slack 发送通知 ``` ./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS ``` Slack 通知示例: | Slack | | ------------ | |![Slacks](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/33eef136e5211111.png)| ## 工具概览 - Youtube 视频 : 点击 [这里](http://www.youtube.com/watch?v=DpXIBUtasn0) ## 翻译 - [印度尼西亚语](https://github.com/Screetsec/Sudomy/blob/master/doc/README_ID.md) - [英语](https://github.com/Screetsec/Sudomy/blob/master/doc/README_EN.md) - [葡萄牙语 - 巴西](https://github.com/Screetsec/Sudomy/blob/master/doc/README_PT_BR.md) ## 更新日志 对此项目的所有显著更改都将记录在此 [文件](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
标签:DNS爆破, ESC4, ESC6, OSINT, Sigma 规则, Snort++, Talos规则, 主动扫描, 侦察框架, 域名分析, 子域名枚举, 密码管理, 应用安全, 系统安全, 网络安全, 被动扫描, 计算机安全, 请求拦截, 运行时操纵, 逆向工具, 隐私保护