子域名枚舉、探測工具AQUATONE 使用指南

知道某一事物的攻擊面是防禦和攻擊的關鍵。例如當我們談到域名時,發現其攻擊面的一個非常常見的方法是發現其子域。而通過子域名將能夠增加發現潛在目標網站的數量,並對其IP範圍進一步探索。

眾所周知,我們常見的有很多的子域名枚舉的工具,例如 Fierce, SubBrute和 Gobuster,然而,今天我所要講的 AQUATONE不僅採取了經典的暴力計數,還利用各種開源和互聯網服務,大大增加了發現的子域數量。當發現子域時,不但可以使用AQUATONE來探測主機的公共HTTP埠,並收集響應頭,同時還能夠進行HTML和屏幕截圖,以編譯成一個不錯的報告,便於分析。

為了使工具儘可能靈活,AQUATONE分為三個獨立的命令,因此如果您只想使用它來進行子域發現,而不需要任何掃描或屏幕截圖,也可以輕鬆實現。讓我們來看看AQUATONE評估的三個階段:

第一階段:發現

為了演示AQUATONE的使用情況,我們將對該域corp.yahoo.com進行評估 。我之所以選擇這個域名,是因為Yahoo的 Bug Bounty程序包含了所有的 *.yahoo.com範圍,所以運行像AQUATONE這樣的工具應該是很不錯的。

啟動aquatone-discover工具:

首先aquatone-discover要確定目標域的權威名稱伺服器。之所以使用這些名稱伺服器,是因為其可確保信息是最新的,並且能夠使我們的發現最大化。

它還可以快速測試目標域是否配置為通配符域,因為這些域可能會產生大量的誤報。如果域是通配符,它將識別可能的通配符響應並將其過濾掉。幸運的是corp.yahoo.com沒有配置為通配符。

在名稱伺服器和通配符檢測之後,它繼續向每個子域收集器模塊詢問目標域下的潛在子域。 aquatone-discover裝有以下收集器模塊:

字典暴力nDNSDB.orgnGoogle透明度報告nHackerTargetnNetcraftnShodan(需要API密鑰)nThreatCrowdnVirusTotal(需要API密鑰)n

收集器模塊返回了總共12.282個潛在子域,aquaone對其進行了分析並嘗試分解。

過了一段時間,aquatone-discover已經列出了名單,共發現了一個1.958個活的子域名。它還分析了IP,並列出了可用於進一步探測的潛在IP子網範圍:

另外,它還將發現的主機寫入自動為目標域創建的aquatone評估目錄中的文件。hosts.txt 包含逗號分隔的域名及其IP:

該文件可以通過常用的命令行工具進行切片和分割,並載入到您可能使用的其他工具中。hosts.json包含與JSON格式相同的信息,並被其他AQUATONE工具使用,但如果要使用自定義腳本的信息也完全沒有問題。

第二階段:掃描

能夠發現corp.yahoo.com的一堆子域名其實已經很有用了。事實上我們可以在這裡停下來,開始使用其他工具或手動瀏覽,但是我們仍然可以選擇讓aquatone-scan為我們努力尋找哪些主機可能會提供網頁內容:

aquatone-scan在不同的主機上找到了一堆開放的HTTP埠。默認情況下,它將掃描以下TCP埠:80,443,880,8080和8443,它們都是非常普通的Web服務埠。您當然可以使用該–ports 選項將其更改為您自己的埠列表,或指定其中一個內置列表別名:

small:80,443nmedium:80,443,880,8080,8443(與默認相同)nlarge:80,81,443,591,2082,2087,2095,2096,3000,8,000,800,1808,8080,8083,8443,8834,8888nhuge:80,81,300,443,591,593,832,981,1010,1311,2082,2087,2095,2096,2480,3000,31228,3333,44243,4567,4711,4712,4993,5000,5104 ,5108,5800,65343,7000,7396,77474,80008,1008,n8008,8014,8042,8069,8080,8081,8088,8090,8091,8118,8133,8172,8222,8243,88080,8281,8333 ,8443,8500,8834,8880,8888,8893,9000,903,49060,98080,9909,991,992,9443,99800,99981,n12443,16080,18091,18092,20720,28017n

