WiFi流量劫持—— 瀏覽任意頁面即可中毒!

大家都知道公共場所的Wifi安全性很差,但並不清楚究竟有多差。大多以爲只要不上QQ、不登陸網站賬號就沒事了,看看新聞小說什麼的應該毫無關係。

  的確如此,看看新聞網頁沒有涉及任何敏感的賬號信息。即便是數據明文傳輸,Hacker也只能嗅探到你看了哪些新聞,這些毫無價值的信息。

  不過如此守株待兔的嗅探,似乎也太被動了。既然我們能主動控制流量,何必用這種弱爆了的方法呢?

  --------------------------------------------------

  在上一篇文章《把筆記本改造成無線路由器 ——  手機抓包牛刀小試》裏提到如何實現Wifi的流量攔截,並做出更大範圍的攻擊。

  今天,我們使用一種古老的技術,打造一個巧妙的時光機原型,讓我們的腳本能穿越到未來運行。即便今天只看了幾個小說網頁,也能在未來幾天甚至幾星期後,打開其他網站時釋放我們的代碼。

  讓入侵不再受時間與空間的限制,實現超長詛咒!

  

  

  (全圖鏈接:http://images.cnitblog.com/blog/273626/201306/26213334-97186026e3b948db928704244c6cb830.png

  

  原理其實非常簡單,相信大家看完圖就明白了。

  1. 當有人連上我們創建的AP時,他的命運已掌控在我們手中了!

  2~5.  他訪問任何網站,我們的Web代理就能在其中插入一段腳本代碼了。當然這不是一般的廣告的代碼,而是預加載各大網站所用到的腳本文件。

  6~7.  一切都在我們掌控之中,我們並非返回真正的腳本庫文件。事實上一次預加載那麼多文件,很是浪費帶寬~ 我們只返回一個很小的“樁文件”,讓他在未來打開網頁時再加載真正的文件。此外,這個“樁文件”裏我們還可以額外加些其他腳本:) 由於這些腳本庫通常有着很長的緩存時間,因此只要在用戶在清空緩存之前,始終從本地緩存裏讀取這個文件!

  8~12. 即使用戶離開了公共場所,但常用的腳本文件都已被感染並緩存。只要未來某一天登陸我們預先感染的網站,腳本將穿越時空被喚醒!

  由此看來,只要實現了第1步,之後的幾乎都是順理成章了!

  

  不過並非所用的人都是小白,還是有不少警惕性高的用戶,不會輕易連接沒有密碼的公開wifi。事實上很多餐廳咖啡店的wifi都是設置了公開的密碼的。

  對於這種情況,我們就需要一個功率更大的AP了,並且將SSID與密碼設置的和咖啡店的完全一致 —— 根據wifi的連接策略,同樣的熱點名將會優先選擇信號更好的。如果密碼也一樣,他們就能順利的連上我們的AP。於是我們的熱點就像磁金石一樣,將新來的用戶統統吸過來,於是可以盡情的掌控了~~~

  

  不過最終的難點卻不在此,要找出每個網站緩存最久的腳本資源纔是重中之重。

  事實上,光看緩存時間是遠遠不夠的 —— 有不少文件設置了很久的緩存,但是他們卻經常的更新。最常見的就是帶時間戳或哈希值的腳本URL,他們幾乎三兩天換一個,卻有很長的緩存時間,這顯然是不可取的。因此,我們需要根據資源的緩存時間上次修改時間,來衡量其穩定程度

  爲了能方便從各大網站尋找穩定度較高的資源,我們使用PhantomJS來實現自動化分析。PhantomJS是沒有界面的命令行Webkit瀏覽器,使用它來模擬網站的訪問,能爲我們節省大量的系統資源。

  我們監聽page.onResourceReceived事件,即可獲取所有資源請求的迴應數據。之前已提到,緩存時間是必要條件,修改時間是充分條件。修改時間早說明這個資源不經常改變,可以放心用!

  首先我們過濾掉緩存很短的資源,很快就過期的資源是沒有利用價值的。然後按上修改時間的先後排序,最終爲每個站點選擇穩定度最優的幾個資源。

  代碼實現很簡單:

  https://raw.github.com/EtherDream/closurether/master/tool/cache-sniffer/sniffer.js

  我們測試幾個常用的大網站(url.txt):

複製代碼
www.hao123.com
www.taobao.com
www.renren.com
www.kaixin001.com

