在滲透測(cè)試項(xiàng)目中,外網(wǎng)的信息收集是至關(guān)重要的一個(gè)環(huán)節(jié),外網(wǎng)打點(diǎn)信息收集全面了,可能會(huì)有四兩撥千斤效果,直接突破外網(wǎng)邊界進(jìn)入內(nèi)網(wǎng)。 子域名是域名信息收集的一個(gè)重要部分,在防御措施嚴(yán)密情況下我們無法直接拿下主" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營(yíng)銷資訊 > 建站知識(shí) > 滲透測(cè)試之域名搜集方法總結(jié)

滲透測(cè)試之域名搜集方法總結(jié)

時(shí)間:2023-02-11 22:00:02 | 來源:建站知識(shí)

時(shí)間:2023-02-11 22:00:02 來源:建站知識(shí)

前言:

在滲透測(cè)試項(xiàng)目中,外網(wǎng)的信息收集是至關(guān)重要的一個(gè)環(huán)節(jié),外網(wǎng)打點(diǎn)信息收集全面了,可能會(huì)有四兩撥千斤效果,直接突破外網(wǎng)邊界進(jìn)入內(nèi)網(wǎng)。 子域名是域名信息收集的一個(gè)重要部分,在防御措施嚴(yán)密情況下我們無法直接拿下主域名,那么就可以采用迂回戰(zhàn)術(shù)拿下子域名,然后無限靠近主域名。

戳此獲取網(wǎng)絡(luò)安全資源

一、方法原理介紹

1、利用證書透明度收集子域


原理:
引用谷歌的項(xiàng)目介紹:“要向用戶提供加密流量,網(wǎng)站必須先向可信的證書授權(quán)中心 (CA) 申請(qǐng)證書。然后,當(dāng)用戶嘗試訪問相應(yīng)網(wǎng)站時(shí),此證書即會(huì)被提供給瀏覽器以驗(yàn)證該網(wǎng)站。近年來,由于 HTTPS 證書系統(tǒng)存在結(jié)構(gòu)性缺陷,證書以及簽發(fā)證書的 CA 很容易遭到入侵和操縱。Google 的證書透明度項(xiàng)目旨在通過提供一個(gè)用于監(jiān)測(cè)和審核 HTTPS 證書的開放式框架,來保障證書簽發(fā)流程安全無虞。”

那么,通過這樣的證書透明度項(xiàng)目,我們就可以在其中獲取一些有價(jià)值的域名。

實(shí)現(xiàn)方法:訪問以下鏈接搜索需要查詢的域名如:http://tencent.com

(1)crtsh:https://crt.sh/
(2)facebook:https://developers.facebook.com/tools/ct
(3)entrust:https://www.entrust.com/ct-search/
(4)certspotter:https://sslmate.com/certspotter/api/
(5)spyse:https://spyse.com/search/certificate
(6)censys:https://censys.io/certificates
(7)google: https://google.com/transparencyreport/https/ct/

2、常規(guī)檢查收集子域

2.1 域傳送
原理:
域傳送操作是指?jìng)溆梅?wù)器向主服務(wù)器查詢來刷新自己的Zone數(shù)據(jù)庫,保證數(shù)據(jù)一致性。此操作的目的是為了防止主域名服務(wù)器因意外故障變得不可用時(shí)影響到全局。正常情況下,只有在網(wǎng)絡(luò)里存在備用域名 DNS 服務(wù)器時(shí),DNS區(qū)域傳送操作才有必要執(zhí)行。一旦DNS服務(wù)器被錯(cuò)誤地配置成任何人發(fā)出請(qǐng)求,都向其提供Zone數(shù)據(jù)庫的拷貝,就會(huì)被攻擊者利用。

實(shí)現(xiàn)方法:

