48

Subfinder:一个子域名发现工具,可以为任何目标枚举海量的有效子域名

 5 years ago
source link: http://www.freebuf.com/sectool/175556.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FJ7re2f.jpg!web

SubFinder是一个子域发现工具,可以为任何目标枚举海量的有效子域名。它已成为 sublist3r项目 的继承者。SubFinder使用被动源,搜索引擎,Pastebins,Internet Archives等来查找子域,然后使用灵感来自于altdns的置换模块来生成排列,并使用强大的bruteforcing引擎快速的解析它们。如果需要,它也可以执行纯粹的爆破。此外,SubFinder还具有高可定制性。其代码构建模块化的特点,使你能够轻松地添加功能或移除错误。

视频演示:https://asciinema.org/a/177851

特性

简单且模块化的代码库使你能够轻松地为其添加功能或移除错误。

快速且强大的Bruteforcing模块

强大的置换生成引擎。(开发中)

海量被动数据源(目前有29个)

支持多种输出格式

Ask, Archive.is, Baidu, Bing, Censys, CertDB, CertSpotter, CrtSH, DnsDB, DNSDumpster, Dogpile, Entrust CT-Search, Exalead, FindSubdomains, Hackertarget, IPv4Info, Netcraft, PassiveTotal, PTRArchive, Riddler, SecurityTrails, SiteDossier, Shodan, SSL Certificates, ThreatCrowd, ThreatMiner, Virustotal, WaybackArchive, Yahoo

使用

./subfinder -h

显示帮助信息

Flag 描述 示例 -b 使用bruteforcing查找子域 ./subfinder -d example.com -b -c 不要显示彩色输出 ./subfinder -c -d 通过域名查子域 ./subfinder -d example.com -dL 通过域名列表查子域 ./subfinder -dl hosts.txt -nW 删除通配符子域 ./subfinder -nw -o 输出文件名(可选) ./subfinder -o output.txt -oT 以Aquatone风格的JSON格式写入输出(必需与-nW一起使用) ./subfinder -o output.txt -nw -oA -oJ 以JSON格式写入输出 ./subfinder -o output.json -oJ -oD 输出到目录(使用多个主机时) ./subfinder -od ~/misc/out/ -r 逗号分隔域名解析服务器地址 ./subfinder -r 8.8.8.8,1.1.1.1 -rL 包含要使用的解析列表文件 ./subfinder -rL resolvers.txt –recursive 使用递归查找子域(默认为:true) ./subfinder –recursive –set-config 更改配置选项 ./subfinder –set-config example=something –set-settings 更改设置选项 ./subfinder –set-settings CensysPages=10 –silent 仅显示找到的子域 ./subfinder –silent –sources 逗号分隔使用的源文件列表(可选) ./subfinder –sources threatcrowd,virustotal –exclude-sources 逗号分隔不使用的源文件列表(可选) ./subfinder –exclude-sources threatcrowd,virustotal -t 并发线程数(爆破) ./subfinder -t 10 –timeout 等待直到退出连接 ./subfinder –timeout 10 -v 显示详细输出 ./subfinder -v -w 用于执行bruteforcing和置换的字典列表 ./subfinder -w words.txt

安装说明

直接安装

SubFinder需要go1.10+的环境才能成功安装!使用go get命令下载SubFinder:

go get github.com/Ice3man543/subfinder

更新

你还可以使用-u命令来强行更新代码包:

go get -u github.com/Ice3man543/subfinder

在Docker Container中运行

Git clone repo,然后使用以下命令在container中构建并运行subfinder

git clone https://github.com/Ice3man543/subfinder.git

创建你的docker container

docker build -t subfinder .

在container创建后,执行以下命令。

docker run -it subfinder

以上命令与运行-h相同

注意:请务必按照后安装步骤正确配置该工具。

例如,以下将针对uber.com运行该工具,并将结果输出到你的主机文件系统:

docker run -v $HOME/.config/subfinder:/root/.config/subfinder -it subfinder -d uber.com > uber.com.txt

后安装说明

在成功安装Subfinder后,我们还需要做一些配置工作。某些服务的使用,需要我们手中有API密钥。如果没有,以下服务将会无法正常工作:

Virustotal

Passivetotal

SecurityTrails

Censys

Riddler

Shodan

这些是你必须通过命令行指定的配置选项。

VirustotalAPIKey
PassivetotalUsername
PassivetotalKey
SecurityTrailsKey
RiddlerEmail
RiddlerPassword
CensysUsername
CensysSecret
ShodanAPIKey

这些值存储在首次运行该工具时被创建的$HOME/.config/subfinder/config.json文件中。使用–set-config选项设置服务API密钥:

./subfinder --set-config VirustotalAPIKey=0x41414141
./subfinder --set-config PassivetotalUsername=hacker,PassivetotalKey=supersecret

如果你使用的是docker,则首先需要你手动来创建保存subfinder配置文件的目录结构。你可以在主机系统中运行二进制文件,然后让它创建文件的目录结构,之后可以使用–set-config选项设置api值。手动创建命令如下:

mkdir $HOME/.config/subfinder
cp config.json $HOME/.config/subfinder/config.json
nano $HOME/.config/subfinder/config.json

配置完成后,你可以运行以下命来枚举目标子域:

sudo docker run -v $HOME/.config/subfinder:/root/.config/subfinder -it subfinder -d freelancer.com

运行

查找目标域子域:

./subfinder -d freelancer.com
[CERTSPOTTER] www.fi.freelancer.com
[DNSDUMPSTER] hosting.freelancer.com
[DNSDUMPSTER] support.freelancer.com
[DNSDUMPSTER] accounts.freelancer.com
[DNSDUMPSTER] phabricator.freelancer.com
[DNSDUMPSTER] cdn1.freelancer.com
[DNSDUMPSTER] t1.freelancer.com
[DNSDUMPSTER] wdc.t1.freelancer.com
[DNSDUMPSTER] dal.t1.freelancer.com

-o命令可用于指定输出文件。

./subfinder -d freelancer.com -o output.txt

你还可以使用-oJ选项,将输出格式显示为json。–silent:仅显示没有任何其他信息的子域。–set-config:更改配置选项值。–set-setting:更改设置选项,例如我们可以使用该选项指定Censys的检查页数:

./subfinder -d freelancer.com --sources censys --set-settings CensysPages=2 -v

如果要检查censys返回的所有页面,则可以使用 “all” 选项。注意,这是一个字符串。

以下是当前支持的设置

CensysPages
AskPages
BaiduPages
BingPages

对于bruteforcing功能,你可以使用-b和-w选项来指定一个字典列表。

./subfinder -d freelancer.com -b -w jhaddix_all.txt -t 100 --sources censys --set-settings CensysPages=2 -v

你也可以以Aquatone风格的JSON格式写入输出。

./subfinder -d freelancer.com -o result_aquatone.json -oT -nW -v

指定域名解析服务地址:

./subfinder -d freelancer.com -o result_aquatone.json -oT -nW -v -r 8.8.8.8,1.1.1.1
./subfinder -d freelancer.com -o result_aquatone.json -oT -nW -v -rL resolvers.txt

  *参考来源: GitHub FB小编 secist 编译,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK