Writeup-DB/sudomy-ng
GitHub: Writeup-DB/sudomy-ng
Sudomy 是一款集被动与主动枚举于一体的子域名侦察框架,用于渗透测试和漏洞赏金场景的自动化资产发现与深度分析。
Stars: 0 | Forks: 0
# Sudomy
[](https://github.com/Screetsec/Sudomy/blob/master/LICENSE.md) [](https://github.com/Screetsec/Sudomy/actions) []() []() []() [](https://github.com/screetsec/sudomy/issues) [](https://www.paypal.me/screetsec)
### 子域名枚举与分析
***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 的侦察工作流

### 详细信息
文件侦察 & 有价值数据的详细信息
```
------------------------------------------------------------------------------------------------------
- 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 测试结果。
在这里,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 |
| ------------ | ------------ |
|||
生成子域名 & virtualhosts 的网络图可视化
```
$ sudomy -d hackerone.com -rS --graph
```
图可视化 [示例](https://screetsec.github.io/):
| nGraph |
| ------------ |
||
使用最佳参数收集子域名,通过执行自动侦察进行分析并向 Slack 发送通知
```
./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS
```
Slack 通知示例:
| Slack |
| ------------ |
||
## 工具概览
- 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
***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 的侦察工作流

### 详细信息
文件侦察 & 有价值数据的详细信息
```
------------------------------------------------------------------------------------------------------
- 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 测试结果。
在这里,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 |
| ------------ | ------------ |
|||
生成子域名 & virtualhosts 的网络图可视化
```
$ sudomy -d hackerone.com -rS --graph
```
图可视化 [示例](https://screetsec.github.io/):
| nGraph |
| ------------ |
||
使用最佳参数收集子域名,通过执行自动侦察进行分析并向 Slack 发送通知
```
./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS
```
Slack 通知示例:
| Slack |
| ------------ |
||
## 工具概览
- 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规则, 主动扫描, 侦察框架, 域名分析, 子域名枚举, 密码管理, 应用安全, 系统安全, 网络安全, 被动扫描, 计算机安全, 请求拦截, 运行时操纵, 逆向工具, 隐私保护