1.dig命令
如dig @http://ns2.xxx.com http://xxx.com axfr
http://ns2.xxx.com為提供數(shù)據(jù)的服務(wù)器,http://xxx.com為要傳輸?shù)年P(guān)鍵字,axfr為區(qū)域傳輸選項(xiàng)。
2.python中dns庫
xfr = dns.query.xfr(where=server, zone=self.domain, timeout=5.0, lifetime=10.0)
zone = dns.zone.from_xfr(xfr)

存在問題:
一般情況下,DNS服務(wù)器都配置正確,關(guān)閉了dns傳輸或設(shè)置了白名單,漏洞利用成功的概率較低。

2.2 站點(diǎn)配置文件
原理:
信息泄露問題主要就是某域名下的一些文件會(huì)存儲(chǔ)與其相關(guān)的一些域名,如子域名。此類文件包括跨域策略文件crossdomain.xml, sitemap文件。


實(shí)現(xiàn)方法:
建立文件列表,拼接域名后直接訪問,判斷改文件是否存在。若存在則提取數(shù)據(jù),若不存在則跳過。

1. crossdomain.xml文件
直接訪問crossdomain.xml路徑
2. sitemap文件
直接訪問sitemap.xml、sitemap.txt、sitemap.html、sitemapindex.xml、sitemapindex.xml路徑
存在問題:
文件往往不存在,即使存在,域名信息也不夠多不夠完全。



2.3 檢查內(nèi)容安全策略
原理:
內(nèi)容安全策略(CSP,Content Security Policy)是一種聲明的安全機(jī)制,可以讓網(wǎng)站運(yùn)營(yíng)者能夠控制遵循CSP的用戶代理(通常是瀏覽器)的行為。通過控制要啟用哪些功能,以及從哪里下載內(nèi)容,可以減少網(wǎng)站的攻擊面。CSP的主要目的是防御跨站點(diǎn)腳本(cross-ste scripting,XSS)攻擊。例如,CSP可以完全禁止內(nèi)聯(lián)的JavaScript,并且控制外部代碼從哪里加載。它也可以禁止動(dòng)態(tài)代碼執(zhí)行。禁用了所有的攻擊源,XSS攻擊變得更加困難。CSP中的關(guān)鍵字有default-src、img-src、object-src和script-src。其中*-src可能會(huì)存在域名信息。

實(shí)現(xiàn)方法:

1.手動(dòng)抓包獲取
HTTP header的Content-Security-Policy屬性
2.Python的Requests獲取
import requests
res = requests.post(url=url, headers=headers, data=data, allow_redirects=False)
if not res.headers['Content-Security-Policy']:
print("There is no Content-Security-Policy in the header")
else:
# 處理主體代碼



2.4 利用DNS查詢收集子域
原理:
通過枚舉常見的SRV記錄并做查詢來收集子域srv,以及通過查詢域名的DNS記錄中的MX,NS,SOA,TXT記錄來收集子域。


SRV記錄: 添加服務(wù)記錄服務(wù)器服務(wù)記錄時(shí)會(huì)添加此項(xiàng),SRV記錄了哪臺(tái)計(jì)算機(jī)提供了哪個(gè)服務(wù)。格式為:服務(wù)的名字.協(xié)議的類型(例如:example-server.tcp)。
以下命令枚舉給定域名的SRV記錄:

nmap --script dns-srv-enum.nse --script-args "dns-srv-enum.domain='google.com'" MX記錄: 建立電子郵箱服務(wù),將指向郵件服務(wù)器地址,需要設(shè)置MX記錄。建立郵箱時(shí),一般會(huì)根據(jù)郵箱服務(wù)商提供的MX記錄填寫此記錄。

NS記錄: 域名解析服務(wù)器記錄,如果要將子域名指定某個(gè)域名服務(wù)器來解析,需要設(shè)置NS記錄。

SOA記錄: SOA叫做起始授權(quán)機(jī)構(gòu)記錄,NS用于標(biāo)識(shí)多臺(tái)域名解析服務(wù)器,SOA記錄用于在眾多NS記錄中那一臺(tái)是主服務(wù)器。

TXT記錄: 可任意填寫,可為空。一般做一些驗(yàn)證記錄時(shí)會(huì)使用此項(xiàng),如:做SPF(反垃圾郵件)記錄

3、利用DNS數(shù)據(jù)集收集子域


利用DNS記錄公開數(shù)據(jù)收集
(注:將需要{domain}換成需要查詢的域名,標(biāo)★的是我認(rèn)為效果較好的)

★(1)ip138:https://site.ip138.com/{domain}/domain.htm
★(2)百度云觀測(cè):http://ce.baidu.com/index/getRelatedSites?site_address={domain}
★(3)hackertarget:https://hackertarget.com/find-dns-host-records/
(4)riddler:https://riddler.io/search?q=pld:{domain}
(5)bufferover:https://dns.bufferover.run/dns?q={domain}
★(6)dnsdb:https://dnsdb.io/zh-cn/search?q={domain}
(7)ipv4info:http://ipv4info.com/
(8)robtex:https://www.robtex.com/dns-lookup/
(9)chinaz:https://alexa.chinaz.com/
★(10)netcraft:https://searchdns.netcraft.com/
(11)dnsdumpster:https://dnsdumpster.com/
(12)sitedossier:http://www.sitedossier.com/
★(13)findsubdomains:https://findsubdomains.com/



4、利用威脅情報(bào)平臺(tái)數(shù)據(jù)收集子域

(注:將需要{domain}換成需要查詢的域名, 以下平臺(tái)均需注冊(cè),注冊(cè)后免費(fèi)試用)

(1) https://otx.alienvault.com/api/v1/indicators/domain/{domain}/{section}
{section}指其他指令動(dòng)作,可參考Docs關(guān)于API的使用說明。
https://otx.alienvault.com/api/v1/indicators/domain/qq.com/url_list

(2) https://community.riskiq.com/search/{domain}/subdomains

(3) https://x.threatbook.cn/nodev4/domain/{domain}
API:https://api.threatbook.cn/v3/domain/sub_domains

(4) https://www.threatminer.org/domain.php?q={domain}

(5) https://www.virustotal.com/ui/domains/{domain}/subdomains
或者https://www.virustotal.com/gui/domain/{domain}/relations

(6) https://pentest-tools.com/information-gathering/find-subdomains-of-domain#



5、利用搜索引擎發(fā)現(xiàn)子域


(1) 谷歌搜索語法—site
當(dāng)使用site提交查詢時(shí),Google會(huì)將查詢限制在某個(gè)網(wǎng)站/某個(gè)域下面進(jìn)行,此時(shí)配合其他指令效果更佳,如使用減號(hào)“-”來排除不想要搜集到的域名。

(2) Site:x.x.x. *(目標(biāo)IP)

當(dāng)我們獲取到了子域名的真實(shí)ip后,可以嘗試搜索site:x.x.x.* 進(jìn)行C段搜索,通過這種方法也能找出很多有價(jià)值的其他相關(guān)域名。經(jīng)筆者嘗試,這種方法在搜狗、谷歌搜索引擎上使用有效,谷歌搜索引擎效果更好。

如圖:

6、域名備案搜集資產(chǎn)


原理:
在對(duì)一些大型的目標(biāo)進(jìn)行信息搜集時(shí),還可以通過查找域名備案信息來發(fā)現(xiàn)同備案的其他域名資產(chǎn)。如搜集qq的子域名時(shí),最常見的即為對(duì)http://qq.com進(jìn)行子域名搜集,此時(shí)就會(huì)遺漏其余頂級(jí)域名資產(chǎn)。
查詢網(wǎng)址:http://www.beianbeian.com

如上圖通過查詢http://qq.com的網(wǎng)站備案/許可證號(hào),再對(duì)其進(jìn)行反查,即可發(fā)現(xiàn)http://qq.com同備案的其他頂級(jí)域名資產(chǎn)。
通過域名備案查找同備案的其他域名資產(chǎn),能夠更全面的搜集目標(biāo)資產(chǎn)信息,提升發(fā)現(xiàn)漏洞的概率。

