专栏首页FreeBufSudomy:子域名枚举与分析工具

Sudomy:子域名枚举与分析工具

Sudomy是一个使用bash脚本创建的子域枚举工具,用于快速全面地分析域和收集子域。

特性

轻便,快速,功能强大。几乎所有的Linux发行版中都默认提供了Bash脚本。通过使用bash脚本的多进程处理功能,可以最佳地利用所有处理器。

子域枚举过程可以通过使用主动或被动方法来实现

(1)主动方法

Sudomy利用Gobuster工具,因为它在执行DNS Subdomain Bruteforce攻击(支持通配符)时具有高速性能。使用的词汇表来自组合的SecList(Discover/DNS)列表,其中包含大约300万个条目

(2)被动方法

通过选择第三方站点可以优化枚举过程,节约大量时间并获得更多的结果。Sudomy可以从这16个第三方网站收集数据:

https://dnsdumpster.com https://web.archive.org https://shodan.io https://virustotal.com https://crt.sh https://www.binaryedge.io https://securitytrails.com https://sslmate.com/certspotter https://censys.io https://threatminer.org http://dns.bufferover.run https://hackertarget.com https://www.entrust.com/ct-search/ https://www.threatcrowd.org https://riddler.io https://findsubdomains.com

测试收集的子域列表并探测工作的http或https服务器。此功能使用第三方工具httprobe来完成。

基于Ping Sweep和/或获取的HTTP状态码测试子域可用性。

检测虚拟主机的能力(解析为单个IP地址的多个子域)。Sudomy会将收集的子域解析为IP地址,然后在多个子域解析为单个IP地址时对其进行分类。此功能对于下一次渗透测试/bug bounty非常有用。例如,在端口扫描中,不会重复的扫描单个IP地址

从收集的子域/虚拟主机IP地址执行端口扫描

子域名接管攻击测试

子域截图

以HTML或CSV格式输出报告

Sudomy 是如何工作的?

Sudomy使用cURL库以从第三方站点获取HTTP响应主体,然后执行正则表达式获取子域。此过程充分利用了多处理器,将节约大量时间并获得更多的结果。

对比

以下是Sublist3r,Subfinder和Sudomy的被动枚举DNS测试的结果的对比。使用的域为bugcrowd.com。

Asciinema:

Subfinder Sudomy Sublist3r

安装

目前,Sudomy包含了以下的扩展工具。有关应用的安装和使用说明请点击相应链接。

Tools

License

Info

Gobuster

Apache License 2.0

非强制性

httprobe

Tom Hudson -

强制性

nmap

GNU General Public License v2.0

非强制性

依赖项

$ pip install -r requirements.txt

Sudomy需要jq来运行和解析。有关jq的下载和安装请参阅https://stedolan.github.io/jq/download/

# Linux
apt-get install jq nmap phantomjs
# Mac
brew cask install phantomjs
brew install jq nmap

如果你已准备好了Go环境,那么键入以下命令:

export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
go get -u github.com/tomnomnom/httprobe
go get -u github.com/OJ/gobuster

从 Github 下载 Sudomy

# Clone this repository
git clone --recursive https://github.com/screetsec/Sudomy.git
# Go into the repository
sudomy --help

在 Docker 容器中运行

# Pull an image from DockerHub
docker pull screetsec/sudomy:v1.1.0
# 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" -it --rm screetsec/sudomy:v1.1.0 [argument]

安装后

查询第三方网站之前需要API密钥,例如Shodan,Censys,SecurityTrails,Virustotal和BinaryEdge。

API密钥设置可以在sudomy.api文件中完成。

# Shodan
# URL :  http://developer.shodan.io
# Example :
#      - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"
SHODAN_API=""
# Censys
# URL : https://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=""

使用

