Aquatone – 子域名探测
aquatone是一款子域名挖掘工具,它会利用各种开发的互联网服务和资源,来协助其完成子域名枚举任务,这样大大提高了子域的爆破率。并且当发现子域名的时候,我们还可以利用aquatone来探测主机的公共HTTP端口,并收集响应头,HTML和屏幕截图,并能最终为我们生成一个报告,便于我们后续的分析利用。
Aquatone的安装
在安装的过程中,使用的aquatone-gather命令需要用到Nightmare.js,所以需要安装npm,electron,已经Nightmare
gem install aquatone
如果安装不成功,需要查看当前的gem sources 列表,确定要用以下源
gem sources -l
如果没有上述的源,就需要执行以下命令下载
apt-get install ruby
gem sources --add https://gems.ruby-china.com/
安装npm
apt-get install npm
安装electron
1.直接安装
安装electron和nightmare首先需要进入aquatone安装目录,也就是
/var/lib/gems/2.5.0/gems/aquatone-0.5.0
npm install electron
2.也可以从淘宝NPM安装
npm install -g electron --registry=https://registry.npm.taobao.org
安装nightmare
electron是nightmare的依赖环境,安装完electron后便开始安装nightmare
npm install -g nightmare --registry=https://registry.npm.taobao.org --unsafe-perm=true
aquatone 的使用
-
aquatone-discover:使用被动的方式或者字典爆破的方式发现子域名
-
aquatone-scan:完成子域名扫描后,可扫描域名开放端口,HTTP header、HTML body、截图等信息并生成报告
-
aquatone-gather:对扫描结果中的IP进行访问请求和网页截图,信息收集
-
aquatone-takeover:检测域名是否在子域名有劫持风险
--domain: 要查询的域名 --threads:查询线程,默认为5 --fallback-nameservers:手工设置备用查询域名服务器,后跟IP,多个IP用逗号分隔 以下两个参数可以帮助规避IDS(入侵检测系统)之类的防御: --sleep:DNS lookup间隔,单位为秒,但是使用此选项后线程数会被强制设为1 --jitter:sleep的变化阈值,单位为百分比,可以使sleep时间在一定范围内随机化。此参数只在sleep启用的情况下生效
子域名爆破
aquatone-discover --domain baidu.com --threads 10
API Key
在使用此工具进行被动扫描的时候,有时候会需要结合Shadon,因此要导入 API Key
aquatone-discover --set-key shodan rnKYE3M9OdnU5W7epRRPs2Ca8FEPIL2X
查看扫描结果
cd ~
ls
端口扫描
aquatone-scan --domain baidu.com --ports 3306,3389
–domain 选项会使工具自动寻找子域名挖掘过程中生成的hosts.json 文件。
aquatone-scan默认扫描的端口为80、443、8000、8080。可以使用–ports参数手工指定
信息收集
该工具能够利用之前扫描出的结果,获取各种网络服务对应的HTTP响应Header和HTML Body,以及直接对相应网页进行截图。
类似aquatone-scan,aquatone-gather 自动寻找对应域名的hosts.json和open_port.txt文件,对每个域名的每个IP地址都会进行请求和截图,保证全面覆盖
aquatone-gather --domain baidu.com
子域名劫持
当一家公司将某个子域名分配给第三方服务提供商,但是在停用后忘了移除DNS配置时,攻击者可以通过注册相同的服务提供商并获取这一子域名,形成劫持。
推荐好文:子域名劫持 https://xz.aliyun.com/t/2414.
aquatone-tokeover能在aquatone-discover扫描获得的域名列表 中寻找可能存在子域名劫持风险的域名。
aquatone-takeover --domain baidu.com