子域名枚舉的藝術

  翻譯文章,原文:The Art of Subdomain Enumeration[1]

​介紹

在此博客文章中,我們將為您提供有關子域枚舉——是網絡查殺鏈[2]中偵察階段的重要組成部分。網絡攻擊者繪製出目標的數字足跡,以便發現薄弱環節,例如獲得對內部網絡的訪問權限。已經知道了嗎?請訪問sweepatic.com,以獲取強大的偵察解決方案!還在好奇嗎?繼續閱讀!


子域名枚舉的藝術


子域枚舉是為一個或多個域找到有效(可解析)子域的過程。除非DNS服務器(AFXR[3])公開完整的DNS區域,否則實際上很難獲得現有子域的列表。常用的做法是使用常用名字典,以嘗試解析它們。儘管此方法在某些情況下有效,但它不包含名稱奇怪的子域。另一種方法是對第二級域進行爬網,以查找到子域的鏈接(更快的方法是直接使用搜索引擎)。

Example:

完成子域枚舉過程後,攻擊者將blog.example.com作為目標DNS區域中的子域之一。攻擊者正在將這一發現擴展到Web應用程序層,並發現該博客正在使用Wordpress作為內容管理系統。然後,攻擊者運行wpscan[4]來發現Wordpress漏洞。幸運的是,目標的Wordpress實例使用了一個易受攻擊的插件,攻擊者可以利用該插件來利用,獲取對環境的訪問權並進一步進入網絡。

讓我們介紹執行子域枚舉的最流行的開源工具和技術。開始了:

Zone transfer

最簡單和基本的技術是直接在DNS服務器上嘗試AXFR請求:

<code>

dig

@ns

.example.com example=.com AXFR/<code>

區域傳輸用於在主DNS服務器和輔助DNS服務器之間複製區域的內容。最好的實踐建議管理員僅允許來自授權DNS服務器的AXFR請求,因此上述技術可能無效。但是,如果這樣做,您已經找到了一個金礦[5]。

與區域傳輸類似,存在一種所謂的NSEC walking attack[6],該攻擊枚舉了DNSSEC簽名的區域。

Google Dorking

是時候使用Google了!幸運的是,您可以使用各種運算符來優化搜索查詢(我們也將這些查詢稱為“ Google dorks”)。如前所述,使用爬蟲爬取目標,可以找到很多子域名。

<code>

site

:example.com

/<code>

Rapid7 DNS dataset

Rapid7公開提供其Forward DNS study/dataset[7]。DNS數據集旨在發現Internet上找到的所有域。儘管他們做得很好,但清單絕對不完整。您可以在此處[8]閱讀有關它們如何編譯數據集的更多信息。下載最新快照後,我們可以在其上運行jq[9]來查找子域:

<code>zcat snapshop.json.gz 

|jq -r '

if

(.name |

test(

"\\.example\\.com$"

))

then

.name

else

empty

end

'

/<code>

jq測試正則表達式“以.example.com結尾”以查找數據集中的所有子域。

DNSDumpster[10]是一項完全使用此技術的免費在線服務。

主題別名

主題別名[11](SAN)是x.509證書中的擴展,可以在一個證書中提供不同的主題名稱。公司通常會為多個子域生成一個證書,以節省資金。

我們可以使用兩種不同的來源來尋找證書來尋找SAN中的子域:

Censys.io

Censys.io[12]是由scans.io發佈的數據子集的接口。好處是,它允許在證書中搜索關鍵字,從而潛在地揭示新的子域:

<code>

https

:/<code>

Crt.sh

Crt.sh[13]是COMODO提供的用於證書搜索的在線服務。它使用與Censys不同的數據集,但是原理是相同的:在證書中查找子域。

<code>

https

:/<code>

值得注意的是,儘管某些域使用NXDOMAIN進行響應,但它們仍可能存在於內網中。管理員有時會將證書重新用於其內網服務器上的公共服務器。

Sublist3r

最受歡迎的子域名枚舉工具,它彙總了許多不同來源的輸出,包括:

•Google

•Bing

•Virustotal

•crt.sh

•...

儘管在大多數情況下數據是正確的,但是您可能會遇到不可解析的子域(使用NXDOMAIN響應的域)。這是因為Sublist3r嚴重依賴於被動數據,並且不驗證找到的子域是否確實存在。

Sublist3r還使用一個名為subbrute的獨立項目。Subbrute使用常見子域名的詞典來查找可解析的子域的子集。

<code>

python

sublist3r

.py

-d

example

.com

/<code>

theHarvester

另一個開源情報收集工具, 稱為 theHarvester[14],可在目標域以及子域和虛擬主機上找到電子郵件地址。但是,與Sublist3r相比,它提供的子域結果更少。您可以使用以下命令來運行Harvester:

<code>

python

theHarvester

.py

-d

example

.com

-b

all

/<code>

Smart DNS Brute-Forcer (SDBF)

子域枚舉工具通常包括它們嘗試解析的常見子域列表。可以通過使用馬爾可夫鏈來擴展此方法,以便發現子域名結構(例如,您擁有www1,則可能存在www2,依此類推)。辛西婭·瓦格納(Cynthia Wagner)等人有一篇研究 論文[15] 更詳細地解釋了該技術。SDBF產生的結果遠遠優於簡單的子域關鍵字枚舉。

References

[1] The Art of Subdomain Enumeration: https://blog.sweepatic.com/art-of-subdomain-enumeration/

[2] 網絡查殺鏈:
https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html

[3] AFXR: https://www.us-cert.gov/ncas/alerts/TA15-103A

[4] wpscan: https://github.com/wpscanteam/wpscan

[5] 找到了一個金礦:
https://thehackerblog.com/the-international-incident-gaining-control-of-a-int-domain-name-with-dns-trickery/index.html

[6] NSEC walking attack: https://nmap.org/nsedoc/scripts/dns-nsec-enum.html

[7] Forward DNS study/dataset: https://scans.io/study/sonar.fdns_v2

[8] 此處:
https://github.com/rapid7/sonar/wiki/Forward-DNS

[9] jq: https://stedolan.github.io/jq/

[10] DNSDumpster: https://dnsdumpster.com/

[11] 主題別名:
https://tools.ietf.org/html/rfc3280#section-4.2.1.7

[12] Censys.io: https://censys.io/

[13] Crt.sh: https://crt.sh/

[14] theHarvester: https://github.com/laramies/theHarvester

[15] 論文:
https://www.foo.be/papers/sdbf.pdf


分享到:


相關文章: