在滑鼠點擊的一剎那,流量在用戶系統中流過層層節點,在路由的指引下奔向遠方的伺服器。這段路程中,短兵相接的戰鬥往往是最激烈的,在所有流量可能路過的節點,往往都潛伏著劫持者,他們劫持流量的手段也層出不窮,從主頁配置篡改、hosts劫持、進程Hook、啟動劫持、LSP注入、瀏覽器插件劫持、HTTP代理過濾、內核數據包劫持、bootkit等等不斷花樣翻新。或許從你按下開機按鈕的一瞬間,流量劫持的故事就已經開始了。
1、道貌岸然的流氓軟體
「網址導航」堪稱國內網際網路最獨特的一道風景線,從hao123開始發揚光大,各大導航站開始成為網際網路流量最主要的一個入口點,伴隨著的是圍繞導航主頁連結的小尾巴(推廣ID),展開的一場場驚心動魄的攻防狙擊戰。一方面國內安全軟體對傳統IE瀏覽器的主頁防護越來越嚴密, 另一方面用戶體驗更好的第三方瀏覽器開始佔據主流地位,國內的流氓木馬為了謀求導航量也開始「另闢蹊徑」。
下面講到的案例是我們曾經捕獲到的一批導航主頁劫持樣本,歷史活躍期最早可以追溯到2014年,主要通過多類流氓軟體捆綁傳播,其劫持功能模塊通過聯網更新獲取,經過多層的內存解密後再動態加載。其中的主頁劫持插件模塊通過修改瀏覽器配置文件實現主頁篡改,對國內外的chrome、火狐、safari、傲遊、qq、360、搜狗等20餘款主流瀏覽器做到了全部覆蓋。實現這些功能顯然需要對這批瀏覽器的配置文件格式和加密算法做逆向分析,在樣本分析過程中我們甚至發現其利用某漏洞繞過了其中2款瀏覽器的主頁保護功能,流氓作者可謂非常「走心」,可惜是劍走偏鋒。
[1] 某軟體下拉加載主頁劫持插件
上圖就是我們在其中一款軟體中抓取到的主頁劫持模塊文件和更新數據包,可能你對數據包裡這個域名不是很熟悉,但是提到「音速啟動」這款軟體相信安全圈內很多人都會有所了解,當年各大安全論壇的工具包基本上都是用它來管理配置的,伴隨了很多像本文作者這樣的三流小黑客的學習成長,所以分析這個樣本過程中還是有很多感觸的,當然這些木馬劫持行為可能和原作者沒有太大關係,聽說這款軟體在停止更新幾年後賣給了上海某科技公司,其旗下多款軟體產品都曾被發現過流氓劫持行為,感興趣的讀者可以自行百度,這裡不再進行更多的披露。
正如前面的案例,一部分曾經的老牌軟體開始慢慢變質,離用戶漸行漸遠;另一方面,隨著最近幾年國內安全環境的轉變,之前流行的盜號、下載者、遠控等傳統木馬日漸式微,另外一大批披著正規軟體外衣的流氓也開始興起,他們的運作方式有以下幾個特點:
冒充正規軟體,但實際功能單一簡陋,有些甚至是空殼軟體,常見的諸如某某日曆、天氣預報、色播、輸入法等五花八門的偽裝形式,企圖藉助這些正常功能的外衣逃避安全軟體的攔截,實現常駐用戶系統的目的。
背後行為與木馬病毒無異,其目的還是為了獲取推廣流量,如主頁鎖定,網頁劫持、廣告彈窗、流量暗刷、靜默安裝等等。而且其中很大一部分流氓軟體的惡意模塊和配置都通過雲端進行下拉控制,可以做到分時段、分地區、分場景進行投放觸發。 [2] 某流氓軟體的雲端控制
變種速度比較快,屢殺不止,被安全軟體攔截清理後很快就會更換數字籤名,甚至換個軟體外殼包裝後捲土重來。這些數字籤名註冊的企業信息很多都是流氓軟體作者從其他渠道專門收購的。[3]某流氓軟體1個月內多次更換數字籤名證書逃避安全軟體查殺
下面可以通過幾個典型案例了解下這些流氓軟體進行流量劫持的技術手法:
1) 通過瀏覽器插件進行流量劫持的QTV系列變種,該樣本針對IE瀏覽器通過BHO插件在用戶網頁中注入JS腳本,針對chrome內核的瀏覽器利用漏洞繞過了部分瀏覽器插件的正常安裝步驟,通過篡改配置文件添加瀏覽器插件實現動態劫持。[4]被靜默安裝到瀏覽器中的插件模塊,通過JS注入劫持網頁
通過注入JS腳本來劫持用戶網頁瀏覽的技術優點也很明顯,一方面注入的雲端JS腳本比較靈活,可以隨時在雲端控制修改劫持行為,另一方面對於普通用戶來說非常隱蔽,難以察覺。被注入用戶網頁的JS腳本的對網頁瀏覽中大部分的推廣流量都進行了劫持,如下圖:
[5] 在網頁中注入JS劫持推廣流量
2) 下面這個「高清影視流氓病毒」案例是去年曾深入跟蹤的一個流氓病毒傳播團夥,該類樣本主要偽裝成播放器類的流氓軟體進行傳播,技術特點如下圖所示,大部分劫持模塊都是驅動文件,通過動態內存加載到系統內核,實現瀏覽器劫持、靜默推廣等病毒行為。
[6] 「高清影視」木馬劫持流程簡圖
從木馬後臺伺服器取證的文件來看,該樣本短期內傳播量非常大,單日高峰達到20w+,一周累計感染用戶超過100萬,安裝統計資料庫每天的備份文件都超過1G。
[7] 「高清影視」木馬後臺伺服器取證
提到流量劫持,不得不說到近2年時間內保持高度活躍的廣告彈窗掛馬攻擊案例,原本的廣告流量被注入了網頁木馬,以廣告彈窗等形式在客戶端觸發,這屬於一種變相的流量劫持,更確切的說應該稱之為「流量汙染」或「流量投毒」,這裡我們將其歸類為本地劫持。
近期掛馬利用的漏洞多為IE神洞(cve-2014-6332)和HackingTeam洩漏的多個Flash漏洞。通過網頁掛馬,流量劫持者將非常廉價的廣告彈窗流量轉化成了更高價格的安裝量,常見的CPM、CPV等形式的廣告流量每1000用戶展示只有幾元錢的成本,假設網頁掛馬的成功率有5%,這意味著劫持者獲取到20個用戶的安裝量,平均每個用戶靜默安裝5款軟體,劫持者的收益保守估計有50元,那麼「廣告流量投毒」的利潤率就近10倍。這應該就是近兩年網頁掛馬事件頻發背後的最大源動力。
[8] 網頁木馬經常使用的IE神洞(CVE-2014-6332)
[9] 網頁木馬利用IE瀏覽器的res協議檢測國內主流安全軟體
這些廣告流量大多來自於軟體彈窗、色情站點、垃圾站群、運營商劫持量等等,其中甚至不乏很多知名軟體的廣告流量,從我們的監測數據中發現包括酷狗音樂、搜狐影音、電信管家、暴風影音、百度影音、皮皮影音等多家知名軟體廠商的廣告流量被曾被劫持掛馬。正是因為如此巨大的流量基數,所以一旦發生掛馬事件,受到安全威脅的用戶數量都是非常巨大的。
[10] 對利用客戶端彈窗掛馬的某病毒伺服器取證發現的flash漏洞exp
據了解很多軟體廠商對自身廣告流量的管理監控都存在漏洞,有些甚至經過了多層代理分包,又缺乏統一有力的安全審核機制,導致被插入網頁木馬的「染毒流量」被大批推送到客戶端,最終導致用戶系統感染病毒。在樣本溯源過程中,我們甚至在某知名音樂軟體中發現一個專門用於暗刷廣告流量的子模塊。用戶越多責任越大,且行且珍惜。
[11] 2015年某次掛馬事件涉及的彈窗客戶端進程列表
[12] 對2015年度最活躍的某掛馬伺服器的資料庫取證(高峰期每小時5k+的安裝量)
流量劫持的故事繼續發展,當一個網絡數據包成功躲開了本地主機系統上的層層圍剿,離開用戶主機穿行於各個路由網關節點,又開啟了一段新的冒險之旅。在用戶主機和遠程伺服器之間的道路同樣是埋伏重重,數據包可能被指引向錯誤的終點(DNS劫持),也可能被半路冒名頂替(302重定向),或者直接被篡改(HTTP注入)。
提起網絡劫持,往往第一個想起的就是運營商劫持,可能每一個上網的用戶或多或少都曾經遇到過,電腦系統或手機用安全軟體掃描沒有任何異常,但是打開正常網頁總是莫名其妙彈出廣告或者跳轉到其他網站。對普通用戶來說這樣的行為可以說深惡痛絕,企業和正規網站同樣也深受其害,正常業務和企業形象都會受到影響,在15年年底,騰訊、小米、微博等6家網際網路公司共同發表了一篇抵制運營商流量劫持的聯合聲明。
在我們日常的安全運營過程中也經常接到疑似運營商劫持的用戶反饋,下面講述一個非常典型的http劫持跳轉案例,用戶反饋打開獵豹瀏覽器首頁點擊下載就會彈出廣告頁面,經過我們的檢測發現用戶的網絡被運營商劫持,打開網頁的數據包中被注入了廣告劫持代碼。類似的案例還有很多,除了明面上的廣告彈窗,還有後臺靜默的流量暗刷。對於普通用戶來說,可能只有運營商客服投訴或工信部投訴才能讓這些劫持行為稍有收斂。 [13] 用戶打開網頁的數據包被注入廣告代碼
[14] 用戶任意點擊網頁觸發廣告彈窗跳轉到「6間房」推廣頁面
這個案例劫持代碼中的域名「abc.ss229.com」歸屬於推廣廣告聯盟,在安全論壇和微博已有多次用戶反饋,其官網號稱日均PV達到2.5億。其實運營商劫持流量的買賣其實已是圈內半公開的秘密,結合對用戶上網習慣的分析,可以實現對不同地區、不同群體用戶的精準定製化廣告推送,感興趣的讀者可以自行搜索相關的QQ群。
[15] 公開化的運營商劫持流量買賣
缺乏安全保護的DNS協議和明文傳輸的HTTP流量非常容易遭到劫持,而運營商佔據網絡流量的必經之路,在廣告劫持技術上具有先天優勢,比如常見的分光鏡像技術,對於普通用戶和廠商來說對抗成本相對較高,另一方面國內主流的搜尋引擎、導航站點、電商網站都已經開始積極擁抱更加安全的https協議,這無疑是非常可喜的轉變。
[16] 常用於運營商流量劫持的分光鏡像技術
烏雲平臺上(目前一直在升級,恩 -_-||)也曾多次曝光運營商流量劫持的案例,例如曾經被用戶舉報的案例「下載小米商城被劫持到UC瀏覽器APP」,感謝萬能的白帽子深入某運營商劫持平臺系統為我們揭秘內幕。
[17] 被曝光的某運營商apk下載分發劫持的管理後臺
以上種種,不得不讓人想起「打劫圈」最富盛名的一句渾語,「此山是我開,此樹是我栽,要想過此路,留下買路財」,「買網絡送廣告」已經成為網絡運營商的標準套餐。這些劫持流量的買賣顯然不僅僅是所謂的「個別內部員工違規操作」,還是那句話,用戶越多責任越大,且行且珍惜。
CDN加速技術本質上是一種良性的DNS劫持,通過DNS引導將用戶對伺服器上的js、圖片等不經常變化的靜態資源的請求引導到最近的伺服器上,從而加速網絡訪問。加速訪問的良好用戶體驗使CDN加速被各大網站廣泛使用,其中蘊含的驚人流量自然也成為流量劫持者的目標。
[18] 打開正常網頁後跳轉到「色播」誘導頁面
去年我們曾多次接到用戶反饋使用手機瀏覽器打開網頁時經常被跳轉到色情推廣頁面,經過抓包分析,發現是由於百度網盟CDN緩存伺服器中的關鍵JS文件被汙染注入廣告代碼,劫持代碼根據user-agent頭判斷流量來源後針對PC、Android、iOS等平臺進行分流彈窗,誘導用戶安裝「偽色播」病毒APP。
[19] 抓包分析顯示百度網盟的公共JS文件被注入廣告代碼
[20] 劫持代碼根據訪問來源平臺的不同進行分流,推廣「偽色播」病毒app
百度網盟作為全國最大的廣告聯盟之一,每天的廣告流量PV是都是以億為單位的,其CDN緩存遭遇劫持產生的影響將非常廣泛。通過分析我們確認全國只有個別地區的網絡會遭遇此類劫持,我們也在第一時間將這個情況反饋給了友商方面,但造成緩存被劫持的原因沒有得到最終反饋,是運營商中間劫持還是個別緩存伺服器被入侵導致還不得而知,但是這個案例給我們的CDN服務的安全防護再一次給我們敲響警鐘。
[21] 通過流量劫持推廣的「偽色播」病毒APP行為流程簡圖
從這個案例中我們也可以看出,移動端「劫持流量」很重要的一個出口就是「偽色情」誘導,這些病毒app基本上都是通過簡訊暗扣、誘導支付、廣告彈窗、流量暗刷以及推廣安裝等手段實現非法牟利。這條移動端的灰色產業鏈在近兩年已經發展成熟,「色播」類樣本也成為移動端中感染量最大的惡意app家族分類之一。
[22] 「偽色播」病毒APP進行誘導推廣
這些「偽色播」病毒APP安裝以後除了各種廣告推廣行為外,還會在後臺偷偷發送簡訊去定製多種運營商付費業務,並且對業務確認簡訊進行自動回復和屏蔽,防止用戶察覺;有些還集成了第三方支付的SDK,以VIP充值等方式誘導用戶付費,用戶到頭來沒看到想要的「福利」不說,吃了黃連也只能是有苦難言。
[23] 某「偽色播」病毒APP通過簡訊定製業務進行扣費的接口數據包
[24]病毒app自動回復並屏蔽業務簡訊,防止用戶察覺
以其中某個專門做「色播誘導」業務的廣告聯盟為例,其背後的推廣渠道多達數百個,每年用於推廣結算的財務流水超過5000w元。從其旗下的某款色播病毒APP的管理後臺來看,短短半年內扣費訂單數據超過100w條,平均每個用戶扣費金額從6~20元不等,拋開其他的流氓推廣收益,僅扣費這一項的半年收益總額就過百萬,而這只是海量「偽色播」病毒樣本中的一個,那整個產業鏈的暴利收益可想而知。
[25] 某「偽色播」病毒APP的扣費統計後臺
[26] 某「偽色播」病毒APP扣費通道的數據存儲伺服器
3. DNS劫持路由器作為億萬用戶網絡接入的基礎設備,其安全的重要性不言而喻。最近兩年曝光的路由器漏洞、後門等案例比比皆是,主流路由器品牌基本上無一漏網。雖然部分廠商發布了修復補丁固件,但是普通用戶很少會主動去更新升級路由器系統,所以路由器漏洞危害的持續性要遠高於普通PC平臺;另一方面,針對路由器的安全防護也一直是傳統安全軟體的空白點,用戶路由器一旦中招往往無法察覺。
國內外針對路由器的攻擊事件最近兩年也非常頻繁,我們目前發現的攻擊方式主要分為兩大類,一類是利用漏洞或後門獲取路由器系統權限後種植殭屍木馬,一般以ddos木馬居多,還兼容路由器常見的arm、mips等嵌入式平臺;另一類是獲取路由器管理權限後篡改默認的DNS伺服器設置,通過DNS劫持用戶流量,一般用於廣告刷量、釣魚攻擊等。
[27] 兼容多平臺的路由器DDOS木馬樣本
下面這個案例是我們近期發現的一個非常典型的dns劫持案例,劫持者通過路由器漏洞劫持用戶DNS,在用戶網頁中注入JS劫持代碼,實現導航劫持、電商廣告劫持、流量暗刷等。從劫持代碼中還發現了針對D-Link、TP-Link、ZTE等品牌路由器的攻擊代碼,利用CSRF漏洞篡改路由器DNS設置。
[28] 路由器DNS流量劫持案例簡圖
[29] 針對d-link、tp-link、zte等品牌路由器的攻擊代碼
被篡改的惡意DNS會劫持常見導航站的靜態資源域名,例如http://s0.hao123img.com、http://s0.qhimg.com等,劫持者會在網頁引用的jquery庫中注入JS代碼,以實現後續的劫持行為。由於頁面緩存的原因,通過JS緩存投毒還可以實現長期隱蔽劫持。
[30] 常見的導航站點域名被劫持
[31] 網站引用的jquery庫中被注入惡意代碼
被注入頁面的劫持代碼多用來進行廣告暗刷和電商流量劫持,從發現的數十個劫持JS文件代碼的歷史變化中,可以看出作者一直在不斷嘗試測試改進不同的劫持方式。
[32] 劫持代碼進行各大電商廣告的暗刷
[33] 在網頁中注入CPS廣告,跳轉到自己的電商導流平臺
我們對劫持者的流量統計後臺進行了簡單的跟蹤,從51la的數據統計來看,劫持流量還是非常驚人的,日均PV在200w左右,在2015年末的高峰期甚至達到800w左右,劫持者的暴利收益不難想像。
[34] DNS流量劫持者使用的51啦統計後臺
最近兩年DNS劫持活動非常頻繁,惡意DNS數量增長也非常迅速,我們監測到的每年新增惡意DNS伺服器就多達上百個。針對路由器的劫持攻擊案例也不僅僅發生在國內,從蜜罐系統和小範圍漏洞探測結果中,我們也捕獲到了多起全球範圍內的路由器DNS攻擊案例。
[35] DNS流量劫持者使用的51啦統計後臺
[36] 在國外地區發現的一例路由器CSRF漏洞「全家桶」,被利用的攻擊playload多達20多種
下面的案例是2016年初我們的蜜罐系統捕獲到一類針對路由器漏洞的掃描攻擊,隨後我們嘗試進行溯源和影響評估,在對某鄰國的部分活躍IP段進行小範圍的掃描探測後,發現大批量的路由器被暴露在外網,其中存在漏洞的路由器有30%左右被篡改了DNS設置。
拋開劫持廣告流量牟利不談,如果要對一個國家或地區的網絡進行大批量的滲透或破壞,以目前路由器的千瘡百孔安全現狀,無疑可以作為很適合的一個突破口,這並不是危言聳聽。
如下圖中漏洞路由器首選DNS被設置為劫持伺服器IP,備選DNS伺服器設為谷歌公共DNS(8.8.8.8)
[37] 鄰國某網段中大量存在漏洞的路由器被劫持DNS設置
[38] 各種存在漏洞的路由器被劫持DNS設置
以一個神秘的劫持案例作為故事的結尾,在工作中曾經陸續遇到過多次神秘樣本,仿佛是隱藏在層層網絡中的黑暗幽靈,不知道它從哪裡來,也不知道它截獲的信息最終流向哪裡,留給我們的只有迷一般的背影。
這批迷一樣的樣本已經默默存活了很久,我們捕獲到早期變種可以追溯到12年左右。下面我們先把這個迷的開頭補充下,這些樣本絕大多數來自於某些可能被劫持的網絡節點,請靜靜看圖。
[39] 某軟體升級數據包正常狀態與異常狀態對比
[40] 某軟體升級過程中的抓包數據
我們在15年初的時候捕獲到了其中一類樣本的新變種,除了迷一樣的傳播方式,樣本本身還有很多非常有意思的技術細節,限於篇幅這裡只能放1張內部分享的分析截圖,雖然高清但是有碼,同樣老規矩靜靜看圖(這裡有很多值得YY的東西……)
[41] 神秘樣本技術分析簡圖
流量圈的故事還有很多,劫持與反劫持的故事在很長時間內還將繼續演繹下去。流量是很多網際網路企業賴以生存的基礎,通過優秀的產品去獲得用戶和流量是唯一的正途,用戶的信任來之不易,且行且珍惜。文章到此暫告一段落,有感興趣的地方歡迎留言討論。
【引用】
[1] http://wooyun.org/bugs/wooyun-2010-0168329