Aquatone是一款子域名挖掘工具,Aquatone不仅仅只是通过简单的子域爆破,它还会利用各种开放的互联网服务和资源,来协助其完成子域枚举任务,这也大大提高了子域的爆破率。当发现子域时,我们还可以使用Aauatone来探测主机的公共HTTP端口,并收集响应头,HTML和屏幕截图,并能最终为我们生成一个报告,便于我们后续的分析利用。
一、安装以及环境配置
Aquatone作者建议使用Kali安装使用该工具,并且也只针对Kali使用过程中遇到的问题进行修复,所以这里使用最新版Kali进行安装。使用aquatone-gather命令需要用到Nightmare.js,所以需要安装npm、electron以及Nightmare。
1.1 安装Aquatone
gem install aquatone
直接安装Aquatone,安装完成后如下图所示:
图11.2 npm快速安装
从官网下载install.sh安装脚本
https://www.npmjs.com/install.sh
chmod +x install.sh添加执行权限
./install.sh执行安装程序
安装完成后使用npm -v命令查看是否安装成功
图21.2 安装electron
安装electron和nightmare首先需要进入aquatone安装目录,也就是
/var/lib/gems/2.5.0/gems/aquatone-0.5.0
(1)直接安装
使用命令
npm install electron
直接安装,缺点是连接国外服务器网络不稳定,下载了好几次都不能完整下载,这个会引发aquatone使用时提示兼容性问题,后面会详细介绍。
(2)使用淘宝镜像安装electron
可以通过以下命令从淘宝NPM安装
npm install -g electron --registry=https://registry.npm.taobao.org
也可以使用淘宝NPM开发的cnpm进行package的安装
//首先安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
//使用cnpm进行安装,使用方法和npm相同
cnpm install -g electron
安装完成后如下图
图31.3安装nightmare
electron是nightmare的依赖环境,安装完electron后便开始安装nightmare,步骤同1.2
全部安装完成后目录如下
图5遇到问题:
在aquatone-discover以及aquatone-scan后,执行gather命令提示如下错误:
Incompatability Error: Nightmarejs must be run on a system with a graphical desktop session (X11)
这个错误根据国外大神分析是由于在Node.js Nightmare实例和Ruby之间进行通信时,Aquatone使用了一种错误的方法,导致输出被截断为512个字符,代码捕获所有错误并给出了不兼容的错误异常,原文在:
https://github.com/michenriksen/aquatone/issues/63
解决方案有两种
一是国外大神修改了原Aquatone代码nightmare通信方式,可以在该问题下看到:
https://github.com/michenriksen/aquatone/pull/94
修改后源代码下载地址
https://github.com/jolle/aquatone/tree/5fa327c525ee29ca71e8f6990b553c9081c6eac7
下载该源码后将原安装目录文件替换即可
左边为修复问题的代码,右边为存在问题代码,修复后使用Open3代替ChildProcess执行node命令
另外一种方式则是使用xvfb-run运行gather程序,原文如下:
https://gist.github.com/random-robbie/beae1991e9ad139c6168c385d8a31f7d
首先需要安装xvfb-run
apt-get install -y xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps clang libdbus-1-dev libgtk2.0-dev libnotify-dev libgconf2-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 libnss3-dev gcc-multilib g++-multilib
该作者提供了一个脚本可以直接执行扫描及收集等操作
wget "https://gist.githubusercontent.com/random-robbie/beae1991e9ad139c6168c385d8a31f7d/raw/aq.sh" -O /bin/aq && chmod 777 /bin/aq
执行aq + domain,等待程序执行完成即可
或者可以在执行gather命令时使用
DEBUG=nightmare xvfb-run -a aquatone-gather -d domain --threads 10
若仍提示Incompatability Error: Nightmarejs must be run on a system with a graphical desktop session (X11)错误
通过print获取错误信息
vim /var/lib/gems/2.5.0/gems/aquatone-0.5.0/lib/aquatone/browser/drivers/nightmare.rb
在27-28行之间添加如下命令
可以打印json信息
我这里就是由于网络原因导致electron安装不完整,出现此问题。
网友评论