前言python
子域枚舉是找到一個或多個子域的有效(解析的域名)過程。除非DNS服務器公開完整的DNS域列表(域傳送漏洞),不然很難獲取現有的子域列表。一般的作法是使用字典,嘗試暴力破解發現。雖然這種方法在某些狀況下頗有效,但它不包括具備奇怪名稱的子域名(如:thornsshitianxiadiyishuai.baidu.com)。另外一種方法是抓取二級域以便查找子域的連接(更快的方法是直接使用搜索引擎)。正則表達式
子網枚舉使網絡信息收集階段最重要的部分。攻擊者收集完整的列表,在其找到弱點,例如訪問內部網絡。json
實例:api
完成子域名枚舉後,攻擊者將查找blog.example.com。並發現該博客正在使用Wordpress做爲管理系統。攻擊者運行wpscan以找到Wordpress漏洞。幸運的是,目標Wordpress實例使用了一個易受攻擊的插件,攻擊者能夠利用它,獲取對環境的訪問權,進一步到內部網絡離。這個例子可能有點誇張,可是,這是真實發生的事情。(https://www.wordfence.com/blog/2016/04/panama-papers-wordpress-email-connect)服務器
如今咱們來介紹最流行的開源工具和技術,用來執行子域枚舉。開始了:網絡
區域轉移併發
最簡單和最基本技術是直接在DNS服務器上嘗試AXFR請求:ssh
dig@ns.example.comexample=.comAXFRwordpress
區域傳輸用於我主DNS服務器和輔助DNS服務器之間複製區域內容。最佳作法是建議管理員僅容許來自受權的DNS服務器發送AXFR請求。但若是成功,你就發現了金礦。工具
GoogleDorking
使用Google~!你可使用各類運算符來優化搜索查詢(咱們也將這些查詢稱爲「Googledorks」)。如前所述,可使用抓取目標找到許多子域。Google或Bing這樣的其餘搜索引擎。
site:example.com
Rapid7DNS數據集
Rapid7公開提供了正向DNS研究數據。DNS數據集指在發現Interner上發現的全部域。雖然他們作的很好,但這份清單絕對不完整。你能夠在這裏閱讀更多關於若是編譯這些數據集。下載最新的快照,咱們能夠運行jq來查詢子域:
zcatsnapshop.json.gz|
jq-r'if(.name|test("\\.example\\.com$"))then.nameelseemptyend'
jq測試以「.example.com結尾」的正則表達式,以查找數據集中的全部子域。
DNSDumpster是一種免費的在線服務,正在使用這種技術。
主題備用名稱
主題備用名稱(SAN)是X.509證書中的擴展,以在一個證書中提供主題不一樣的名稱。公司常常爲多個子域生成一個證書以節省資金。
咱們能夠查看證書以使用兩種不一樣的來源尋找SAN中的子域。
Censys.io
Censys.io是scan.io發佈的數據子集的接口。它容許在證書中搜索關鍵字,從而可能揭示新的子域:
https://censys.io/certificates?q=.example.com
Crt.sh
Crt.sh是由COMODO提供的證書在線搜索服務。它使用與Censys不一樣的數據集,但原則是同樣的:在證書中找到子域。
https://crt.sh/?q=%25.example.com
值得注意的是,儘管一些域名對NXDOMAIN作出了迴應,但它們仍然可能存在於內部網絡上。管理員有時會在內部網服務器上重用公用服務器的證書...
Sublist3r
用於子域枚舉的最受歡迎的開源工具之一就是Sublist3r。它彙總了許多不一樣來源的輸出,包括:
谷歌
Bing
virustotal
crt.sh
...
數據在大多數狀況下是正確的,但你可能會遇到不可解析的子域(使用NXDOMAIN響應的域)。這是由於Sublist3r很大程度上依賴於被動數據,而且不能驗證發現的子域是否真的存在。
Sublist3r還使用一個名爲subbrute的獨立項目。Subbrute正在使用通用子域名的字典,以便找到可解析的子域的子集。
pythonsublist3r.py-dexample.com
並將example.com的子域名列表提交給你。
theHarvester
另外一個開放源代碼的智能蒐集工具,被稱爲Harsves,並在目標域以及子域和虛擬主機上找到電子郵件地址。可是,與Sublist3r相比,它提供了更少的子域結果。你可使用如下命令運行Harvester:
pythontheHarvester.py-dexample.com-ball
SDBF
子域枚舉工具一般嘗試常見子域列表。這種方法能夠經過使用馬爾科夫鏈來擴展,以便發現子域名結構(例如,您有www1,www2可能存在等等)。CynthiaWagner等人的研究論文更詳細地解釋了這一技術。SDBF產生的結果遠遠優於子域名的關鍵字枚舉。
結論
按期檢查是發現子域的最好作法。對目標進行頻繁偵察將爲你提供更大的可見性。
被遺忘的子域名可使你的環境和公司面臨各類各樣的威脅,如子域接管甚至徹底妥協,如本博客開始時的示例所示。