CDN繞過技術總彙

 近日HVV培訓以及面試,有人問了CDN該如何繞過找到目標真實IP,這向來是個老生常談的問題,而且網上大多都有,但是有些不夠全面,今天把繞過CDN全理一理。術語叫做“深入淺出”。

 CDN簡介

 定義

 內容分發網絡(英語:Content Delivery Network或Content Distribution Network,縮寫:CDN)是指一種透過互聯網互相連接的電腦網絡系統,利用最靠近每位用戶的服務器,更快、更可靠地將音樂、圖片、視頻、應用程序及其他文件發送給用戶,來提供高性能、可擴展性及低成本的網絡內容傳遞給用戶。

 CDN是利用緩存技術,解決如何將數據快速可靠從源站傳遞到用戶的問題。用戶獲取數據時,不需要直接從源站獲取,通過CDN分發,用戶可以從一個較優的服務器獲取數據,從而達到快速訪問,並減少源站負載壓力的目的(負載均衡)

 工作過程

  1. 用戶在瀏覽器輸入域名,先向DNS服務器發送請求

  2. DNS服務器將域名解析權交(通過CNAME)給CDN專用DNS服務器

  3. 客戶端根據返回的ip訪問CDN負載均衡設備

  4. 負載均衡設備根據當前的負載情況和用戶所需內容,返回合適的ip

  5. 客戶端最後根據ip訪問對應的CDN緩存服務器

 優點

  1. 緩解原服務器訪問壓力

  2. 解決互聯互通難題

  3. 解決網站突發流量的問題

  4. 合理利用互聯網資源

  5. 全面預防單點故障

  6. 改善用戶的訪問的質量和體驗

  7. 提供全面、準確、和詳細的數據統計

  8. 有效的防治黑客攻擊源站

......

 適用範圍

 一般來說以資訊、內容等爲主的網站,具有一定訪問體量的網站

  • 靜態內容(html、js、css、image等,如圖牀)

  • 視音頻、大文件下載,分發加速:嗶哩嗶哩、騰訊等視頻,百度雲盤、藍奏雲等

  • 視頻直播加速:鬥魚、淘寶、虎牙直播

  • 移動應用加速:移動app內圖片、頁面、短視頻、UGC等內容,小程序等

 像直播這一類必有CDN,因爲一個網站直播流湧入大量用戶,現在任何一家直播平臺都沒有直接負載的服務器能力。看直播再快的網速都有一定延遲的原因之一就是,需要在CDN裏緩存一部分,用戶從CDN裏觀看。

 判斷是否存在CDN

 方法一:PingPingPing

 不同地區對應着不同的CDN中心,所以使用不同站點的ping服務可分配到不同的CDN。這很簡單,使用各種多站點ping服務來檢查對應的IP地址是否唯一。如果不是唯一的,則使用大多數 CDN。多站Ping網站爲:

 http://ping.chinaz.com/http://ping.aizhan.com/http://tools.ipip.net/ping.php (強烈推薦這個,這個默認多站ping,真的很多)

 方法二:nslookup

 使用 nslookup 進行檢測,原理同上,如果返回域名解析對應多個 IP 地址多半是使用了 CDN。

 有 CDN 的示例:

> ctfking.com
服務器:  public1.alidns.com
Address:  223.5.5.5

非權威應答:
名稱:    d831e3eec87f7d3c02a6-mini-l2.qcloudzygj.com
Addresses:  106.55.85.170
         106.55.85.167
         106.55.86.71
Aliases:  ctfking.com
         d14ca549ac628ef817e7beaa5095976f.qcloudwzgj.com

 無CDN的示例:

> nbufe.edu.cn
服務器:  public1.alidns.com
Address:  223.5.5.5