___         _ _  _
/ __|_  _ __| (_)(_)_ __ _  _
\__ \ || / _  / __ \  ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
                          |__/ v{1.1.0#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
         sud⍥my.sh -pS -rS -sC -nT -sS -d example.com
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,  --html         Make report output into HTML
  -s,  --source         Use source for Enumerate Subdomain
  -tO, --takeover     Subdomain TakeOver Vulnerabilty Scanner
  -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
  -nP, --no-passive     Do not perform passive subdomain enumeration
       --no-probe     Do not perform httprobe

将所有16个源和探针用于工作的http或https服务器:

$ sudomy -d hackerone.com

使用其中一个源:

$ sudomy -s shodan,dnsdumpster,webarchive -d hackerone.com

使用一个或多个插件:

$ sudomy -pS -sC -sS -d hackerone.com

使用所有插件:测试主机状态,http/https状态码,子域名接管和屏幕截图

$ sudomy --all -d hackerone.com

以HTML格式创建报告

$ sudomy --all -d hackerone.com --html

HTML报告示例:

仪表板

报告

工具概述

Youtube视频:http://www.%2A%2A%2A%2A%2A%2A%2A.com/watch?v=DpXIBUtasn0

感谢

Tom Hudson - Tomonomnom OJ Reeves - Gobuster Thomas D Maaaaz - Webscreenshot Daniel Miessler - SecList EdOverflow - can-i-take-over-xyz jerukitumanis - Docker Maintainer NgeSEC Community Gauli(dot)Net Bugcrowd & Hackerone

本文分享自微信公众号 - FreeBuf(freebuf),作者:secist

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看我如何窃取Messenger.com用户登录认证随机数并获得15000美元漏洞赏金

    www.messenger.com是Facebook旗下即时通讯软件Messenger官网,该网站中添加了基于随机数认证( nonce based login ...

    FB客服
  • 三种对CORS错误配置的利用方法

    同源策略(SOP)限制了应用程序之间的信息共享,并且仅允许在托管应用程序的域内共享。这有效防止了系统机密信息的泄露。但与此同时,也带来了另外的问题。随着Web应...

    FB客服
  • 追踪影响数百万用户的Android广告软件开发人员

    ESET研究人员在Google Play上发现了活跃一年的广告软件运营商。所涉及的应用程序已安装了800万次,背后的运营商使用了一些技巧来隐藏。

    FB客服
  • Python技术周刊:第 8 期

    欢迎来到《Python技术周刊》这是第8期,每周六发布,让我们直接进入本周的内容。由于微信不允许外部链接,你需要点击页尾左下角”阅读原文“,才能访问文中的链接。

    TalkPython
  • Config::IniFiles模块的安装

    ``` {.brush:xml .;toolbar: .true; .auto-links: .false;} perl -MCPAN -e 'install...

    明哥的运维笔记
  • 那些你可能不知道的网络冷知识奇技淫巧

    WeChat.exe换成你本地的路径,先关闭登录的微信,然后双击wechat.bat就可以登录2个微信了,3个微信就再复制一行,参考我之前的文章如何在电脑上登陆...

    苏生不惑
  • 一周AI论文 | FB发布商业化图像识别系统,多任务学习还能这样用

    呜啦啦啦啦啦啦啦大家好,本周的AI Scholar Weekly栏目又和大家见面啦!

    大数据文摘
  • 那些我常用的 Chrome 扩展(二)

    这是一个微博备份的扩展,由于没有上架,只能下载到本地安装,下载地址 https://share.weiyun.com/56v1cyU,具体使用见微博https:...

    苏生不惑
  • 博客 | 对学习/理解 Word2Vec 有帮助的材料

    之前面试被面到了,加上一直不是很理解词嵌入的工作方式,所以这段时间找了不少相关的资料想把这玩意儿搞明白。理解还是有限,就不自不量力自己写一篇了(就算写也是把已有...

    AI研习社
  • 博客 | 对学习/理解 Word2Vec 有帮助的材料

    之前面试被面到了,加上一直不是很理解词嵌入的工作方式,所以这段时间找了不少相关的资料想把这玩意儿搞明白。理解还是有限,就不自不量力自己写一篇了(就算写也是把已有...

    昱良

扫码关注云+社区

领取腾讯云代金券