7、whois查詢和關(guān)聯(lián)查詢


工具:站長(zhǎng)工具
在此我們以http://facebook.com做演示,如何進(jìn)行whois查詢和反查


1) 查詢whois

http://whois.chinaz.com/facebook.com

2) 反查whois

http://whois.chinaz.com/reverse?host=**in@fb.com&ddlSearchMode=1&domain=http://facebook.com

獲得關(guān)聯(lián)域名信息。




8、域名爆破


爆破的原理其實(shí)是通過枚舉的方式來實(shí)現(xiàn)的,通過不斷的拼接字典中的內(nèi)容去枚舉域名的A記錄,但是該方法一般需要解決泛解析問題。比如開源工具oneforall會(huì)首先訪問一個(gè)隨機(jī)的并不存在的域,通過返回結(jié)果判斷是否存在泛解析,確定存在泛解析以后,程序會(huì)開始不斷的循環(huán)產(chǎn)生隨機(jī)域名,去向服務(wù)器查詢,將每次查詢到的IP和TTL記錄下來,直到大部分的IP地址出現(xiàn)次數(shù)都大于兩次,則IP黑名單的收集結(jié)束,在得到了IP黑名單以后,oneforall接下來會(huì)將自己的字典中的每一項(xiàng)和要指定查詢的域名進(jìn)行拼接。在爆破過程中根據(jù)IP黑名單進(jìn)行過濾。但這種寬泛的過濾容易導(dǎo)致漏報(bào),所以oneforall將 TTL 也作為黑名單規(guī)則的一部分,評(píng)判的依據(jù)是:在權(quán)威 DNS 中,泛解析記錄的 TTL 肯定是相同的,如果子域名記錄相同,但 TTL 不同,那這條記錄可以說肯定不是泛解析記錄。


二、優(yōu)秀開源工具


調(diào)研了市面上多款開源的子域名收集工具,列舉多款優(yōu)秀工具的功能和優(yōu)點(diǎn)。在此以http://tencent.com為例收集其子域名.簡(jiǎn)單對(duì)比各工具的性能和效果。

戳此獲取網(wǎng)絡(luò)安全資源


工具名稱:oneforall
項(xiàng)目地址:https://github.com/shmilylty/OneForAll
工具描述:oneforall是近幾年出現(xiàn)的比較優(yōu)秀的子域名收集工具之一,目前還在不斷地進(jìn)行更新優(yōu)化。這款工具集成了各種域名信息收集的“姿勢(shì)”,手段可謂是非常全面了。包括利用證書透明度、常規(guī)檢查、利用網(wǎng)上爬蟲(正在實(shí)現(xiàn))、DNS數(shù)據(jù)集、DNS查詢、威脅情報(bào)平臺(tái)、搜索引擎等,但筆者發(fā)現(xiàn)它對(duì)域名泛解析的處理還不是特別理想,存在較多誤收集,同時(shí)存在用時(shí)較長(zhǎng)等缺點(diǎn)。

工具名稱:SubdomainBrute
項(xiàng)目地址:https://github.com/lijiejie/subDomainsBrute

工具描述:李劼杰的SubdomainBrute是業(yè)內(nèi)比較出名的子域名收集工具了,工具采用協(xié)程加快爆破速度,使用114DNS、百度DNS、阿里DNS這幾個(gè)快速又可靠的公共DNS進(jìn)行查詢。準(zhǔn)確率高,效果比較好。但對(duì)泛解析的處理規(guī)則是:超過10個(gè)域名指向同一IP,則此后發(fā)現(xiàn)的其他指向該IP的域名將被丟棄,該方法可能存在誤刪,但不可否認(rèn)的是,該規(guī)則在一定程度上簡(jiǎn)便有效。