名稱:    nbufe.edu.cn

 方法三:工具

 CDN Finder

 CDN繞過

 方法一:查詢DNS解析記錄

 1.查看IP與域名綁定的歷史記錄。使用 CDN 之前可能有記錄。相關查詢網站爲:

 Dnsdb

 微步在線

 Netcraft

 IPIP(沒錯又是這個網站,它太猛了)

 2.藉助Securitytrails平臺(https://securitytrails.com/

 攻擊者可以查明真實的原始IP。他們只需在搜索字段中輸入站點域名並按 ENTER,即可在左側菜單中找到“歷史數據”。

 如何找到隱藏在 CloudFlare 或 Tor 背後的真實原始 IP?

 除了過去的 DNS 記錄,即使是當前的記錄也可能泄露原始服務器 IP。例如,MX 記錄是查找 IP 的常用方法。如果網站在與 Web 相同的服務器和 IP 上託管自己的郵件服務器,則原始服務器 IP 將在 MX 記錄中。

 方法二:查詢子域名

 畢竟CDN還是不便宜,所以很多站長可能只會在主站或者流量大的子站做一個CDN,而很多小站子站跟主站在同一個服務器或者同C段,此時可以通過子域對應的IP查詢,幫助找到真實IP站點。

微步在線

上面提到的微步在線功能強大,黑客只需輸入域名即可查找(如baidu.com),點擊子域選項即可找到其子域,但免費用戶每月只有5次免費查詢機會。

Dnsdb

黑客只需要輸入baidu.com TYPE:A就可以收集到百度的子域名和IP。

Google

谷歌站點:baidu.com-www 可以看到除WWW以外的子域

子域掃描器

Layer子域名挖掘機和lijiejie的subdomain那個工具都很不錯

推薦長亭的xray

 方法三:網絡空間引擎

 fofa、鷹圖、Zoomeye、shodan、360

 推薦鷹圖

 只需輸入:title:“網站的title關鍵字”或者body:“網站的body特徵”就可以找出收錄的有這些關鍵字的ip域名,很多時候能獲取網站的真實ip

 方法四:使用SSL證書尋找真實原IP

 如果您在 xyz123boot.com 上託管服務,則原始服務器 IP 爲 136.23.63.44。CloudFlare 將爲您提供 DDoS 防護、Web 應用防火牆和其他一些安全服務,以保護您的服務免受攻擊。爲此,您的 Web 服務器必須支持 SSL 並具有證書。此時,CloudFlare 與您的服務器之間的通信,就像您與 CloudFlare 之間的通信一樣,將被加密(即沒有靈活的 SSL)。這看起來很安全,但問題是當你直接連接到443端口(https://136.23.63.44:443)上的IP時,會暴露SSL證書。

 此時,如果攻擊者掃描0.0.0.0/0,整個互聯網,就可以在xyz123boot.com的443端口獲取有效證書,進而獲取提供給你的web服務器IP。

 目前,Censys 工具可以掃描整個互聯網。Censys 是用於搜索聯網設備信息的新搜索引擎。安全專家可以使用它來評估其實施的安全性,黑客可以使用它作爲初步調查。攻擊目標和收集目標信息的強大武器。Censys 搜索引擎可以掃描整個互聯網。Censys每天掃描IPv4地址空間,搜索所有聯網設備並收集相關信息,並返回資源(如設備、網站、證書等)配置和部署的整體報告。

 攻擊者唯一需要做的就是將上述搜索詞轉換爲實際的搜索查詢參數。

 xyz123boot.com證書的搜索查詢參數爲:parsed.names: xyz123boot.com

 只顯示有效證書的查詢參數爲:tags.raw:trusted

 攻擊者可以在 Censys 上實現多個參數的組合,這可以通過使用簡單的布爾邏輯來完成。

 組合的搜索參數是:parsed.names:xyz123boot.com 和 tags.raw:trusted

 Censys 將向您顯示在掃描中找到的符合上述搜索條件的所有標準證書。

 要一一查看這些搜索結果,攻擊者可以通過單擊右側的“探索”來打開一個包含多個工具的下拉菜單。什麼在使用這個證書?> IPv4 主機

 使用給定的 SSL 證書

 如果您是執法人員,並且想找到隱藏在 cheesecp5vaogohv.onion 下的兒童色情網站。最好的辦法是找到它的原始IP,這樣就可以追蹤它的託管服務器,甚至可以找出它背後的運營商和財務線索。

 隱藏服務具有 SSL 證書。要查找它使用的 IPv4 主機,只需將“SHA1 指紋”(簽名證書的 sha1 值)粘貼到 Censys IPv4 主機搜索中即可找到證書。這種方法很容易找到配置錯誤的Web服務器。

 方法五:使用HTTP頭找到真正的原始IP

 藉助 SecurityTrails 這樣的平臺,任何人都可以在海量的大數據中搜索自己的目標,甚至可以通過比較 HTTP 標頭找到原始服務器。

 特別是當用戶有一個非常特殊的服務器名稱和軟件名稱時,攻擊者更容易找到你。

 如果要搜索的數據很多,如上所述,攻擊者可以在 Censys 上組合搜索參數。假設您正在與 1500 個 Web 服務器共享您的服務器 HTTP 標頭,所有這些服務器都發送相同的標頭參數和值組合。而且您還使用新的 PHP 框架來發送唯一的 HTTP 標頭(例如:X-Generated-Via: XYZ 框架),目前約有 400 位網站管理員使用該框架。最終,在三臺服務器的交匯處,通過人工操作即可找到IP,整個過程僅需幾秒。

 例如,Censys上用於匹配服務器頭的搜索參數爲80.http.get.headers.server:,查找CloudFlare服務的網站的參數如下:

 80.http.get.headers.server:cloudflare

 方法六:利用網站返回的內容尋找真實的原IP

 如果原服務器IP也返回網站內容,可以在網上搜索很多相關資料。

 瀏覽網站源代碼以查找獨特的代碼片段。在 JavaScript 中使用具有訪問權限或標識符參數的第三方服務(例如 Google Analytics、reCAPTCHA)是攻擊者經常使用的一種方法。

 以下是從 HackTheBox 網站獲得的 Google Analytics 跟蹤代碼示例:

 ga('創建','UA-93577176-1','auto');80.http.get.body 可以使用:參數通過body/source過濾Censys數據。不幸的是,普通搜索字段有侷限性。但是您可以在 Censys 請求研究訪問權限,這使您可以通過 Google BigQuery 進行更強大的查詢。

 Shodan 是一個類似於 Censys 的服務,同樣提供 http.html 搜索參數。

 搜索示例:https://www.shodan.io/search?query=http.html%3AUA-32023260-1

 方法七:使用外地主機解析域名

 國內很多CDN廠商因爲各種原因只做國內線,國外線路可能幾乎沒有。這時候我們可能會使用外地主機直接訪問真實IP。

 方法八:網站漏洞搜索

  1. 目標敏感文件泄露,如phpinfo、GitHub信息泄露等探針

  2. XSS盲打、命令執行反向shell、SSRF等

  3. 無論是社會工程還是其他手段,目標網站獲取CDN中的管理員賬號,在CDN的配置中可以找到網站的真實IP。

 方法九:網站郵件訂閱搜索

 RSS郵件訂閱,很多網站都有自己的sendmail,會發郵件給我們。此時,服務器的真實IP將包含在郵件的源代碼中。

 方法十:用Zmap掃描全網

 要找到xiaix.me網站的真實IP,我們首先從apnic獲取IP段,然後使用Zmap的banner-grab掃描出開放80端口的主機進行banner抓包,最後在Host中寫入xiaix.me http請求。

 方法十一:F5 LTM解碼方法

 服務器使用F5 LTM進行負載均衡時,也可以通過set-cookie關鍵字解碼得到真實ip,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,第一個小數部分的十進制數是487098378取出來,然後轉換成十六進制數1d08880a,然後從後往前,取出四位數字,就是0a.88.08.1d,最後再轉換成十進制數10.136.8.29,也是最後一個真實IP。

 方法十二:網頁敏感信息

 這條思路來源於Jacko

 favicon哈希值

 根據網站圖標哈希值搜索IP

 python2腳本

import mmh3
import requests
response = requests.get('https://example.com/favicon.ico')
favicon = response.content.encode('base64')
hash = mmh3.hash(favicon)
print 'http.favicon.hash:'+str(hash)

 去fofa或者shodan上搜索該哈希值

 查詢格式:

  • fofa:icon_hash="xxx"

  • shodan:http.favicon.hash:xxx

 HTML源代碼檢索查找IP

 根據網站頁面HTML中特有的字符串去搜索引擎中搜索,如目標頁面中由HTML標籤爲<title>的字段比較特殊,那麼可以去FOFA中搜索:

title="xxxxxxxxxxxxxxx"

 搜索到的結果會顯示IP,訪問該IP,若能夠正常訪問則爲真正IP,如果打不開則爲CDN或虛擬主機服務器

 更多靶場實驗練習、網安學習資料,請點擊這裏>>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章