怎樣查一個網站下的所有二級網站?
比如http://baidu.com 我要知道這個域名下有那些子域名
http://alexa.chinaz.com/ 輸入http://baidu.com,會查詢出有用戶訪問的所有子域名。
通過Alexa和Google來搜索肯定不全面,考慮到每個域名都要正常解析才能被訪問到,所以查詢DNS記錄是最好的辦法。
搜索到了查詢DNS記錄的方法,通過域名的NS伺服器可以用"ls http://domain.com"的方式查詢所有域名相關記錄,但是可惜,現在的DNS伺服器大都禁用了這個功能以提高安全性。所以,除了窮舉沒別的辦法了。
參考:- http://huaidan.org/archives/1088.html
- http://stackoverflow.com/questions/131989/how-do-i-get-a-list-of-all-subdomains-of-a-domain
本來可以使用nslookup 命令,但現在似乎大多網址都不支持
利用公共資源
- 搜索引擎(Google,Bing,Yahoo,Baidu等等)
- https://virustotal.com/ - 在 Search 里輸入 「domain:target.com」,然後 virustotal 會提供一份子域名列表,和其他一些輔助信息以幫助你觀察子域名。
- https://dnsdumpster.com - 名字說明了一切!你只需要輸入目標域名,然後點擊搜索按鈕,完事。
- https://crt.sh/?q=%25target.com - 有些時候 SSL 中會包含很多有用的信息,使用這個網站搜索 "%target.com" 即可得到你所需要的子域名信息。
- https://censys.io - 不是非常好,但有時也會提供一些有用的信息。
- http://searchdns.netcraft.com/ - 另一種選擇。
- https://www.shodan.io - 無需多言,不僅可以看到子域名信息,還會顯示對應的伺服器版本及其他更多數據。
- 谷歌透明度報告 - 也是利用 SSL 證書發現子域名
利用工具爆破
國外的:
- Subbrute - 快速枚舉 DNS 記錄和子域名。
- dnscan - 使用 Python 寫的基於字典查詢 DNS 的子域名掃描器。
- Nmap - 不僅僅只是埠掃描,可以使用腳本枚舉子域名。使用
--script dns-brute
腳本。 - Recon-Ng - Recon-Ng 框架是一個 Web 信息收集工具,其包含暴力枚舉子域名的模塊。
- DNSRecon - 一個強大的 DNS 枚舉腳本。
- Fierce - 一個半輕量級的枚舉子域名掃描器。
- Gobuster - Go 語言編寫的枚舉目錄和文件的工具,最新版支持 DNS 查詢。
- DNSenum - 提供多線程和遞歸枚舉子域名。
- AltDNS - 提供基於對已發現子域名進行置換的暴力枚舉方式。
國人的:
- wydomain2 - 豬豬俠的作品,好用不解釋。
- 從alexa、chaxunla、ilinks、google、sitedossier、netcraft、threatcrowd、threatminer爬取結果,再與openssl證書+字典窮舉結果合併,生成最終的子域名集合。
- subDomainsBrute - 曾經烏雲核心白帽李劼傑的作品
- Layer 子域名挖掘機 - 法師的作品,因為是用.NET寫的,所以基本只能在Win下使用,也是相當好用的。
原理
子域名發現的原理無非就是以下幾種:
- 利用現有搜索引擎:
- 網頁搜索引擎(如:谷歌等)
- 空間搜索引擎(如:Shodan等)
- SSL證書(如:crt.sh等),這個主要針對大站
- 進行爆破,而爆破又分為兩種:
- 直接訪問子域名
- 利用 DNS 請求
- 其他泄露信息:
- 如 crossdomain.xml 文件等
- 爬蟲遞歸爬取等
- DNS域傳送漏洞等
最後補一句,子域名發現很多的時候還是靠字典,如果你沒有很好的子域名字典,我這裡在放一個國外組織統計的最受歡迎子域名列表:bitquark-subdomains-popular
引自:
xiaixs Blog?xiaix.me以http://dnsdumpster.com為例,搜索http://baidu.com,其所有對應的子域名和ip4地址對應表示為: