DNS、HTTP劫持的一些事
1、什么是DNS劫持?
DNS劫持就是通過劫持了DNS服務(wù)器,通過某些手段取得某域名的解析記錄控制權(quán),進而修改此域名的解析結(jié)果,導(dǎo)致對該域名的訪問由原IP地址轉(zhuǎn)入到修改后的指定IP,其結(jié)果就是對特定的網(wǎng)址不能訪問或訪問的是假網(wǎng)址,從而實現(xiàn)竊取資料或者破壞原有正常服務(wù)的目的。DNS劫持通過篡改DNS服務(wù)器上的數(shù)據(jù)返回給用戶一個錯誤的查詢結(jié)果來實現(xiàn)的。
DNS劫持癥狀:在某些地區(qū)的用戶在成功連接寬帶后,首次打開任何頁面都指向ISP提供的“電信互聯(lián)星空”、“網(wǎng)通黃頁廣告”等內(nèi)容頁面。還有就是曾經(jīng)出現(xiàn)過用戶訪問Google域名的時候出現(xiàn)了百度的網(wǎng)站。這些都屬于DNS劫持。
再說簡單點,當你輸入google.com這個網(wǎng)址的時候,你看到的網(wǎng)站卻是百度的首頁。
網(wǎng)站劫持檢測DNS污染檢測
2、什么是HTTP劫持?
在用戶的客戶端與其要訪問的服務(wù)器經(jīng)過網(wǎng)絡(luò)協(xié)議協(xié)調(diào)后,二者之間建立了一條專用的數(shù)據(jù)通道,用戶端程序在系統(tǒng)中開放指定網(wǎng)絡(luò)端口用于接收數(shù)據(jù)報文,服務(wù)器端將全部數(shù)據(jù)按指定網(wǎng)絡(luò)協(xié)議規(guī)則進行分解打包,形成連續(xù)數(shù)據(jù)報文。
用戶端接收到全部報文后,按照協(xié)議標準來解包組合獲得完整的網(wǎng)絡(luò)數(shù)據(jù)。其中傳輸過程中的每一個數(shù)據(jù)包都有特定的標簽,表示其來源、攜帶的數(shù)據(jù)屬性以及要到何處,所有的數(shù)據(jù)包經(jīng)過網(wǎng)絡(luò)路徑中ISP的路由器傳輸接力后,最終到達目的地,也就是客戶端。
HTTP劫持是在使用者與其目的網(wǎng)絡(luò)服務(wù)所建立的專用數(shù)據(jù)通道中,監(jiān)視特定數(shù)據(jù)信息,提示當滿足設(shè)定的條件時,就會在正常的數(shù)據(jù)流中插入精心設(shè)計的網(wǎng)絡(luò)數(shù)據(jù)報文,目的是讓用戶端程序解釋“錯誤”的數(shù)據(jù),并以彈出新窗口的形式在使用者界面展示宣傳性廣告或者直接顯示某網(wǎng)站的內(nèi)容。
3、如何判定是DNS劫持還是HTTP劫持?
從個人遭受DNS和HTTP劫持情況來看,DNS劫持多傾向展示廣告(網(wǎng)頁出現(xiàn)錯誤后跳轉(zhuǎn)某些網(wǎng)頁,如帶有運營商名號的114,189等網(wǎng)頁),惡意插入產(chǎn)品的推廣,如針對特定設(shè)備的推廣,apple設(shè)備的app推廣,某些開發(fā)者利用了apple開發(fā)者協(xié)議這個口子進行的惡意app推廣。
本人的這次DNS劫持的手段相當惡略,其在劫持的網(wǎng)頁中注入了惡意腳本木馬。(在PC端修改UA訪問該網(wǎng)站,Bitdefender不斷的攔截到惡意腳本)
強行推送廣告(非原網(wǎng)頁的廣告)
DNS劫持傾向于持續(xù)性,訪問被劫持的網(wǎng)站時,會不停的出現(xiàn)其惡意廣告。
HTTP劫持,這種劫持也是最為麻煩,其常見的現(xiàn)象為針對大流量網(wǎng)站的加小尾巴行為,如百度,hao123導(dǎo)航,360導(dǎo)航,百度知道,各大電商網(wǎng)站(淘寶,天貓,當當?shù)?#xff09;
HTTP的劫持出現(xiàn)的頻率多變,針對不同的ip也會不同(斷網(wǎng)之后再連接,也許劫持就暫時消失),一定程度會造成錯誤的假象,用戶可能會忽視該問題,由于其劫持過程非常快,只是經(jīng)過某個IP后就快速的跳轉(zhuǎn),用戶如果不注意地址欄的變化,根本不會注意到該問題的出現(xiàn)。
----------------------------------------------------------------------------------------------------------------------------
DNS劫持判斷,更改DNS,改成如114DNS,阿里DNS,onedns等,然后訪問同樣的網(wǎng)頁,之后沒出現(xiàn)類似的問題,即可判定為DNS劫持,DNS的解決不困難,手動換DNS,或者是投訴奸商(效果不理想,我投訴后不到一個星期,劫持再現(xiàn))
HTTP的劫持,判定就困難多了,首先需要排除干擾,如hosts是否干凈,是否有惡意軟件,惡意插件,系統(tǒng)是否中病毒等(還有盜版系統(tǒng)),但是如果有iphone或者是ipad(不越獄),這就比較容易排除干擾項。首先需要注意的是各類的國產(chǎn)軟件的也會造成后面的小尾巴,用戶很容易就錯誤判斷為運營商劫持。(各類瀏覽器插件,小心)
關(guān)于HTTP的劫持的解決方法,目前沒有切實可行的方法可以解決該問題,除了向工信部投訴,然后等待奸商妥協(xié)(不要直接向運營商投訴,劫持問題的發(fā)生地很可能是跨地域的,用月光博客的話說就是“某臺特殊的設(shè)備躺在線路上,對經(jīng)過的http隨機性投毒”,本地運營商極有可能沒有權(quán)限,也沒有技術(shù)去解決,或者是演變成為各級別運營商之間的相互推諉)
目前比較可行的方法是,訪問https加密,這個百度(劫持的重點對象)已經(jīng)動手了,強制http跳轉(zhuǎn)https,但其他網(wǎng)站就別想了。(V-P-N,也ok){強烈建議不要使用hao123,360導(dǎo)航,2345導(dǎo)航,毒霸導(dǎo)航這類網(wǎng)站}
折衷的方法,就是將劫持的IP添加到防火墻上(不是hosts),但是劫持依舊,這是劫持者無法獲利,麻煩的是添加防火墻后,劫持等待跳轉(zhuǎn)的時間比被徹底劫持花費的時間更長。
360導(dǎo)航的劫持IP被阻止后,第一次甚至無法打開360導(dǎo)航
這就是我捕獲的劫持IP(針對百度,hao123,360導(dǎo)航,百度知道)Fiddler的成果,添加防火墻后,過一段時間新的劫持ip又會出現(xiàn)
[CSS]?純文本查看?/?雙擊代碼區(qū)域 Ctrl+A快速復(fù)制
| 01 02 03 04 05 06 07 08 09 10 11 12 | 182.92.105.41?#360導(dǎo)航新 北京阿里巴巴 182.92.105.41 120.24.232.226?#深圳阿里巴巴 123.56.42.120?#杭州阿里巴巴 123.56.42.120 115.29.52.50?#杭州阿里巴巴 120.24.231.137?#深圳阿里巴巴 182.92.77.59?#北京阿里巴巴 182.92.150.103?#北京阿里巴巴 123.57.40.77?#杭州阿里巴巴 114.215.128.157?#青島阿里巴巴 42.96.248.55?#北京阿里巴巴 |
(下文會提到為什么都指向阿里巴巴的服務(wù)器上了)
--------------------------------------------------------------------------------------------------------------華麗分割線
以下是一篇關(guān)于HTTP劫持的詳細技術(shù)解析(http://blog.csdn.net/wr410/article/details/25594273)
ISP的劫持手段真是花樣百出,從以前的DNS(污染)劫持到后來的共享檢測,無不通過劫持正常的請求來達到他們的目的。
之前分析過通過劫持HTTP會話,插入iframe來檢測用戶后端有無共享行為,但后來移動終端的發(fā)展導(dǎo)致ISP開始有所收斂,因為即使檢測出來也不敢斷用戶的網(wǎng)了。
可是現(xiàn)在又出了新的花樣……
最近,每當我打開baidu首頁的時候,總是發(fā)現(xiàn)奇怪的現(xiàn)象,明明輸入的只是www.baidu.com,但是卻莫名其妙的出現(xiàn)了跳轉(zhuǎn),最后發(fā)現(xiàn)實際訪問的URL竟然帶上了尾巴。
好吧,起初我以為我又被流氓軟件盯上了,但左思右索使勁翻遍也沒發(fā)現(xiàn)什么被弓雖女干的跡象,只好打開虛擬機來試試,結(jié)果發(fā)現(xiàn)我干凈的虛擬機也出現(xiàn)了一樣的現(xiàn)象。
這時我才明白,又被電信劫持了,那么這次又是怎樣的劫持手段呢?
-----------------------------------------------------------------------------------------------華麗分割線
被劫持的現(xiàn)象
首先,我們看看現(xiàn)象:
當我們打開www.baidu.com的時候,瀏覽器最終的目的URL卻變成了http://www.baidu.com/?tn=90509114_hao_pg
這中間明顯感受到了頁面的跳轉(zhuǎn),那么我們看看瀏覽器上的后退按鈕,就發(fā)現(xiàn)了端倪。
http://112.124.105.244/jmp?m=redirect&src=szdx-baidu
咦,這是什么地址,看起來就像劫持的玩意,再仔細一看,szdx(深圳電信),真是自報家門,毫不忌諱啊!
劫持的原理
那么電信是如何劫持了我們正常的百度請求呢?
經(jīng)過檢查,DNS是正常的,沒有問題,那就說明這是HTTP鏈路層劫持了。
果斷抓包,進行一次被劫持的會話,很快就有了。
咋一看,請求的服務(wù)器IP沒有錯,似乎沒什么問題,但仔細一看問題就有了。
內(nèi)容完全就不是一回事,這玩意怎么可能是百度返回的嘛,顯然是被赤裸裸的劫持了。
繼續(xù)深挖擴線,看看究竟在哪被劫持了。
先看看正常的百度響應(yīng)。
唔,人家的服務(wù)器可是BWS(BaiduWebServer)呢!
那么就說明,我的HTTP會話被劫持了,收到了偽造的響應(yīng),回頭再從被劫持的TCP流中尋找痕跡。
沒錯,我們找到了這個相當關(guān)鍵的細節(jié)!
我們在收到偽造的響應(yīng)后,又收到了一個被認定為“偽造的重響應(yīng)”數(shù)據(jù)包,而這個數(shù)據(jù)包正是我們這次請求真正的響應(yīng)。
但此時,這個數(shù)據(jù)包已經(jīng)視為無效了,觀察SEQ和ACK編號即可發(fā)現(xiàn)其手段(TCP原理,請參考RFC#3708)。
為了證實這個是偽造的響應(yīng),我們知道一個人可以偽裝成任何樣子,但是其指紋可不是隨便就能改變的。
HTTP工作在應(yīng)用層,應(yīng)用層就是一個人的外貌,想換成什么樣子都行,但是IP層(網(wǎng)絡(luò)層)所在的操作系統(tǒng)可就是指紋了。
我們先看看我這到正常百度服務(wù)器的IP包TTL值為54,這是一般不會改變的,即使路由不同,其波動也不過±1、2
然后再看看被劫持的響應(yīng)IP包TTL值竟然為252,這就證明了不僅被非法劫持了而且這黑手離我僅幾步之遙!
科普:不同的操作系統(tǒng)環(huán)境TTL值一般是固定的一個數(shù),常見的是16的倍數(shù),然后每經(jīng)過一個節(jié)點減1。
順水推舟,揪出元兇。先看看我這到百度服務(wù)器經(jīng)過了哪些網(wǎng)絡(luò)節(jié)點。
嗯,然后我們ping一下百度服務(wù)器,確認其TTL為54,與上述一致。
然后我們ping一下3號節(jié)點,TTL值為253,沒有問題。
接著我們ping下一個5號節(jié)點,TTL值為251,也沒有問題。
那么TTL為252的4號節(jié)點,顯然就是劫持我們的元兇了,可是人家早就不讓ping了,呵呵。
根據(jù)電信的網(wǎng)絡(luò)結(jié)構(gòu),2、3號節(jié)點算是DSLAM接入、匯聚層集,那么4號節(jié)點顯然是在城際骨干網(wǎng)前面插入類IDS系統(tǒng)的節(jié)點了。
由此證據(jù)鏈已經(jīng)完整,我們可以得出一個結(jié)論:HTTP劫持就是ISP所為。
----------------------------------------------------------------------------------------------------華麗分割線
劫持的動機
事物的存在肯定有其必然性,既然現(xiàn)在不檢測共享了,那么為什么要劫持咱們的百度請求呢?
業(yè)內(nèi)人士都應(yīng)該知道,百度和hao123這類網(wǎng)站都有聯(lián)盟存在,聯(lián)盟的作用就是推廣,帶來流量。
加尾巴的行為,就是在做這種事情。
就深圳的居民用戶數(shù)來說,按一天100W的保守訪問計數(shù)來說,假設(shè)100元/W訪問付費,那么一天下來,ISP就有了1W元的收入,那一個月就有30W的額外收入了。
假如通過這種方式,劫持各種購物網(wǎng)站,加入自己的推廣,按一天成交額100W,平均返利1%計算,這又是一天1W元的收入,那一個月又有30W的額外收入了。
所以這種僅僅只需要對HTTP請求的host參數(shù)判別進行劫持就可以坐著收錢的事,誰都何樂而不為呢?
記住上面只是保守計算的例子而已,誰知道將來還有其他的什么東西?
至于這個行為是ISP的行為還可以理解,但如果是某些員工的個人行為私自牟利那我認為這就玩大了,但無論是哪種,粗暴侵犯用戶通信自由,都是違法行為!
建議出現(xiàn)這種現(xiàn)象的用戶,果斷向ISP,必要時可找工信部。
-----------------------------------------------------------------------------------------------------華麗分割線
堅強的后盾
好像遺漏了一點,112.124.105.244這是何方神圣,為何能承載深圳電信數(shù)以萬計的請求量?
inetnum: 112.124.0.0 - 112.124.255.255??
02.netname: ALIBABA-CN-NET??
這個IP來自杭州,查詢IP信息發(fā)現(xiàn),原來是阿里云的服務(wù)器。
加之這個服務(wù)器只是跳轉(zhuǎn)功能,用的是ATS(Apache Traffic Server)服務(wù)器,所以區(qū)區(qū)幾百萬的小流量還真不算什么。
為了盡可能的讓用戶感受不到被劫持,保證速度是關(guān)鍵,看得出人家選擇阿里云也是用心良苦啊!
-----------------------------------------------------------------------------------------華麗麗分割線
向劫持說不
那么我們怎么防范劫持呢??
很遺憾,還真沒辦法預(yù)防。
唯一可行的預(yù)防方法就是盡量使用HTTPS協(xié)議訪問。
目前,我們知道其劫持原理后知道只能通過檢測TTL的變化或HTML元素檢查來判定,但這都不是一般用戶可以解決的。
不過,根據(jù)目前的情況,我們可以考慮在邊界設(shè)備針對TTL為252且為TCP協(xié)議的包做DROP處理,切記不能REJECT。
(以普通居民用戶的網(wǎng)絡(luò)來說,TTL為252的TCP響應(yīng)幾乎不可能存在,所以特異性還是比較突出的)
但治標不如治本,還是去投訴吧!
更新:
現(xiàn)在運營商的劫持又多了新花樣了,原來可以依靠hosts或者防火墻屏蔽特定的站點或ip可以緩解劫持,但是現(xiàn)在運營商又有新招了,針對百度的劫持可以免跳轉(zhuǎn)特定ip來實現(xiàn)。
如果用戶從http://www.baidu.com訪問百度,最后跳轉(zhuǎn)https://www.baidu.com時依然會被加小尾巴,或者是用戶從非https的百度的其他站點,如:news.baidu.com跳轉(zhuǎn)https://www.baidu.com時,同樣可以被加小尾巴,而不需要轉(zhuǎn)到特定的ip來實現(xiàn)劫持。
用戶還需注意下載文件(就算是該文件的官網(wǎng)),用戶下載到的文件也有可能是運營商的CDN服務(wù)器的緩存文件或者是“加料”文件,用戶需要注意文件簽名的更新時間和校檢文件md5
總結(jié)
以上是生活随笔為你收集整理的DNS、HTTP劫持的一些事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 恢复扩容U盘实际容量 检查正版U盘 U盘
- 下一篇: Excel VBA初级系列培训--课时2