使用較大的埠列表肯定會讓您發現更多的Web服務,但它也將增加aquatone-scan完成所需的時間。

aquatone-scan在評估目錄中創建了兩個新文件corp.yahoo.com:open_ports.txt是一個簡單的以逗號分隔的主機列表及其打開的埠:

urls.txt 包含可用於在打開的埠上請求網頁的URL列表:

這些文件可用於下一階段的評估,但也可以方便地載入到其他工具,如EyeWitness 或切片和分割grep, cut, awk,等。

第三階段:匯總

我們現在已經知道了*.corp.yahoo.com的子域名和開放埠,現在該用aquatone-gather來收集HTTP響應和截圖,並將其編譯成一個不錯的報告了:

aquatone-gather從先前的AQUATONE工具創建的文件載入數據,並開始請求URL來收集HTTP響應和屏幕截圖。而在幕後,它使用Nightmare來解決所有重要的請求和屏幕截圖。

不幸的是,Nightmare和任何其他瀏覽器自動化工具一樣,處理方式都有點片面,並且會在某些頁面處理中失敗,這一點可以在屏幕截圖中看到。當然我認為失敗率是可以接受的,但我們仍然需要注意這一事情。

過了一會兒,它處理完了所有的網頁:

接下來,它將生成列印成功與失敗的頁面處理的簡短摘要和生成的報告頁面的列表,但這並不是aquatone-gather唯一生成的文件。當我們導航到評估文件夾中,我們可以看到三個新的文件夾:headers,html,report和screenshots。

該headers文件夾中包含來自所有頁面訪問的響應標題的文本文件:

從安全的角度來說,這些文件對grep和其他工具快速查找伺服器技術信息和其他有趣的事情來說非常有用。

該html文件夾包含所有頁面訪問的HTML主體:

這些文件可以用於很多地方,這一點稍後再說。

顧名思義,該screenshots文件夾中包含所有頁面訪問的PNG屏幕截圖:

事實上,您當然可以直接在文件夾中瀏覽這些截圖,但是通過打開生成的HTML報告頁面來分析它們可能更有用。

報告將使用響應標題排列屏幕截圖,以便您快速掃描收集的信息以獲取有趣的頁面。AQUATONE將突出顯示可能會增加綠色背景和標題的標題,這可能會導致紅色背景的安全問題。

CLI技巧

生成的報告是AQUATONE的最終產品,但是可以在評估文件夾中生成的所有原始文件也包含著大量有用的內容,因此,我非常建議你們能夠學到我文章所講的內容並將其應用範圍擴大到諸如以下事情中:

獲取伺服器技術統計信息

root@kali:~/aquatone/corp.yahoo.com/headers# cat * | grep Server: | sort | uniq -c | sort -nrn 13 Server: ATSn 6 Server: Bomgarn 1 Server: AkamaiGHostroot@kali:~/aquatone/corp.yahoo.com/headers#n

查找更多子域

root@kali:~/aquatone/corp.yahoo.com/html# cat * | egrep -o [a-z0-9-_.]+.corp.yahoo.com | sort -ubomgar.corp.yahoo.comnbouncer.by.corp.yahoo.comnfast.corp.yahoo.comnit.corp.yahoo.comnrequest.corp.yahoo.comnservices.corp.yahoo.comroot@kali:~/aquatone/corp.yahoo.com/html#n

查找HTML注釋

