使用subdomainsBrute進(jìn)行域名及子域名信息收集
在當(dāng)今數(shù)字化時(shí)代,互聯(lián)網(wǎng)的快速發(fā)展帶來了無數(shù)的子域名,這些子域名是構(gòu)成一個(gè)網(wǎng)站的基本組成部分。對(duì)于網(wǎng)絡(luò)管理員和安全專家來說,了解和掌握子域名信息搜集及工具使用技巧至關(guān)重要。子域名信息搜集是指通過各種技術(shù)手段和工具,獲取目標(biāo)網(wǎng)站下的所有子域名的過程。隨著網(wǎng)絡(luò)攻擊和數(shù)據(jù)泄露事件的不斷增加,有效地搜集子域名信息能夠幫助安全團(tuán)隊(duì)更好地識(shí)別和應(yīng)對(duì)潛在的威脅。
子域名信息搜集的過程包括多種方法,其中一種常用的方法是通過DNS查詢獲取子域名。DNS查詢是一種用于獲取域名與IP地址之間映射關(guān)系的協(xié)議,通過查詢DNS服務(wù)器,我們可以獲取到目標(biāo)網(wǎng)站下的所有子域名。除此之外,還有一些自動(dòng)化工具可以幫助我們更快速、高效地進(jìn)行子域名信息搜集,例如SubdomainsBrute、OneforAll、Sublist3r、Amass等工具。
掌握子域名信息搜集的工具使用技巧對(duì)于網(wǎng)絡(luò)安全專家來說非常重要。通過有效地搜集子域名信息,我們可以發(fā)現(xiàn)目標(biāo)網(wǎng)站隱藏的漏洞、弱點(diǎn)或者未經(jīng)授權(quán)的訪問點(diǎn)。
一、subdomainsBrute工具簡(jiǎn)介
subdomainsBrute是一款用Python編寫的子域名爆破工具。它可以根據(jù)提供的字典文件,快速掃描給定域名可能存在的子域名。該工具使用多線程技術(shù)進(jìn)行掃描,提高了掃描效率,并支持將結(jié)果輸出到文件中以便進(jìn)一步處理和分析。
1.1.特點(diǎn)
1).遞歸發(fā)現(xiàn)三級(jí)、四級(jí)、五級(jí)域名
工具使用小字典進(jìn)行遞歸查詢,以便發(fā)現(xiàn)那些不容易被探測(cè)到的域名。
2).全面的字典
該工具提供了較全面的字典,包括3萬多條和8萬條的小字典和大字典。
3).默認(rèn)使用快速可靠的公共DNS
工具默認(rèn)使用114DNS、百度DNS和阿里DNS這幾個(gè)公共DNS服務(wù)器進(jìn)行查詢。您也可以隨時(shí)修改配置文件,添加您認(rèn)為可靠的DNS服務(wù)器。
4).自動(dòng)篩選泛解析的域名
工具會(huì)自動(dòng)篩選出存在泛解析的域名。當(dāng)前的篩選規(guī)則是:如果超過10個(gè)域名指向同一IP,則工具將丟棄后續(xù)發(fā)現(xiàn)指向該IP的其他域名。
5.可接受的掃描速度
整體速度還可以,每秒穩(wěn)定掃描100到200個(gè)域名(使用10個(gè)線程)。
1.2歷史版本的變化
[2022-06-14] Version 1.5:增加了通過HTTPS證書獲取子域名的功能,提高了兼容性,并在Windows系統(tǒng)下通過Proactor事件循環(huán)緩解進(jìn)程句柄限制。
[2022-05-06]:修復(fù)了版本檢查錯(cuò)誤的bug。
[2020-10-29]:增加了對(duì)強(qiáng)制掃描泛解析的域名的支持。
[2020-10-26]:修復(fù)了Windows系統(tǒng)下出現(xiàn)的文件描述符過多的問題。
[2020-05-05]:增加了對(duì)Python 3.5+的支持,提高了執(zhí)行效率。
[2019-05-19]:添加了通配符測(cè)試,提高了掃描速度和可靠性。
[2018-02-06]:添加了多進(jìn)程支持,結(jié)合協(xié)程提高了掃描效率,并對(duì)字典中的占位符進(jìn)行預(yù)處理以提高掃描效率。
[2017-06-03]:修復(fù)了normal_lines的深拷貝問題。
[2017-05-04]:使用協(xié)程替代多線程,使用優(yōu)化級(jí)隊(duì)列減小隊(duì)列長(zhǎng)度,優(yōu)化了對(duì)占位符的支持。
二、域名和子域名的概念和分類
域名和子域名是互聯(lián)網(wǎng)中常用的概念,它們?cè)诰W(wǎng)站尋址和組織上起著重要的作用。
2.1域名
域名是由一串以點(diǎn)分隔的字符組成的網(wǎng)址,用于標(biāo)識(shí)和定位互聯(lián)網(wǎng)上的資源或主機(jī)。例如,"example.com"就是一個(gè)域名。域名通常包含多個(gè)部分,從右到左依次表示級(jí)別。最右邊的部分稱為頂級(jí)域名(Top-Level Domain,TLD),如.com、.org等;其左邊的部分稱為二級(jí)域名(Second-Level Domain,SLD),如example.com;再往左則可以有更多的子域名。域名可以注冊(cè)并與特定的IP地址相關(guān)聯(lián),通過域名解析系統(tǒng)(DNS)將域名轉(zhuǎn)換為對(duì)應(yīng)的IP地址。
2.2子域名
子域名是在主域名下創(chuàng)建的更小的域名,用于進(jìn)一步劃分和組織網(wǎng)站的不同部分。子域名可以根據(jù)需要自由定義,并與主域名共享同一級(jí)別。子域名的格式為subdomain.domain.com,其中subdomain表示子域名的名稱,domain.com表示主域名。子域名可以用于區(qū)分不同的服務(wù)、部門、地理位置或語言版本等,提供更靈活和可擴(kuò)展的網(wǎng)站架構(gòu)。
2.3分類
根據(jù)組織層級(jí)和功能的不同,子域名可以分為以下幾種類型:
1).主機(jī)子域名
用于標(biāo)識(shí)特定的主機(jī)或服務(wù)器,如www.example.com表示網(wǎng)站的主頁。例如:
www.example.com:網(wǎng)站的主頁
ftp.example.com:FTP文件傳輸服務(wù)
mail.example.com:電子郵件服務(wù)
ns1.example.com:DNS服務(wù)
2).服務(wù)子域名
用于區(qū)分不同的服務(wù)或功能,如mail.example.com表示郵件服務(wù)。例如:
api.example.com:API服務(wù)
cdn.example.com:內(nèi)容分發(fā)網(wǎng)絡(luò)
chat.example.com:在線聊天服務(wù)
ads.example.com:廣告服務(wù)
3).地理位置子域名
用于根據(jù)地理位置進(jìn)行區(qū)分,如cn.example.com表示中國(guó)地區(qū)的網(wǎng)站版本。例如:
cn.example.com:中國(guó)地區(qū)的網(wǎng)站版本
us.example.com:美國(guó)地區(qū)的網(wǎng)站版本
jp.example.com:日本地區(qū)的網(wǎng)站版本
sg.example.com:新加坡地區(qū)的網(wǎng)站版本
4).語言版本子域名
用于根據(jù)語言進(jìn)行區(qū)分,如en.example.com表示英文版網(wǎng)站。例如:
en.example.com:英文版網(wǎng)站
fr.example.com:法文版網(wǎng)站
es.example.com:西班牙文版網(wǎng)站
zh.example.com:中文版網(wǎng)站
5).部門子域名
用于區(qū)分不同的部門或團(tuán)隊(duì),如sales.example.com表示銷售部門的網(wǎng)站。例如:
sales.example.com:銷售部門的網(wǎng)站
hr.example.com:人力資源部門的網(wǎng)站
dev.example.com:開發(fā)部門的網(wǎng)站
marketing.example.com:市場(chǎng)營(yíng)銷部門的網(wǎng)站
總結(jié)起來,域名是互聯(lián)網(wǎng)上資源或主機(jī)的標(biāo)識(shí),而子域名是在主域名下創(chuàng)建的更小的域名,用于進(jìn)一步劃分和組織網(wǎng)站的不同部分。根據(jù)組織層級(jí)和功能的不同,子域名可以進(jìn)行多樣化的分類。為了方便,一般來講主站會(huì)有分站的鏈接地址,但為了安全有些組織的子域名僅供內(nèi)部使用,通過內(nèi)部通告獲知,外部只能通過暴力破解等方式來獲取。
三、域名信息搜集的方法和工具
域名信息搜集是指通過各種方法和工具獲取域名相關(guān)的信息,包括域名所有者、注冊(cè)商、DNS服務(wù)器、IP地址、SSL證書等,這些信息對(duì)于網(wǎng)站管理、運(yùn)營(yíng)和安全都非常重要。下面介紹一些常用的域名信息搜集方法和工具:
1).WHOIS查詢
WHOIS是一種協(xié)議,用于查詢域名注冊(cè)信息。可以通過WHOIS查詢工具或在線服務(wù),輸入目標(biāo)域名或IP地址,獲取相關(guān)的注冊(cè)信息、聯(lián)系人、注冊(cè)商、DNS服務(wù)器等信息。常用的WHOIS查詢工具包括whois.domaintools.com、who.is、whois.com等。
2).DNS查詢
DNS查詢可以獲取域名的IP地址、CNAME記錄、MX記錄等信息。
可以使用dig、nslookup、host等命令行工具進(jìn)行查詢,也可以使用在線DNS查詢服務(wù),如dnschecker.org、mxtoolbox.com等。
3.SSL證書查詢
SSL證書查詢可以獲取域名的證書頒發(fā)機(jī)構(gòu)、證書類型、有效期等信息。
可以通過瀏覽器開發(fā)者工具、SSL檢測(cè)工具或在線SSL查詢服務(wù)進(jìn)行查詢,如sslshopper.com、digicert.com等。
4).站長(zhǎng)工具
站長(zhǎng)工具是一類專門針對(duì)網(wǎng)站管理和SEO優(yōu)化的在線服務(wù),提供了豐富的域名信息搜集和分析功能。 常用的站長(zhǎng)工具包括百度站長(zhǎng)平臺(tái)、Google Search Console、Alexa網(wǎng)站排名等。
5).漏洞掃描器
漏洞掃描器可以對(duì)目標(biāo)域名進(jìn)行全面的安全掃描,檢查是否存在漏洞、弱密碼等問題。常用的漏洞掃描器包括Nmap、OpenVAS、Nessus等。
3.1WHOIS查詢工具的使用方法
WHOIS查詢工具是一種通過WHOIS協(xié)議查詢域名注冊(cè)信息的工具,可以查詢域名的所有者、注冊(cè)商、注冊(cè)日期、過期日期、DNS服務(wù)器等相關(guān)信息。下面介紹一些常用的WHOIS查詢工具的使用方法:
1).whois.domaintools.com:
打開whois.domaintools.com網(wǎng)站,在搜索框中輸入目標(biāo)域名,點(diǎn)擊“Search”按鈕。等待查詢結(jié)果展示,即可查看域名的注冊(cè)信息、歷史記錄、DNS記錄等。評(píng)價(jià):需要付費(fèi)注冊(cè)用戶并登錄網(wǎng)站才能查看詳細(xì)信息。
圖片
圖片
2).who.is
打開who.is網(wǎng)站。在搜索框中輸入目標(biāo)域名或IP地址,點(diǎn)擊“WHOIS Lookup”按鈕。等待查詢結(jié)果展示,即可查看域名的注冊(cè)信息、聯(lián)系人、DNS服務(wù)器等。
圖片
3).whois.com
打開whois.com網(wǎng)站。在搜索框中輸入目標(biāo)域名或IP地址,點(diǎn)擊“WHOIS Search”按鈕。等待查詢結(jié)果展示,即可查看域名的注冊(cè)信息、聯(lián)系人、DNS服務(wù)器等。
圖片
4).新網(wǎng)查詢
打開Xinnet域名WHOIS查詢頁面:http://whois.xinnet.com/
在搜索框中輸入目標(biāo)域名,點(diǎn)擊“查詢”按鈕。等待查詢結(jié)果展示,即可查看域名的注冊(cè)信息、聯(lián)系人、DNS服務(wù)器等。
圖片
5).時(shí)代互聯(lián)
打開Now.cn域名WHOIS查詢頁面:https://www.now.cn/whois
在搜索框中輸入目標(biāo)域名,點(diǎn)擊“查詢”按鈕。等待查詢結(jié)果展示,即可查看域名的注冊(cè)信息、聯(lián)系人、DNS服務(wù)器等。
圖片
6).阿里云
打開阿里云WHOIS查詢頁面:https://whois.aliyun.com/,在搜索框中輸入目標(biāo)域名,點(diǎn)擊“查詢”按鈕。等待查詢結(jié)果展示,即可查看域名的注冊(cè)信息、聯(lián)系人、DNS服務(wù)器等。
圖片
3.2子域名爆破工具subdomainsBrute的使用方法
子域名爆破工具"subdomainsBrute"是一種用于掃描目標(biāo)域名的子域名的工具,它通過組合常見的子域名前綴和域名后綴來進(jìn)行暴力破解。下面是使用"subdomainsBrute"的基本方法:
1).安裝"subdomainsBrute"
首先,在命令行或終端中下載并安裝"subdomainsBrute"??梢允褂靡韵旅钸M(jìn)行下載:
git clone https://github.com/lijiejie/subDomainsBrute.git
網(wǎng)頁下載:
https://codeload.github.com/lijiejie/subDomainsBrute/zip/refs/heads/master
2).安裝依賴項(xiàng)
解壓縮subDomainsBrute.zip并進(jìn)入subDomainsBrute目錄。安裝依賴項(xiàng)。
對(duì)于Python 3.5+用戶:
pip3 install dnspython==2.2.1 async_timeout
對(duì)于Python 2.7用戶:
pip install dnspython gevent
3).運(yùn)行"subdomainsBrute"
(1)使用以下命令運(yùn)行subdomainsBrute
python subDomainsBrute.py domain.com
其中,"domain.com"是目標(biāo)域名。
(2)命令行選項(xiàng)
--version:顯示程序版本號(hào)并退出。
-h, --help:顯示幫助信息并退出。
-f FILE:指定包含每行一個(gè)子域名的文件,默認(rèn)為subnames.txt。
--full:完整掃描模式,將使用subnames_full.txt字典文件進(jìn)行掃描。
-i, --ignore-intranet:忽略指向私有IP的域名。
-w, --wildcard:在通配符測(cè)試失敗后強(qiáng)制進(jìn)行掃描。
-t THREADS, --threads=THREADS:指定掃描線程數(shù),默認(rèn)為500。
-p PROCESS, --process=PROCESS:指定掃描進(jìn)程數(shù),默認(rèn)為6。
--no-https:禁用從HTTPS證書獲取域名的功能,這可以節(jié)省一些時(shí)間。
-o OUTPUT, --output=OUTPUT:指定輸出文件名,默認(rèn)為{target}.txt。
四、subdomainsBrute工具的使用實(shí)例
4.1搜集某網(wǎng)站的子域名信息
1).下載并解壓subdomainsBrute
2).安裝依賴項(xiàng)
按照?qǐng)?zhí)行環(huán)境提示安裝依賴項(xiàng)async_timeout
python –m pip install async_timeout
圖片
3).執(zhí)行子域名暴力破解
python subDomainBrute.py xxxx.com
圖片
4).到程序目錄打開xxx.com.txt
如圖所示,可以看到兩列數(shù)據(jù),第一列為域名,第二列是域名對(duì)應(yīng)的解析IP地址。
圖片
五、總結(jié)及評(píng)價(jià)
subdomainsBrute相對(duì)于在線查詢工具來說更為全面,并且不受權(quán)限限制。它提供了更廣泛的查詢結(jié)果,而不僅僅局限于已經(jīng)授權(quán)的子域名。然而,該工具在查詢速度上可能存在一定限制,如果掃描的子域名數(shù)量較多,查詢進(jìn)度可能會(huì)比較慢。跟OneForAll想比較,結(jié)果和數(shù)據(jù)項(xiàng)要少一些,但卻是比較方便。
1).掃描速度快,使用簡(jiǎn)單。
2).部分目標(biāo)掃描結(jié)果數(shù)據(jù)不如OneForAll全面
OneForAll掃描結(jié)果