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

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