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

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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-06-30

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

Linux:mv 命令的10个实用例子

当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么 mv 命令是完成这个任务的首选。本文中总结了十个 Linux mv 命令的实例,希望能给大家带来一...

49370
来自专栏吴伟祥

Nginx认识与实践(一) 转

笔者按照文章:《Nginx服务器开箱体验》 中的实验,给出了一份简要的清单配置举例:

10730
来自专栏FreeBuf

技术解析 | Web缓存欺骗测试

前言: Omer Gil在BlackHat USA 2017 和BSides Tel-Aviv 2017 上,对Web 缓存欺骗技术这种攻击技术进行了演示,在他...

28460
来自专栏耕耘实录

一个小工具(setup),小白也能独立管理自己的Linux服务器

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

18330
来自专栏前端小叙

内网映射到外网方法收集

一、nat123 二、ngrok 官网服务器被墙了 不能使用,显示reconnecting,可以使用自己搭建的服务器来试  三、花生壳 四、frp  htt...

484100
来自专栏闵开慧

eclipse中执行程序显示找不到主类

eclipse中执行程序显示找不到主类 这种情况一般出现在工程中已编译有class文件的java文件,而后面新建的java则不会出现问题。这种情况说明工程bin...

36450
来自专栏企鹅号快讯

MongoDB副本集搭建

我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机、崩溃或者硬盘坏了都会对公司业务造成损失,因此我们需要数据备份。在MongoD...

45170
来自专栏分享达人秀

JDK的正确安装和配置

JDK的全称是Java Development Kit,翻译成中文就是Java开发工具包,主要包括Java运行环境、一些Java命令工具和Java基础的...

24060
来自专栏前端小叙

wordpress主题升级之后返回到原来版本主题的方法

wordpress后台经常可以看到主题提示升级,但是发现升级之后样式,颜色等都变了,不是以前的样子了,这时候如果想要返回到以前版本,前提,必须以前版本有备份。

12320
来自专栏编程语言

Python:VScode 设置Python不同版本运行环境

1.首先本地安装有不同的Python的版本,比如2.7和3.5.mac下一般默认自带2.7版本。  终端输入侧  python -V 则显示默认版本号。而p...

13920

扫码关注云+社区

领取腾讯云代金券