www.baidu.com
www.baidu.com/s?wd=ss
tieba.baidu.com
map.baidu.com

weibo.com
www.sina.com.cn

www.mop.com
www.tianya.cn
bbs.tianya.cn

www.youku.com

user.qzone.qq.com
qzone.qq.com

www.163.com
mail.163.com
www.126.com

www.sohu.com
複製代碼

  根據返回的數據來看(-幾天沒修改 / +緩存幾天),每個站點下都有不少很久沒有修改的腳本文件。

  

複製代碼
E:\NodeJS\closurether\tool\cache-sniffer>phantomjs sniffer.js 
== www.hao123.com ====================
-2 / +360        http://s0.hao123img.com/res/js/track.js?381633
 
== www.taobao.com ====================
-497 / +3650        http://a.tbcdn.cn/apps/med/other/p4p/p4p_show_link.js?rd=20120305.js
-229 / +3650        http://a.tbcdn.cn/apps/matrix-mission/feedback/feedback.js
-178 / +3650        http://a.tbcdn.cn/s/kissy/gallery/??offline/1.0/index-min.js?t=20130701201313
 
== www.renren.com ====================
-631 / +365        http://s.xnimg.cn/a12023/jspro/beacon.js
-491 / +365        http://s.xnimg.cn/n/apps/photo/modules/seed/photoSeed.js?r=1373879537560
-454 / +365        http://s.xnimg.cn/a36267/js/register/register-xn6207-v6.js
 
== www.kaixin001.com ====================
-737 / +365        http://s.kaixin001.com.cn/js/core/ScrollObserver-000179b73.js
-732 / +365        http://s.kaixin001.com.cn/js/core/Geometry-0001de487.js
-715 / +365        http://s.kaixin001.com.cn/js/core/cookie/Cookie-0001f6c85.js
 
== tieba.baidu.com ====================
-40 / +30        http://static.tieba.baidu.com/tb/pms/wpo.pda.js?v=2.8
-20 / +3600        http://img.baidu.com/hunter/tiebamonkey.min.20130625.js
-18 / +30        http://tb1.bdstatic.com/tb/static-common/js/tb_ui_ac13f64f.js
 
== weibo.com ====================
-40 / +15        http://js.t.sinajs.cn/t5/register/js/page/login/index.js?version=201307151712
 
== map.baidu.com ====================
-238 / +3600        http://img.baidu.com/hunter/map.js?st=-15902
-53 / +365        http://webmap1.map.bdimg.com/monitor/pdc_jfjmuk.js
-5 / +365        http://webmap1.map.bdimg.com/initmap_gn34ay.js
 
== www.tianya.cn ====================
-12 / +30        http://static.tianyaui.com/global/ty/TY.js
 
== user.qzone.qq.com ====================
-7 / +7        http://imgcache.qq.com/ptlogin/ver/10034/js/h_login_11.js?max_age=604800&ptui_identifier=000E0133918D62675822E216CC1D89FE3A9C1A8B432218E564A3DD6F0B
 
== www.163.com ====================
-716 / +7        http://l.bst.126.net/rsc/js/jquery-1.6.2.min.js
-297 / +90        http://img2.126.net/ntesrich/auto/adbox/adbox-v1.1.2-120705.js
-83 / +90        http://img2.126.net/ntesrich/auto/indexU/fcbox-index-v1.0.0-130422.js
 
== www.sohu.com ====================
-42 / +90        http://js.sohu.com/pv/pvclick1211071116.js
-42 / +90        http://js.sohu.com/pv/spv1209061800.js
 
== www.mop.com ====================
-969 / +299        http://mopimg.cn/openjs/jquery-1.4.4.min.js
-458 / +299        http://mopimg.cn/dc/tj.js
-396 / +299        http://mopimg.cn/tj/dcq.js
 
== bbs.tianya.cn ====================
-301 / +30        http://static.tianyaui.com/global/ty/stat/stat_20080313.js?_=1373879558250
-38 / +30        http://static.tianyaui.com/global/lite/js/lite-all.js?v=201306250800
-27 / +30        http://static.tianyaui.com/global/lite/js/bbs/bbs.js?v=201306250800
 
DONE!
複製代碼

 

  很好,有了這些數據,就可實現我們計劃了!

  下一篇將介紹使用NodeJS來打造這一計劃。

轉載:http://www.cnblogs.com/index-html/archive/2013/06/14/3136190.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章