子網域名稱列舉的藝術

2022-10-03 08:42:10 字數 2864 閱讀 2227

當我們在查詢某個網域名稱的有效子網域名稱時,我們通常需要使用子網域名稱列舉這項技術。但是,除非dns伺服器暴露了完整的dns空間(涉及到axfr協議),否則我們真的很難拿到目標網域名稱的子網域名稱列表。目前主要的技術是使用乙個常用網域名稱的字典,並通過對每乙個網域名稱嘗試進行解析來查詢子網域名稱。雖然這種方法在某些情況下非常有效,但是對於那些名字非常奇怪或罕見的網域名稱來說,這種方法就沒多大用了。另一種方法就是利用網路爬蟲來爬取二級網域名稱,並嘗試搜尋出子網域名稱的鏈結位址。當然了程式設計客棧,還有一種更加快速的方法,即直接使用搜尋引擎。

子網域名稱列舉是網路偵查階段的乙個重要組成部分,在進行攻擊之前,網路攻擊者需要對映程式設計客棧出目標網路的整體結構,並嘗試找出乙個薄弱點來訪問伺服器所在的內部網路。

在完成了子網域名稱列舉這一過程之後,攻擊者在目標dns空間中找到了下面這個子網域名稱:blog.example.com。攻擊者在對web應用層進行了深度分析之後發現,這個部落格使用了wordpress來作為內容管理系統。那麼接下來,攻擊者就可以使用wpscan來掃瞄wordpress漏洞了。幸運的是,目標網路的wordpress例項使用了乙個存在漏洞的外掛程式,而攻擊者可以利用這個外掛程式設計客棧漏洞來訪問目標伺服器和內部網路。雖然這個例子聽起來有些誇張,但這是乙個出現在巴拿馬檔案中的真實例子。

接下來,我們會給大家介紹幾款目前最流行的開源子網域名稱列舉工具以及相關技術。

最簡單且最基礎的技術就是直接向dns伺服器傳送axfr請求:

dig @ns.example.com example=.com axfrdns域傳送技術可以幫我們拷貝主dns伺服器和二級dns伺服器的內容。因此,我們建議各位網路管理員禁止伺服器接收來自未認證dns伺服器的axfr請求,這樣就可以防止這種攻擊技術了。

注:與dns域傳送技術類似的一項技術名叫nsec攻擊,而這種技術可以列舉出dnssec簽名空間。

google

是時候讓google登場了!沒錯,我們可以使用各種各樣的操作符來優化我們的搜尋語句。正如之前所述,我們可以使用網路爬蟲來爬取目標站點的子網域名稱,而google和bing這樣的搜尋引擎同樣可以幫助我們實現這個目標。我們可以使用「site」操作符來尋找目標站點的子網域名稱:

site:example.com

rapid7 dns資料集-【傳送門】

rapid7 在scans.io庫中對外提供了乙個dns學習資料集,這個dns資料集旨在幫助我們查詢到網際網路中的所有網域名稱,但實際上這個列表並不完整。**完最新版本的快照之後,你可以通過「jq」命令來搜尋子網域名稱【參考資料】:

zcat snapshop.json.gz |

jq -r 'if (.name | test("\\.example\\.com$")) then.name else empty end&www.cppcns.com#39;

「jq」命令會根據正規表示式「ending with .example.com」來匹配並查詢資料集中所有符合條件的子網域名稱。值得一提的是,免費**服務dnsdumpster同樣使用了這種技術。

censys.io – 【傳送門】

censys.io是scans.io所發布的資料子集的訪問介面,它可以通過證書中的關鍵字來進行搜尋,而這通常會幫助我們搜尋出新的子網域名稱:

crt.sh  - 【傳送門】

crt.sh是comodo提供的乙個**服務,它同樣可以完成證書搜尋任務。雖然它所使用的資料集與censys不同,但兩者的核心思想是一樣的:即利用證書資訊來查詢子網域名稱。

