Google Dorking
在全球范围内, 寻找子域名最简单方法之一是使用Google Dorking, 例如:可以使用以下命令来查找与目标相关的子域:
site:*.domain.com -www
- site:domain.com:这部分告诉Google只在domain.com中搜索。
- 星号(*):这是一个通配符, 匹配domain.com的所有子域, 例如:只查找如subdomain.domain.com这样的任何子域。
- -www:这部分排除了任何包含www的结果, 减号(-)用于否定一个搜索项, 所以在这种情况下, 它过滤掉了包含www的结果。
以下是一个使用Google Dorking子域名搜素的例子:
图片
Sublist3r
Sublist3r(https://github.com/aboul3la/Sublist3r)是一个使用起来比较舒适的子域名搜索工具, 通过各种标志提供了定制功能, 这些标志可以将结果保存到文件中或扫描发现指定TCP端口的子域名。
如果要搜索特定的子域, 可以使用以下命令, 并使用"-d"标志来表示枚举的目标域:
sublist3r -d domain.com
该工具使用界面如下:
图片
Amass
OWASP中的Amass(https://github.com/owasp-amass/amass)是一款功能强大的工具, 它可以通过其API集成连接到其他服务, 使其获取额外的扩展功能, 下面只是介绍一下该工具的基本用法, 如以下命令:
amass enum -passive -d domain.com -o subdomains.txt
执行该命令后, 就可以将输出结果保存到文件中, 以下是输出的内容:
图片
输出文件生成后, 可以使用sed和grep命令来进行过滤, 以创建一个只包含子域名列表的干净内容, 命令如下:
cat output.txt | sed 's/\x1b[[0-9;]m//g' | grep -oP '(?<=\s)[a-zA-Z0-9.-].(com)' > cleaned_subdomains.txt
过滤后的文本内容如下:
图片
Recon-ng
Recon-ng(https://github.com/lanmaster53/recon-ng)是一款全能型OSINT侦查工具, 可以执行各种任务, 包括: 收集电子邮件, 这里只展示其搜集子域的功能, 从命令行启动Recon-ng:
recon-ng
执行成功后界面如下:
图片
输入以下命令来搜索需要使用的功能模块:
marketplace search
搜索结果如下图:
图片
这里我比较感兴趣的模块是:hackertarget, 如图:
图片
要安装该模块, 输入以下命令:
marketplace install hackertarget
如果要加载使用它, 则输入以下命令:
modules load hackertarget
安装完成后, 可以快速设置该模块并枚举子域, 如果要检查需要设置哪些选项, 输入:info, 而对于该模块,只需要输入以下命令即可开始枚举子域:
options set SOURCE domain.com
run
命令执行效果如图:
图片
扫描完成后, 输入: show hosts, 将显示所有已找到的子域, 如图:
图片
SubDomainizer
SubDomainizer(https://github.com/nsonaniya2010/SubDomainizer)不仅仅是一款子域名枚举工具, 还可以找到其他关键信息,例如: API密钥, 该工具语法简单, 易于使用, 只需要输入以下命令, 便可以获取到一份干净完整的子域名列表:
python3 SubDomainizer.py -u https://www.domain.com
执行结果如下:
图片
Pentest Tools Subdomain Finder
Pentest Tools Subdomain Finder(https://pentest-tools.com/information-gathering/find-subdomains-of-domain)是一款基于网页的轻量级子域名枚举工具, 使用者可以在没有账号的情况下执行扫描, 但如果想要更多的扫描和更多的工具, 可以注册一个免费账户使用, 以下是使用界面:
图片
扫描完成后,获取的结果如下图:
图片
Crt.sh
https://crt.sh/ 这是一个利用证书透明性收集子域名的工具, 其原理是所有SSL/TLS证书都会被记录并公开访问, 只需要要前往crt.sh并输入要枚举的域名即可,如图:
图片
点击搜索以生成目标域的子域列表, 如图:
图片
Shodan
Shodan(https://www.shodan.io/)Shodan可以定位子域,并提供基于Web和命令行的界面。要使用Web界面查找子域,访问 https://www.shodan.io/domain/domain.com,将“domain.com”替换为想要枚举的域名。
图片
如果要从命令行使用Shodan,键入shodan domain domain.com,将domain.com替换为希望搜索的域名。
图片
PureDNS
PureDNS(https://github.com/d3mondev/puredns)PureDNS可以通过启用每秒数千个同时DNS请求来执行快速的子域名枚举,使用公共解析器。要查找子域名,输入以下命令:
puredns bruteforce mywordlist.txt -r resolvers.txt domain.com -l 5000
该命令指示PureDNS为domain.com执行暴力破解子域名枚举,使用来自mywordlist.txt的潜在子域名列表,并通过resolvers.txt中提供的一组DNS解析器执行DNS查询。它限制DNS查询的速率为每秒5000个。
图片
完成后, 将显示输出结果,如图:
图片
ffuf
ffuf(https://github.com/ffuf/ffuf)采用更主动的方法进行枚举。它接受一个给定的单词列表,并通过发出HTTP/S请求检查每个条目,从而确定哪些子域存在。
可以使用以下命令,它将对子域进行模糊搜索,将输出文件保存为HTML,并在请求之间设置两秒的延迟。
ffuf -w wordlist -u https://fuzz.domain.com -of html -o result -p 2