找出隱形資產(chǎn)--利用Hosts碰撞突破邊界
從攻擊者的視角來進(jìn)行資產(chǎn)的梳理,采用全端口掃描+子域名收集的方式,識別所有的企業(yè)資產(chǎn)暴露面。但即使是這樣,往往會因?yàn)榕渲缅e(cuò)誤或是未及時(shí)回收等原因,依然存在著一些隱形資產(chǎn)。
01、業(yè)務(wù)場景
一般情況下,使用域名訪問網(wǎng)站需要兩步,一是DNS域名解析到服務(wù)器ip地址,二是將域名綁定到服務(wù)器的IP地址,大多時(shí)候我們會禁止通過IP直接訪問網(wǎng)站,從而防止惡意解析和ip掃描探測,確保用戶訪問只能通過正確的域名才能到業(yè)務(wù)系統(tǒng)。
以一個(gè)企業(yè)級部署架構(gòu)為例,使用Lvs+Nginx構(gòu)建高可用web架構(gòu)。在這種模式下,只需綁定一個(gè)公網(wǎng)ip,就可以實(shí)現(xiàn)內(nèi)網(wǎng)所有服務(wù)端口通過nginx代理的唯一端口映射到外網(wǎng)環(huán)境。

基于這個(gè)企業(yè)級部署架構(gòu),存在兩種典型的漏洞場景:
(1)測試環(huán)境或預(yù)生產(chǎn)環(huán)境,將公網(wǎng)的域名解析清除了,但是Nginx配置沒有及時(shí)清除,綁定正確的host才能正常訪問到。
(2)出于安全性考慮,外網(wǎng)Nginx和內(nèi)網(wǎng)Nginx是需要做嚴(yán)格區(qū)分,但這里卻沒區(qū)分內(nèi)外網(wǎng)。使用同一個(gè)Nginx完成內(nèi)網(wǎng)和外網(wǎng)服務(wù)配置,通過公網(wǎng)域名解析到公網(wǎng),內(nèi)網(wǎng)DNS解析到內(nèi)網(wǎng)。這個(gè)時(shí)候,綁定正確的host就可以訪問到內(nèi)網(wǎng)系統(tǒng)。
02、Hosts碰撞技術(shù)
基于以上場景,域名解析記錄里找不到域名記錄,通過IP端口也訪問不到網(wǎng)站,只有去檢查nginx配置情況,才會發(fā)現(xiàn)配置不當(dāng)可能引發(fā)的安全問題。
那么,從攻擊者的角度,那該怎么去發(fā)現(xiàn)這些隱形資產(chǎn)呢?
這里分享一個(gè)技術(shù),叫Hosts碰撞技術(shù),通過將域名和IP進(jìn)行捆綁碰撞,一旦匹配到后端代理服務(wù)器上的域名綁定配置,就可以訪問到對應(yīng)的業(yè)務(wù)系統(tǒng),從而發(fā)現(xiàn)隱形資產(chǎn)。
當(dāng)然,除了可以用來找到隱形資產(chǎn),我們也可以利用這種方式找到業(yè)務(wù)系統(tǒng)的真實(shí)IP,從而繞過云WAF的安全防護(hù)。
03、自動化掃描工具
hostscan:自動化Host碰撞工具
https://github.com/cckuailong/hostscanHosts_scan:用于IP和域名碰撞匹配訪問的python腳本
https://github.com/fofapro/Hosts_scan