Aquatone是一款子域名挖掘工具,Aquatone不僅僅只是通過簡單的子域爆破,它還會(huì)利用各種開放的互聯(lián)網(wǎng)服務(wù)和資源撤摸,來協(xié)助其完成子域枚舉任務(wù)浪读,這也大大提高了子域的爆破率。當(dāng)發(fā)現(xiàn)子域時(shí),我們還可以使用Aauatone來探測(cè)主機(jī)的公共HTTP端口,并收集響應(yīng)頭,HTML和屏幕截圖直撤,并能最終為我們生成一個(gè)報(bào)告,便于我們后續(xù)的分析利用蜕着。
一谋竖、安裝以及環(huán)境配置
Aquatone作者建議使用Kali安裝使用該工具红柱,并且也只針對(duì)Kali使用過程中遇到的問題進(jìn)行修復(fù),所以這里使用最新版Kali進(jìn)行安裝蓖乘。使用aquatone-gather命令需要用到Nightmare.js锤悄,所以需要安裝npm、electron以及Nightmare嘉抒。
1.1 安裝Aquatone
gem install aquatone
直接安裝Aquatone零聚,安裝完成后如下圖所示:
1.2 npm快速安裝
從官網(wǎng)下載install.sh安裝腳本
https://www.npmjs.com/install.sh
chmod +x install.sh添加執(zhí)行權(quán)限
./install.sh執(zhí)行安裝程序
安裝完成后使用npm -v命令查看是否安裝成功
1.2 安裝electron
安裝electron和nightmare首先需要進(jìn)入aquatone安裝目錄,也就是
/var/lib/gems/2.5.0/gems/aquatone-0.5.0
(1)直接安裝
使用命令
npm install electron
直接安裝些侍,缺點(diǎn)是連接國外服務(wù)器網(wǎng)絡(luò)不穩(wěn)定隶症,下載了好幾次都不能完整下載,這個(gè)會(huì)引發(fā)aquatone使用時(shí)提示兼容性問題岗宣,后面會(huì)詳細(xì)介紹蚂会。
(2)使用淘寶鏡像安裝electron
可以通過以下命令從淘寶NPM安裝
npm install -g electron --registry=https://registry.npm.taobao.org
也可以使用淘寶NPM開發(fā)的cnpm進(jìn)行package的安裝
//首先安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
//使用cnpm進(jìn)行安裝,使用方法和npm相同
cnpm install -g electron
安裝完成后如下圖
1.3安裝nightmare
electron是nightmare的依賴環(huán)境耗式,安裝完electron后便開始安裝nightmare胁住,步驟同1.2
全部安裝完成后目錄如下
遇到問題:
在aquatone-discover以及aquatone-scan后,執(zhí)行g(shù)ather命令提示如下錯(cuò)誤:
Incompatability Error: Nightmarejs must be run on a system with a graphical desktop session (X11)
這個(gè)錯(cuò)誤根據(jù)國外大神分析是由于在Node.js Nightmare實(shí)例和Ruby之間進(jìn)行通信時(shí)刊咳,Aquatone使用了一種錯(cuò)誤的方法彪见,導(dǎo)致輸出被截?cái)酁?12個(gè)字符,代碼捕獲所有錯(cuò)誤并給出了不兼容的錯(cuò)誤異常芦缰,原文在:
https://github.com/michenriksen/aquatone/issues/63
解決方案有兩種
一是國外大神修改了原Aquatone代碼nightmare通信方式企巢,可以在該問題下看到:
https://github.com/michenriksen/aquatone/pull/94
修改后源代碼下載地址
https://github.com/jolle/aquatone/tree/5fa327c525ee29ca71e8f6990b553c9081c6eac7
下載該源碼后將原安裝目錄文件替換即可
左邊為修復(fù)問題的代碼枫慷,右邊為存在問題代碼让蕾,修復(fù)后使用Open3代替ChildProcess執(zhí)行node命令
另外一種方式則是使用xvfb-run運(yùn)行g(shù)ather程序,原文如下:
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
該作者提供了一個(gè)腳本可以直接執(zhí)行掃描及收集等操作
wget "https://gist.githubusercontent.com/random-robbie/beae1991e9ad139c6168c385d8a31f7d/raw/aq.sh" -O /bin/aq && chmod 777 /bin/aq
執(zhí)行aq + domain或听,等待程序執(zhí)行完成即可
或者可以在執(zhí)行g(shù)ather命令時(shí)使用
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)錯(cuò)誤
通過print獲取錯(cuò)誤信息
vim /var/lib/gems/2.5.0/gems/aquatone-0.5.0/lib/aquatone/browser/drivers/nightmare.rb
在27-28行之間添加如下命令
可以打印json信息
我這里就是由于網(wǎng)絡(luò)原因?qū)е耬lectron安裝不完整探孝,出現(xiàn)此問題。