工具名稱:ESD
項(xiàng)目地址https://github.com/FeeiCN/ESD
工具描述:ESD的爆破速度極快,62萬條數(shù)據(jù)只用了4分30秒左右,這款工具存在的缺點(diǎn)之一就是對(duì)性能要求高,1G2核的服務(wù)器CPU占用率達(dá)100%。除此之外,輸出的結(jié)果也比較不穩(wěn)定,同一網(wǎng)絡(luò)下對(duì)同一域名進(jìn)行收集,幾次結(jié)果數(shù)量都不一樣。

工具名稱:subfinder
項(xiàng)目地址:https://github.com/projectdiscovery/subfinder
工具描述:使用subfinder來進(jìn)行子域名信息的收集,它的輸出結(jié)果多、基數(shù)大、速度快,并且輸出格式多,便于后續(xù)處理(oneforall也有相同的優(yōu)點(diǎn))。
美中不足的就是此工具無爆破功能,被動(dòng)源相比其他工具來說較少。



三、各工具效果對(duì)比

各工具優(yōu)缺點(diǎn)與功能對(duì)比如下:


(注:因各工具提供的默認(rèn)字典是不同的,字典往往需要自行定義才能發(fā)揮更大作用,故各工具下載后均不做修改,使用自帶默認(rèn)字典進(jìn)行爆破。使用單一域名測(cè)試不具有普遍性,爆破結(jié)果僅供參考。)

按照上圖,單從數(shù)據(jù)層面上看,四款工具中OneForAll的表現(xiàn)比較突出,而李劼杰的subdomainBrute表現(xiàn)也算優(yōu)異,可訪問子域名數(shù)的百分比和時(shí)間都很優(yōu)秀,美中不足的就是爆出的子域名相對(duì)較少。


四、子域名收集常見問題

1、DNS緩存問題
對(duì)于不同的DNS服務(wù)器,其緩存策略可能不同,其緩存結(jié)果也可能會(huì)存在差異,導(dǎo)致在域名查詢時(shí)獲取到未及時(shí)更新的解析結(jié)果。通常情況下,要解決上述問題需要進(jìn)行多次DNS查詢來迫使DNS服務(wù)器刷新緩存,從而獲取正確的結(jié)果。這無疑增加了泛解析判斷和子域名爆破的難度。


其實(shí)這個(gè)問題在OneForAll中也未能得到較好的解決。在判斷是否存在泛解析問題時(shí),OneForAll使用了函數(shù) detect_wildcard(domain, ns_ip_list),在該函數(shù)里面,OneForAll是通過使用不存在的子域名進(jìn)行查詢,從而判斷是否存在泛解析。但是只進(jìn)行一次判斷就下決定是不夠準(zhǔn)確的,可能導(dǎo)致誤判。

2、“死板”的字典
爆破是子域名收集方法的重要組成部分,對(duì)于大部分的這類工具而言,字典的好壞決定了最終的爆破效果。但大部分的字典僅僅只是遍歷字符集,使用常用的高頻詞而不進(jìn)行及時(shí)的更新。當(dāng)字典文件太大時(shí)爆破速度就變得非常慢,并且低效率的字典即使再大也達(dá)不到理想的效果。


在實(shí)際進(jìn)行域名爆破的時(shí)候,一個(gè)能夠自動(dòng)更新的字典無疑會(huì)比普通字典效果更好,在此我們提出一種字典自動(dòng)更新的方案。


五、動(dòng)態(tài)字典


在本節(jié)我們對(duì)字典自動(dòng)更新的方案進(jìn)行較為詳細(xì)的闡述,具體可分為三個(gè)步驟:對(duì)詞語的權(quán)重進(jìn)行更新——?jiǎng)h除原字典中權(quán)值低的詞——從數(shù)據(jù)集中提取高頻詞語加入字典,以此實(shí)現(xiàn)字典的更新。


測(cè)試工具:Subdomainbrute
流程圖如下:

1、 權(quán)值更新

