繞過CDN尋找網站真實IP的方法匯總

0x00 寫在前面

工作所需,將」繞過CDN尋找網站真實IP「的方法進行匯總。打開筆記,發現保存了好幾篇以前收集的一些相關文章。文章都比較類似,方法大同小異,做個匯總,也添加一些自己積累。

0x01 判斷ip是否為網站真實ip

這個就很簡單了,簡單說下幾個常見的方法:

1. Nslookup:

Win下使用nslookup命令進行查詢,若返回域名解析結果為多個ip,多半使用了CDN,是不真實的ip。

2. 多地ping查詢

使用不同區域ping,查看ping的ip結果是否唯一。若不唯一,則目標網站可能存在CDN。

網站有:

https://asm.ca.com/en/ping.php/http://ping.chinaz.com/https://ping.aizhan.com/

3. 使用工具直接查詢

參見如下網站:

http://www.cdnplanet.com/tools/cdnfinder/https://www.ipip.net/ip.html

0x02 繞過CDN查找真實ip

方法整理如下:

1. 子域名入手

某些企業業務線眾多,有些站點的主站使用了CDN,或者部分域名使用了CDN,某些子域名可能未使用。查詢子域名的方法就很多了:subDomainsBrute、Sublist3r、Google hack等。

還有某些網站可以進行查詢。例如:

https://dnsdb.io/zh-cn/

2. 利用網站漏洞

如果目標站點存在漏洞,這就沒辦法避免了。例如phpinfo敏感信息泄露、Apache status和Jboss status敏感信息泄露、網頁源代碼泄露、svn信息泄露信、github信息泄露等。

若存在web漏洞,伺服器主動與我們發起請求連接,我們也能獲取目標站點真實ip。例如xss、ssrf、命令執行反彈shell等。

3. 歷史DNS記錄

查詢ip與域名綁定歷史記錄,可能會發現使用CDN之前的目標ip。查詢網站有:

https://dnsdb.io/zh-cn/https://x.threatbook.cn/http://toolbar.netcraft.com/site_report?url=http://viewdns.info/http://www.17ce.com/https://community.riskiq.com/http://www.crimeflare.com/cfssl.html

4. CDN本身入手

若從CDN本身入手,比如利用社工等,得到控制面板的賬號密碼,那真實ip就很輕易能獲取到了。

5. Mx記錄或郵件

很多站點都有發送郵件sendmail的功能,如Rss郵件訂閱等。而且一般的郵件系統很多都是在內部,沒有經過CDN的解析。可在郵件源碼裡面就會包含伺服器的真實 IP。

6. 國外請求

通過國外得一些冷門得DNS或IP去請求目標,很多時候國內得CDN對國外得覆蓋面並不是很廣,故此可以利用此特點進行探測。 通過國外代理訪問就能查看真實IP了,或者通過國外的DNS解析,可能就能得到真實的IP查詢網站:

https://asm.ca.com/en/ping.php

7. 掃描探測

通過信息收集,縮小掃描範圍,確定一個相對小的IP和埠範圍(中國?AS號?B段?等)

通過http指紋特徵和keyword等做綜合判斷。可使用工具如下:

https://github.com/zmap/zgrab/http://www.ipdeny.com/ipblocks/

zgrab 是基於zmap無狀態掃描的應用層掃描器,可以自定義數據包,以及ip、domain之間的關聯。可用於快速指紋識別爆破等場景。

可參考這篇文章:利用Zgrab繞CDN找真實IP - Levy Hsu

8. Zmap大法?

據說掃描全網,只要44分鐘?

可參考這篇文章:簡單獲取CDN背後網站的真實IP - 安全客 - 有思想的安全新媒體

9. 網路空間引擎搜索法

zoomeye、fofa、shodan

通過這些公開的安全搜索引擎爬取得歷史快照,主要得一些特徵總結如下:

特有的http頭部(如server類型、版本、cookie等信息)、

特定keyword(如title、css、js、url等)、

特定的IP段搜索(如fofa支持C段搜索),

有些時候爬取的時候不一定含有上面那些特徵,但是我們仍然需要仔細排查。

10. 查詢Https證書

此方法來自於去年CplusHua表哥在Freebuf公開課《HTTP盲攻擊的幾種思路》中分享的:

查詢網站:

https://censys.io/

這個網址會將互聯網所有的ip進行掃面和連接,以及證書探測。若目標站點有https證書,並且默認虛擬主機配了https證書,我們就可以找所有目標站點是該https證書的站點。

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com

11. F5 LTM 負載均衡解碼獲取真實內網ip

之前看了這篇文章:透過F5獲取伺服器真實內網IP - ThreatHunter

我就在想,假如目標站點有CDN,是否就跟F5做負載均衡衝突了?是否需要找到目標站點 真實ip,才能通過F5獲取目標真實內網ip?所以以為可能該方法不能用來繞過CDN獲取真實IP。

今天諮詢了下hblf表哥:他說應該不會衝突,之前碰到過案例:某企業先在內網出口使用F5做ISP的鏈路負載均衡,然後再用CDN加速。這樣的話,客戶端還是可以看到F5埋的那個cookie。而且經過CDN,埋的cookie不會被修改或者刪除,所以客戶端還是可以看到。

通過解碼就可以得到目標伺服器真實內網ip。具體方法和原理參見hblf表哥的這篇文章。

所以就把該方法也總結在這兒。

0x03 後記

就當是個瞎總結吧,蠻寫一下,希望對你有幫助。PS:如果表哥們如果還有其他方法,求學習。

最後,謝謝hblf表哥、面具表哥的指導。

0x04 參考鏈接

安勝:黑客尋找網站真實IP手段大揭秘!

xiaix:繞過CDN查找網站真實IP-xiaixs Blog

f4ther:逆向CDN的各種方式總結(乾貨,附解決方案)

lovesec:繞過CDN查看網站真實IP的一些辦法


推薦閱讀:

Hacking Team 泄密事件到底有多嚴重?其中說到的那個 Flash 漏洞會造成怎樣的後果?

TAG:網路安全 | 滲透測試 | Web漏洞 |