需要注意的是,也許有的查詢結果為「nxdomain」,而這些網域名稱很有可能存在於目標的內部網路系統中,因為管理員有的時候會利用這些公共伺服器的證書來設定內部網路伺服器。

sublist3r – 【傳送門】

對於子網域名稱列舉來說,目前最熱門的開源工具當屬sublist3r了。它可以從多個源中獲取查詢的輸出結果。例如:

-google-bing-virustotal-crt.sh-...雖然絕大多數情況下它所返回的資料都是正確的,但你有可能會遇到一些無法解析的子網域名稱(例如響應為「nxdomain」的網域名稱)。這是因為sublist3r會最大程度地查詢可能存在的子網域名稱,而不會去驗證這些網域名稱是否真實存在。

sublist3r還使用了乙個名叫subbrute的獨立專案,而subbrute使用了乙個常用子網域名稱字典,並通過這個字典來找出可以正常解析的子網域名稱集合。

使用方法如下:

python sublist3r.py -d example.com

執行之後,系統將會顯示出example.com的所有子網域名稱。

theharvester – 【傳送門】

這裡要介紹的另一款開源情報收集工具就是theharvester,它可以尋找出與目標網域名稱有關的電子郵箱位址、子網域名稱和虛擬主機。但是與sublist3r相比,它所能提供的子網域名稱查詢結果十分有限。

使用命令如下:

python theharvester.py -d example.com -b allsmart dns brute-forcer (sdbf) – 【傳送門】

子網域名稱列舉工具中通常都包含有乙個需要進行嘗試解析的常見子網域名稱列表,而我們可以利用馬爾可夫鏈的知識來擴充套件這種技術。例如當你查詢到了www1 之後,也許www2 也會存在,以此類推。這篇研究**對這項技術進行了非常詳細的介紹,而sdbf的查詢結果要比簡單的關鍵字列舉技術豐富得多。

下面這張顯示的是我們使用各種工具對whitehoust.gov所進行的子網域名稱列舉結果,資料收集與 2017 年 4 月 24 日。

本文所介紹的這些工具和技術不僅是攻擊者需要學習的,而且**管理員同樣應該好好看一看。因為對於**管理員來說,只有通過定期檢查才能確定哪些子網域名稱已經暴露在了攻擊者的視線範圍之內。換句話說,對自己的網路環境進行定期的網路偵查將會給你提供更大的安全可見度。

除此之外,那些被遺忘的子網域名稱很可能會成為攻擊者的切入點,而這些子網域名稱也會讓你的**面臨子網域名稱接管等威脅,有時甚至還會讓企業的整個網路被非法入侵。

本文標題: 子網域名稱列舉的藝術

本文位址: /news/exp/62019.html

子網域名稱列舉藝術深度剖析

子網域名稱列舉是資訊收集中關鍵的一步,細節很大程度決定戰果。本文參考the art of subdomain enumeration,加上實踐運用進行總結。當通過https訪問web時,向瀏覽器提供數字證書,此證書用於識別 的主機名,由證書頒發機構 ca,certificate authority ...

Sublist3r 子網域名稱快速列舉工具

sublist3r是乙個python版工具,其設計原理是基於通過使用搜尋引擎,從而對站點子網域名稱進行列舉。而子網域名稱爆破工具subbrute也被融入到sublist3r中,主要是通過利用bruteforce強大的字典來獲取更多子網域名稱。安裝 git clone 建議python版本 推薦使用的...

Amass 一款深度子網域名稱列舉工具

今天給大家介紹的是一款名叫amass的深度子網域名稱列舉工具,該工具採用go語言開發,它可以通過遍歷等形式爬取資料來源和web文件,或利用ip位址來搜尋相關的網塊和asn,並利用所有收集到的資訊來構建目標網路拓撲。如何安裝 預編譯獲取amass的預編譯版本 點我獲取 如果你的作業系統環境支援snap...