斷網與黑客無關 我來抖一抖暴風那點見不得人的貓膩
這幾天看新聞,發現暴風七搞八搞,居然包裝成了5.19斷網的受害者,聽說實際上是暴風被禁止,在新版本發布前,不準提供舊版本的下載,結果搞成了什么“召回”。然后就是一幫弱智媒體跟著瞎起哄,看得我牙都笑掉了。哄誰哪?圈里誰不知道暴風是怎么回事?說白了就是一款高水平的流氓軟件,或者干脆叫間諜軟件。稍微動動腦子就明白了,如果不是上億用戶的暴風本身有什么貓膩,幾個小黑客怎么可能搞出那么大動靜?
前幾天翹班在家,閑著沒事把GF筆記本上的暴風逆向了一下,結果發現了一個名叫stormliv的后臺進程,每20秒自動輪詢一次暴風的廣告服務器,說白了就是暴風讓它的1.2億用戶的電腦自動去點它的廣告,用虛假點擊騙廣告主的錢,但是技藝不精,結果搞成了一個死循環,大量地占用dns資源,即便沒有這次黑客攻擊,釀成大禍也是遲早的事。
更蹊蹺的是,我又測了一個519斷網后,暴風25號發的一個新版本,這個版本里,導致斷網的那些貓膩居然還都在!stormliv的死循環輪詢機制根本沒去掉,只是把輪詢時間改得間隔長了一點,用了一些更復雜更隱蔽的邏輯,仍然是在在后臺偷偷運行,而且刪除后還會重新生成,服務刪除或禁止后也會復活,普通人根本清不掉。
最cao蛋的是這軟件在開機時,會通過服務項強行自啟動,一般人根本關不掉這個開機啟動項,占用內存不說,關鍵是把開機速度搞得巨慢(我把暴風卸了后,感覺本本的速度有明顯提升)。就算把軟件整個關掉了,還會駐留在內存里后臺運行,卸也很難卸干凈,另外還會干擾其他視頻播放軟件關聯視頻文件,這不是流氓是什么?
在壇子里混這么多年,從來都是潛水,這次是在受不了了,赤膊上陣,發個處女貼,說得不對的,希望大家包涵。
先分析一下暴風5月8日版本。
分析目標:stormliv.exe
一.靜態特征:
版本:3.9.5.15
數字簽名:有 [北京暴風網際科技有限公司 ]
簽名時間:2009年5月8日 11:06:16
大小: 596,064 字節
編譯日期:20009年5月8日 03:05:38(GMT)
CheckSum:A1192
編譯工具: Mircosoft Visual C++ 6.0
加殼:無
運行界面:有,如圖1
二.動態特征
1.啟動和保護:
stormlive.exe通過服務實現開機自啟動,而且此服務不能被刪除、禁用、停止,如果刪除或停用或禁止,下次再次運行暴風影音主程序storm.exe 會自動恢復。
2.端口偵聽:
此進程被用于暴風影音多進程通訊,使用開啟本地端口偵聽,UDP協議實現。
監聽UDP 1025 5357等端口,實現Stline(暴風盒子) ,stormlive和storm.exe間通訊
3.用戶態鉤子
stormlive.exe啟動后,其meedb.dll會HOOK DeviceIoControl ,RegQueryValueA,RegQueryValueExW,CoCreateInstance 等函數
主要是用于過濾DVD區碼控制(IOCTL_DVD_GET_REGION )和一些COM接口控制。#p#
三.stormlive主要功能分析:
1.暴風影音自動升級功能
stormlive會自動連接 hxxp://download.baofeng.com/stormII/storm_ctrl.ini 文件
這是一個普通的升級配置文件。
目前內容如下,可以看到有最新版本、升級URL、是否強制升級、是否提示用戶、提示用戶信息等配置內容
[SERVER] version=3.09.06.10 url= force=0 alert=0 info="暴風影音有新版\n\n,已更新至3.09.06.10" [EXPERT] lib= url= |
升級部分逆向代碼:如圖2
2.信息統計:
目前發現可能連接下面這些地址來獲取信息、或者回傳統計,沒發現涉及用戶隱私或者系統配置信息等。
hxxp://active.baofeng.com/active2?pid=%d&id=%d&uid=%s&t=%d&v=%s&i
用戶活動信息,包括安裝日期,UID,ID等信息。
逆向代碼:如圖3
hxxp://areacode.baofeng.com:8081/adp/custom/;action=get_city_code
這個似乎是用來查詢當前城市代碼的,可能廣告彈出需要。
hxxp://bukebo.baofeng.com/upload/talks.do?talkMd5=%s&talkVersion=
hxxp://midInfo.baofeng.com/mid/downSucc.html?ver=%s&pl_id=%s
MID統計信息,上傳版本和MID
hxxp://midsd.baofeng.com/p2p/seed?name=
獲取P2P種子信息,stormlive.exe似乎在升級時使用了P2P技術。
3.不可播放文件回傳。如圖4
當暴風影音發現不可播放文件時,會通過stormlive.exe,連接:hxxp://noplay.baofeng.com:9000/upload/upload.do來上傳這個文件的部分片段。
這也是一個有界面的功能,只有用戶手動選擇不再自動提示,才會后臺靜默上傳。
逆向代碼如下:如圖5
4.下載廣告
stormlive.exe會連接download.baofeng.com,試圖下載一個exmat.ini,其中包含了廣告信息。
廣告鏈接都是一個個ZIP壓縮包,但其中未包含可執行程序。
逆向代碼:如圖6
其中在下載廣告時,可能是為了繞過某些安全軟件或anti-ad軟件對其的封鎖,沒有采用HOSTS文件中的配置,而是自行獲取download.baofeng.com的域名,而且會在一個死循環中每隔20000 毫秒(20秒)發送一次DNS查詢包
這段代碼可能是導致此次斷網門的罪魁禍首。
逆向代碼如下:如圖7
可以看到,如果對download.baofeng.com的gethostbyname調用失敗,會每隔20秒重新獲取一次,直到獲取成功為止。
這樣每小時就會發送數百個查詢包,乘上暴風的用戶量,數量之大非常恐怖。#p#
四.清除方法
暴風影音新版共有3個沒必要存在的進程:
1.stormpop.exe 用于彈出廣告。
2.stline.exe 暴風盒子,也是廣告和推薦等。
3.stormlive.exe 前述的升級、回傳客戶端。
其中前兩個直接刪除即可清除掉。
最后一個刪除后還會重新生成,服務刪除或禁止后也會復活。
有一個簡單的方法可以清除這個程序,通過定位此文件的PE頭,將IMAGE_NT_HEADERS->SubSystem改為IMAGE_SUBSYSTEM_NATIVE
即將這個程序修改為一個驅動/NATIVE程序,由于services.exe無法啟動此程序,這個升級程序就無法繼續工作了,同時也不會復活或被重生。
再分析一下暴風影音的最新版本
簽名日期:2009年5月25日 22:11:57
版本:3.9.5.29
經過分析可以發現,5月8日簽名版本(版本號:3.9.5.15)的相應功能都仍存在。
區別在于:其死循環獲取download.baofeng.com域名的代碼(ForeverLoopGetHost)改為了每隔30分鐘獲取一次。
而且在每次獲取時有一些比較復雜的邏輯,而不是單純地調用系統API gethostbyname來獲取,可能是用于流量控制。
【編輯推薦】