知識碎片之CDN

今天在瀏覽大佬們的博客時發現了CDN這個詞,作爲一個菜鳥的我對這個詞一無所知!CDN是啥?它對我們的滲透測試會造成什麼樣的阻礙?作爲一隻菜鳥如果遇到新的知識就想着繞過那麼永遠也只能是一隻菜鳥,要對於新的知識無所畏懼,恐懼,排斥,畏懼源於陌生與不瞭解,當你花時間去了解它的時候,你會發現原來也就這樣啊!

首先我們不談什麼是CDN,我們先談一下它對滲透測試的影響。在滲透測試之我的滲透測試觀裏我總結過Getshell的路子有三條,Web、主機、社工。社工這條路屬於高級玩法,脫離了技術層次暫且不談,主要談談CDN對於主機及Web這兩條路的影響。我們知道在互聯網中需要通過IP來確定一臺主機,如果不知道主機的IP那麼滲透測試中主機這條路是根本沒有辦法走的。作爲菜鳥的我最初認爲拿到主機IP有什麼難度,直接ping一下域名然後看一下IP不就可以了!這種想法在互聯網技術如此發達的今天簡直不要太幼稚!!CDN技術的存在還真的讓你很難找到域名所對應的目標服務器的IP地址。除此之外現在的CDN服務很多都附帶提供防火牆服務,那麼少年有防火牆環境下的Web滲透你玩的溜嗎?
總結下CDN的存在把我們滲透測試的主機這條路給堵死了,把Web這條路堵了一半!嗯?這還怎麼玩?當然有的玩了!只不過增加了難度而已!不過話說回來滲透測試的樂趣不就在於攻克一個個難關到最後拿到我們想要的嗎?!知己知彼,百戰不殆,接下來我們正式的認識下CDN,首先百度詞條對它解釋如下:

CDN的全稱是Content Delivery Network,即內容分發網絡。CDN是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內容存儲和分發技術。

CDN圖片來自與Baidu詞條

百度詞條的解釋太官方了,接下來結合上面的圖片談一談我的認識。一些網站由於性能或者技術等方面限制導致在大量用戶訪問時出現明顯的延時從而降低用戶體驗,爲了解決這個問題CDN技術出現了。CDN的主要核心就是分佈於世界各地的緩存服務器,這些緩存服務器的功能就是緩存購買了CDN服務的服務器的內容,這樣當處於世界各地的用戶訪問目標網站時就不需要直接訪問目標網站對應的服務器而是訪問離用戶最近的CDN服務器(所以此時的IP其實是緩存服務器的IP)。說白了CDN就是將目標服務器的訪問壓力分散到緩存服務器。
至於具體的原理我也沒了解太多,這裏就簡單的寫一下。

  1. 在瀏覽網站的時候我們首先需要將域名輸入到瀏覽器的地址欄裏然後點擊回車,這時瀏覽器會進行DNS查詢(題外話:進行DNS查詢主機上hosts文件的優先級大於公網DNS服務器)
  2. 購買了CDN服務的網站在設置自己的DNS解析信息會將CNAME記錄設置爲CDN服務商DNS服務器(題外話:DNS解析時存在A記錄和CNAME記錄,A記錄對應的是IPv4,CNAME對應的是另一個域名,如果某域名存在A記錄則在解析時返回IPv4地址,否則返回CNAME對應的域名)爲此在用戶通過DNS服務請求解析時DNS服務器將CDN的DNS服務器IP返回給用戶
  3. 主機將訪問CDN的DNS服務器,DNS服務器將負責全局負載均衡的服務器IP地址返回給用戶
  4. CDN全局負載平衡服務器根據用戶IP以及請求內容,選擇一臺用戶所屬區域的負載平衡設備然後告訴用戶向其發起訪問。
  5. 區域負載設備一般根據就近原則、請求內容及負載狀態會爲用戶選擇一臺合適的緩存服務器提供服務。
  6. 用戶就向這個緩存服務器發起請求,緩存服務器將內容返回給用戶。如果內容不存在緩存服務器會向上逐層請求內容直到源服務器,獲取內容後將其緩存併發送給用戶。

原來CDN技術設計的初衷真的不是用來防禦攻擊的,隱藏目標服務器(源服務器)IP地址、提供防火牆服務及防DDoS真的都是副產品。那麼回到正題我們如何判別我們的目標是否購買了CDN服務以及如果是的話如果將CDN從我們的滲透道路上掃除呢?
可以藉助站長之間的Ping工具判斷目標網站是否購買了CDN服務,從多個地點ping目標域名看一下IP地址是否相同,比如對某網站進行ping的時候地址都一樣這很大程度上說明沒有CDN。

ping如果有CDN我們改如何繞過獲得目標服務器的真實IP呢?這些方法網上有很多,比如:

  • ping二級域名,購買CDN服務可是要花錢的,一般不會爲二級域名購買
  • 向國外DNS服務器請求目標服務器IP地址,國內很多網站一般都面向國內用戶
209.244.0.3
64.6.64.6
8.8.8.8
9.9.9.9
8.26.56.26
199.85.126.10
208.67.222.222
195.46.39.39
69.195.152.204
208.76.50.50
216.146.35.35
37.235.1.174
198.101.242.72
77.88.8.8
91.239.100.100
74.82.42.42
109.69.8.51
156.154.70.1
1.1.1.1
45.77.165.194
# 引自 https://blog.csdn.net/qq_27446553/article/details/81437829

其餘方法還有很多網上都有這裏就不在贅述了,貼幾個連接

參考

  1. 經驗分享|談談滲透測試中的信息蒐集
  2. 菜鳥瞭解Cdn 技術“理解滲透”

問題

  1. whois提供的網段信息是否值得參考
  2. 爲什麼不可以通過CNAME記錄判斷是否使用了CDN
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章