root@kali:~/aquatone/corp.yahoo.com/html# cat * | egrep -o <!--.*--><!--//-->n<!-- Begin comScore Tag -->n<!-- bouncer02.gh.bf1.yahoo.com Wed Jun 14 12:22:09 UTC 2017 -->n<!-- bouncer12-os.gh.bf2.yahoo.com Wed Jun 14 12:22:29 UTC 2017 -->n<!-- #doc4 -->n<!-- .dw1 -->n<!-- .dw4 -->n...n<!-- /.shmod -->n<!-- SpaceID=0 timeout (ads1) -->n<!-- src2.ops.ir2.yahoo.com Wed Jun 14 12:22:15 UTC 2017 -->n<!-- src4.ops.ir2.yahoo.com Wed Jun 14 12:21:44 UTC 2017 -->n<!-- src4.ops.ir2.yahoo.com Wed Jun 14 12:21:51 UTC 2017 -->n<!-- src4.ops.ir2.yahoo.com Wed Jun 14 12:22:27 UTC 2017 -->n<!-- src6.ops.ir2.yahoo.com Wed Jun 14 12:21:57 UTC 2017 -->n<!-- src6.ops.ir2.yahoo.com Wed Jun 14 12:22:15 UTC 2017 -->n<!-- src6.ops.ir2.yahoo.com Wed Jun 14 12:22:36 UTC 2017 -->n<!-- URL: /::ProfilerTotal:557:1497442917838::Page Creation:40:1497442917838::user_ups:0:1497442917844::ydht_time:1:1497442917845::Maple Execution:518:1497442917878::Maple WS:41:1497442917879::SHAdModule:457:1497442917921::SHLeftNavigationModule:7:1497442918378::SHHeroModule:0:1497442918385::SHBrowseShoppingModule:5:1497442918385::SHSocialNewBrowseModule:0:1497442918390::SHCopyrightModule:1:1497442918391:: -->n<!-- web23.shop.bf1.yahoo.com -->n<!-- web23.shop.bf1.yahoo.com Wed Jun 14 12:21:57 UTC 2017 -->n

查找帶有密碼欄位的頁面

root@kali:~/aquatone/corp.yahoo.com/html# grep type="password" *bouncer_gh_corp_yahoo_com__72_30_2_113__80.html: <dd><input class="input-large" name="pass_word" type="password" id="pass_word" maxlength="64" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" ></dd>nfast_corp_yahoo_com__98_136_205_216__443.html: <dd><input class="input-large" name="pass_word" type="password" id="pass_word" maxlength="64" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" ></dd>root@kali:~/aquatone/corp.yahoo.com/html#n

獲取埠443上的主機

root@kali:~/aquatone/corp.yahoo.com# cat open_ports.txt | grep ,443 | cut -d "," -f 1117.104.189.54n124.108.98.253n124.108.98.254n203.83.249.10n203.83.249.4n...n216.145.48.153n72.30.2.113n98.136.163.125n98.136.205.152n98.136.205.216root@kali:~/aquatone/corp.yahoo.com#n

檢測具有Heartbleed的HTTPS主機

root@kali:~/aquatone/corp.yahoo.com# grep https urls.txt | cut -d / -f 3 > /tmp/targets.lstroot@kali:~/aquatone/corp.yahoo.com# sslscan --targets=/tmp/targets.lst --no-ciphersuites --no-fallback --no-renegotiation --no-compression --no-check-certificateVersion: 1.11.9-staticnOpenSSL 1.0.2l-dev xx XXX xxxxnTesting SSL server bomgar.corp.yahoo.com on port 443 using SNI namen Heartbleed:nTLS 1.2 not vulnerable to heartbleednTLS 1.1 not vulnerable to heartbleednTLS 1.0 not vulnerable to heartbleednTesting SSL server bouncer.gh.corp.yahoo.com on port 443 using SNI namen...nTesting SSL server vpn2-2-gci.sv6.corp.yahoo.com on port 443 using SNI namen Heartbleed:nTLS 1.2 not vulnerable to heartbleednTLS 1.1 not vulnerable to heartbleednTLS 1.0 not vulnerable to heartbleedroot@kali:~/aquatone/corp.yahoo.com#n

最後,很高興加入到使用AQUATONE的航班中,您將度過的是一段輕鬆而又愉快的旅程。

本文翻譯自:AQUATONE: A tool for domain flyovers,如若轉載,請註明來源於嘶吼: 子域名枚舉、探測工具AQUATONE 使用指南 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

[翻譯] Intel 處理器設計缺陷導致嚴重安全漏洞
利用開源工具分析新型PowerPoint惡意文檔
瑞典意外泄漏大量軍事機密及幾乎所有的公民個人信息
實用教程:從網路中獲取NTLM Hash的四種方法
只因更新固件推送出錯 Lockstate智能鎖秒變磚

TAG:信息安全 | 域名 |