當前位置:
首頁 > 最新 > 滲透基礎——選擇一個合適的C2域名

滲透基礎——選擇一個合適的C2域名

安全脈搏獨家發文,如需轉載,請先聯繫授權。

0x00 前言

在滲透測試中,常常需要選擇一個合適的域名作為c2伺服器,那麼什麼樣的域名才能稱之為"合適"呢?

expireddomains.net也許能夠給你一些思路。

通過expireddomains.net能夠查詢到最近過期或刪除的域名,更重要的是它提供了關鍵詞搜索功能。

本文將要測試過期域名自動化搜索工具CatMyFish,分析原理,修正其中的bug,使用python編寫一個爬蟲,獲得所有搜索結果。

0x01 簡介

本文將要介紹以下內容:

測試過期域名自動化搜索工具CatMyFish

分析原理修正CatMyFish中的bug

爬蟲開發思路和實現細節

開源python實現的爬蟲代碼

0x02 測試過期域名自動化搜索工具CatMyFish

下載地址:

https://github.com/Mr-Un1k0d3r/CatMyFish

主要實現流程

用戶輸入關鍵詞

腳本將搜索請求發送到expireddomains.net進行查詢

獲得域名列表

腳本將域名發送到Symantec BlueCoat進行查詢

獲取每個域名的類別

expireddomains.net地址:

https://www.expireddomains.net/

Symantec BlueCoat地址:

https://sitereview.bluecoat.com/

實際測試

需要安裝python庫beautifulsoup4

嘗試搜索關鍵詞microsoft,腳本報錯,如下圖

腳本對結果的解析出現了問題

於是,按照CatMyFish的實現思路自己編寫腳本測試一下

訪問expireddomains.net查詢關鍵詞,代碼如下:

共獲得15個結果,如下圖

通過瀏覽器訪問,共獲得25個結果,如下圖

經過對比發現通過腳本獲得的數目相比瀏覽器要少,應該是腳本在篩選的時候出現了問題

註:

初學者建議掌握一下beautifulsoup4的基本使用技巧,本文暫略

0x03 查找bug原因

1、根據response查看域名標籤,對篩選規則進行判斷

需要獲取到接收到的response數據,通過查看各個域名對應的標籤,判斷是否在標籤篩選的時候出現了問題

查看response數據的兩種方法:

(1) 使用Chrome瀏覽器查看

重新載入網頁,選擇->

如下圖

(2) 使用python腳本

代碼如下:

分析response數據,發現出錯原因:

使用原測試腳本能夠提取出如下數據中的域名:

但是response數據中還包含另一種類型的數據:

原測試腳本沒有提取該標籤中保存的域名信息

0x04 bug修復

篩選思路:

獲得標籤中第一個title的內容

原因:

這樣能同時獲得兩組數據中保存的域名信息,過濾無效信息(如第二個title中的域名GoDaddy.com)

實現代碼:

因此,獲得完整查詢結果的測試代碼如下:

成功獲得第一頁的所有結果,測試如下圖

0x05 獲得所有查詢結果

expireddomains.net每頁保存25個結果,想要獲得所有結果,需要發送多個請求,遍歷所有查詢頁面的結果

首先需要獲得所有結果的數目,除以25獲得需要查詢的頁面個數

1、統計所有結果

查看Response,找到表示搜索結果數目的位置,內容如下:

Chrome瀏覽器顯示如下圖

為了簡化代碼長度,使用直接傳入CSS選擇器進行篩選,在對標籤進行篩選後,第1個標籤表示結果數目,對應查詢代碼為:

輸出結果為

提取其中的數字:

輸出結果為

去掉中間的",":

輸出結果為

除以25即可獲得需要查詢的頁面個數,這裡需要注意需要將字元串類型的"20213"轉換為整型

2、猜測查詢規律

第二頁查詢的url:

https://www.expireddomains.net/domain-name-search/?start=25&q=microsoft

第三頁查詢的url:

https://www.expireddomains.net/domain-name-search/?start=50&q=microsoft

找到查詢規律,第i頁查詢的url:

https://www.expireddomains.net/domain-name-search/?start=&q=microsoft

註:

經測試,expireddomains.net對未登錄用戶最多提供550個的結果,共21頁

3、對結果進行判斷

在腳本實現上,需要對結果進行判斷,如果結果大於550,只輸出21頁,如果小於550,輸出頁

4、模擬瀏覽器訪問(備選)

當我們使用腳本嘗試自動查詢多個頁面時,如果網站使用了反爬蟲機制,無法獲得真實數據

經測試,expireddomains.net並未開啟反爬蟲機制

如果在將來,expireddomains.net開啟了反爬蟲機制,腳本需要模擬瀏覽器發送請求,在頭部附加User-Agent等信息

查看Chrome瀏覽器獲得發送請求的信息,如下圖

對照請求,添加頭部信息即可繞過

示例代碼:

完整代碼實現地址:

https://github.com/3gstudent/GetExpiredDomains

實際測試:

搜索關鍵詞,結果少於550,如下圖

搜索關鍵詞,結果大於550,只顯示21頁,如圖

同Web訪問的內容對比,結果相同,測試成功

0x06 小結

本文測試了過期域名自動化搜索工具CatMyFish,分析原理,修正其中的bug,使用python編寫爬蟲獲得所有搜集結果,分享開發思路,開源代碼。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 SecPulse安全脈搏 的精彩文章:

某cms任意賬戶密碼重置漏洞分析和利用
挖礦軟體自帶清除競爭對手功能

TAG:SecPulse安全脈搏 |