首先,利用工具subdomainbrute及其默認(rèn)字典進(jìn)行子域名爆破,將得到的結(jié)果利用如下腳本進(jìn)行進(jìn)一步批量檢測(cè),判斷該域名是否外網(wǎng)可訪問,并將能夠外網(wǎng)正常訪問的域名保存到success.txt中。

接下來,將mydic中詞語的權(quán)值全部初始化為0。然后比對(duì)success.txt中的三級(jí)域名,將mydic中對(duì)應(yīng)詞語的權(quán)值+1,其他詞語權(quán)值不變。此外需要記錄下本次所查詢的域名,以后查詢相同域名的時(shí)候,不再重復(fù)更新mydic中詞語的權(quán)值。


(注:mydic用于記錄字典中詞語及對(duì)應(yīng)權(quán)值,格式形如www,0)

2、詞語刪除


在使用該字典對(duì)不同域名進(jìn)行n次爆破(如20次)以后,開始對(duì)字典進(jìn)行更新,即對(duì)字典中的詞語進(jìn)行刪除操作。具體步驟如下:


首先,使用record_num.txt文件記錄字典使用的次數(shù)。當(dāng)record_num.txt文件不存在時(shí)則生成,每查詢不同的域名使用次數(shù)+1,重復(fù)查詢相同域名只算作一次。

程序每次運(yùn)行結(jié)束后,判斷是否需要重置mydic。若需要更新,則先刪除record_num.txt文件,然后對(duì)mydic中的數(shù)據(jù)按照權(quán)值大小進(jìn)行排序,排序完成后刪去底部的30%數(shù)據(jù)。

3、字典更新
在刪除了原字典30%的值以后,需要補(bǔ)充新的值到字典中。我們解析http://opendata.rapid7.com上的公開DNS記錄來更新自己的字典。由于下載的數(shù)據(jù)集大小一般有幾十個(gè)G,難以直接處理,所以我們先對(duì)數(shù)據(jù)進(jìn)行切割以減小處理的難度。首先將數(shù)據(jù)集分割為每個(gè)大概100MB的數(shù)據(jù)文件,然后從這些數(shù)據(jù)文件中隨機(jī)抽取一部分,提取出里面的所有子域名,拼接成為字典的“數(shù)據(jù)源”。將提取出來的子域名數(shù)據(jù)進(jìn)行詞頻分析,并將其中的內(nèi)容按照出現(xiàn)的頻率從大到小進(jìn)行排序。選擇出現(xiàn)頻率最高的值加入字典中,直到新字典的大小與舊字典相同為止。最后,需要將新字典中的所有值的權(quán)重清零。


六、總結(jié)


1、除了使用爆破工具外,子域名收集的方法還有很多。比如域傳送漏洞、DNS查詢等常規(guī)手段,還有利用證書透明度、DNS數(shù)據(jù)集、威脅情報(bào)平臺(tái)、搜索引擎、域名備案和whois查詢。綜合來看,在這些方法中威脅情報(bào)平臺(tái)效果最好,證書透明度和DNS數(shù)據(jù)集次之。
2、在本篇文章中我們還對(duì)業(yè)內(nèi)較為優(yōu)秀的幾款工具作了研究、對(duì)比。在對(duì)http://tencent.com的子域名收集測(cè)試中,subfinder和OneForAll的表現(xiàn)較為突出。
3、子域名收集存在的一些主要問題是域名泛解析、不同線路解析出不同IP、子域名爆破時(shí)字典的效率不高等。
4、針對(duì)字典的問題,我們提出了一種字典自動(dòng)更新的方案。


網(wǎng)上關(guān)于子域名收集的方法、工具都很多,但實(shí)際運(yùn)用時(shí)結(jié)果都不夠理想、全面。要想獲得一份高效、有價(jià)值的子域名列表,需要我們結(jié)合不同的方法,合理地運(yùn)用工具進(jìn)行收集。

戳此獲取網(wǎng)絡(luò)安全資源

關(guān)鍵詞:搜集,方法,總結(jié),測(cè)試,滲透

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