“食鼠貓”樣本主要通過虛假色情播放器等流氓軟件的捆綁安裝進行傳播,感染主機會被強制安裝多款推廣軟件,病毒通過篡改瀏覽器快捷方式、Hosts文件等方式劫持用戶電腦的導航網站流量,病毒導入根證書偽造數字簽名逃避殺毒軟件查殺與防御,還嘗試使用網絡過濾驅動屏蔽殺毒軟件的升級與云查殺。
“食鼠貓”樣本作為典型的推廣類病毒,對于當前國內病毒傳播的流行形勢具有一定的代表性。本文嘗試通過對樣本行為、傳播源頭的相關分析,溯源追蹤其幕后黑手,揭露國內流氓推廣類病毒傳播與牟利的灰色產業鏈。
病毒樣本行為分析
“食鼠貓”病毒捆綁在一款名為“好愛FM收音機”的流氓軟件中,主要通過一些色情站點和下載站點的誘導虛假下載鏈接進行傳播。樣本使用delphi語言編寫,通過多層Loader模塊的解密與內存加載執行,下載運行最終功能模塊,樣本分析同樣按Loader層和功能模塊層分為兩大部分。
一、Loader層分析
1、靜默安裝“愛好FM收音機”流氓軟件,然后解密病毒模塊A,直接在內存中加載運行。
2、模塊A訪問http://jsion.sin-o.com/favicon.ico,讀取解析其中隱藏的下載鏈接并解密,然后訪問此鏈接下載模塊B,解密后再次內存裝載運行。
3、模塊B的主要功能包括病毒運行環境檢測、流量渠道標記保存、后續惡意模塊釋放以及安裝統計數據發送等:
1)、病毒運行環境檢測,主要是為了對抗分析檢測。使用的手法也比較常規,包括簡單的反調試、特權指令反虛擬機、遍歷檢測系統窗口是否存在安全工具以及是否存在網吧管理程序進程等。
2)、保存推廣渠道流量標記信息到注冊表,方便后續模塊根據流量ID讀取對應的配置信息。
渠道標記信息:"fifm_s1_1030" (文件名)
標記信息格式:fifm_渠道標識_安裝包標識
注冊表:HKEY_CURRENT_USER\SOFTWARE\_alt
3)、釋放資源中包含的MSI程序包(模塊C)到臨時目錄(~DFAN9FP.tmp),調用msiexec.exe以靜默參數解析安裝。
4)、獲取主機的MAC地址、系統版本以及安裝包路徑,加密后發送到遠程服務器。
數據包信息:000XX9B704C2|Hide|5.1.2600.Service Pack 3|C:fifm_s1_1030.exe|1
統計后臺地址:http://tj.5astyle.com/_one/GetState.aspx?Login=
4、模塊C實際為msi格式的安裝包程序,使用rootsupd.exe工具導入根證書,為加入惡意代碼的IDriverT.exe偽造數字簽名,企圖逃避安全軟件的查殺與防御。
MSI包文件列表:
IDriverT.exe:作者修改某款delphi程序源碼(個人電腦助手v1.3),在其中添加了惡意代碼后重新編譯。
RCImage.skn:IDriverT.exe的依賴模塊,實際為VMProtect的SDK動態庫文件。
~DFDE9FD.tmp:實際為rootsupd.exe,用于更新系統根證書列表的命令行工具。
~DFCCBFE.tmp:根證書文件,偽造Symantec Corporation簽名。
5、IDriverT.exe在正常程序的基礎上添加惡意代碼后重新編譯,運行以后解密模塊D,繼續內存加載運行。
6、模塊D訪問遠程服務器下載http://dl.zzxssm.com/data/_Config.dat(模塊E),解密后繼續在內存中直接加載運行。
7、模塊E同樣將如下格式信息加密后發送到另一安裝統計后臺服務器,可以看到此次的病毒變種版本為v1.6.1;然后與模塊B一樣再次對病毒運行環境進行檢測;最后檢測"_lost_downfile_mod_"互斥事件是否存在,如果存在則發送另外一條安裝統計信息后退出,不存在則進入后續模塊下載的邏輯分支。
明文數據A:000XX97C9DA6|v1.6.1|5.1.2600.Service Pack 3|C:TempIDriverT.exe|0
統計后臺A:http://g.d8ht.com/set_index.php?Ver=
明文數據B:000C297C9DA6|v1.6.1|5.1.2600.Service Pack 3|C:TempIDriverT.exe|0#0#0#0#0#2
統計后臺B:http://g.d8ht.com/set_stat.php?Ver=
8、模塊E后續下載邏輯分支:發送安裝統計數據包,返回數據為渠道的安裝位置量,如果小于100則sleep十分鐘后退出進程,否則開始下載白文件DumpUper.exe和惡意模塊F到臨時目錄,讀取惡意模塊F解密后注入到白文件進程中運行,命令行參數為“1”。注入方法為常規手法,以掛起方式啟動白文件進程,卸載原進程鏡像內存后重新申請,拷貝自身并修復導入表,修改線程上下文,將目標進程OEP指向自身入口,最后恢復進程運行。
明文數據:000XX97C9DA6|v1.6.1|5.1.2600.Service Pack 3|C:TempIDriverT.EXE|0
統計后臺:http://g.d8ht.com/set_index.php?Ver=
白文件鏈接:http://dl.zzxssm.com/data/1.jpg
文件目錄:%temp%/DumpUper.exe [360殺毒的dump上報進程文件]
模塊F鏈接:http://dl.zzxssm.com/data/6.jpg
文件目錄:%temp%/YYM_JFFMEHN9_S%T955WD38.jpg [加密文件]
9、模塊F首先檢查“_Lost_Jump_Mod_1”互斥事件是否只存在,存在則退出進程;如果進程參數為”0”或“1”則將模塊F重新注入自身白進程,命令參數為”2”;如進程參數為“2”則刪除模塊F文件,下載模塊G注入自身進程繼續運行,啟動參數為渠道標識信息。
模塊G鏈接:http://dl.zzxssm.com/data//2.jpg
10、模塊G讀取服務器配置信息,開始下載真正的工作模塊。模塊G取命令行參數解密獲得渠道標記,開啟定時器訪問http://i1.d8ht.com:8080/GetLog.html獲取配置信息,根據自身渠道標記去讀取對應的配置信息,二次解密后再進行格式化解析,下載鏈接信息,開啟線程下載執行各模塊。
1)訪問http://i1.d8ht.com:8080/GetLog.html獲取配置信息,共26條有效數據,可以推測出此變種目前最少有26個流量渠道進行推廣,格式如下:
2)獲取上面的配置信息后,模塊G根據自身的渠道ID讀取對應的條目,進行兩層解密,然后進行格式化解析,結果如下:
3)模塊G接著開啟線程按照格式化后的數據進行下載安裝,本例中推廣軟件安裝包為百度殺毒、百度衛士以及UC瀏覽器,下載安裝包到配置信息中的指定目錄;其他[self]標簽的模塊為自身工作模塊,其中12.jpg為推廣包安裝模塊,4.jpg為瀏覽器快捷方式篡改模塊,8.jpg為hosts文件劫持模塊,test.exe為網絡驅動對抗模塊,以上[self]類工作模塊下載完成后通過白文件DumpUper.exe進程注入啟動。
主要工作模塊功能列表:
http://dl.zzxssm.com/data/test.exe [網絡驅動對抗模塊]
http://dl.zzxssm.com/data/3.gif[鏈接失效]
http://dl.zzxssm.com/data/12.jpg[推廣包安裝模塊]
http://dl.zzxssm.com/data/4.jpg[瀏覽器快捷方式篡改模塊]
http://dl.zzxssm.com/data/8.jpg[hosts文件劫持導航模塊]
功能模塊層分析
1、網絡驅動對抗模塊
本模塊主要嘗試加載TDI過濾驅動來屏蔽主流殺毒軟件進程訪問網絡,屏蔽殺毒軟件升級逃避云查殺。主要流程如下:
1)、下載百度殺毒軟件壓縮包釋放,釋放資源文件BDLiveUpdate.exe、dl.dll以及twain.dat,創建服務啟動BDLiveUpdate.exe進程,在被白進程主動加載的dl.dll中解密twain.dat模塊,然后內存加載運行。
百度殺毒壓縮包:http://files.cnblogs.com/cfdown/bd_data.zip
釋放目錄:C:Program FilesBaiduBaiduLiveUpdate
服務信息:
ServiceName = "BDLiveUpSvc"
DisplayName = "BDLiveUpdate Service"
BinaryPathName = """C:Program FilesBaiduBaiduLiveUpdateBDLiveUpdate.exe"" -Embedding"
2)、twain.dat模塊為BDLiveUpSvc服務的控制函數,主要負責后續網絡過濾驅動的加載。創建VolStub驅動服務,根據操作系統類型釋放相應x86/x64的網絡過濾驅動文件并啟動此驅動服務,隨后釋放另一份驅動文件(白文件:SscRdCls.sys)替換掉volstub.sys,再刪除VolStub驅動服務。
X86/X64版本的驅動文件簽名:(X86版本數字簽名是通過導入根證書偽造的)
3)、隨后嘗試打開網絡過濾驅動設備,如果成功則聯網下載http://jsion.sin-o.com/data.json并解密,內容為主流殺軟的進程列表,然后通過DeviceIoControl將格式化后的殺軟進程列表數據發送給驅動程序。
4)、網絡過濾驅動程序內容比較簡單,通過掛載tcp/udp驅動設備,對常見殺毒軟件進程訪問網絡進行過濾屏蔽。
2、推廣包安裝模塊
本模塊主要負責前面下載的推廣軟件包的安裝,根據下載模塊傳遞的命令行參數進行安裝,參數分別為安裝目錄環境變量、推廣包名、安裝后進程名稱。
1)首先檢測是否存在常見的網吧管理程序進程,存在則不進行安裝。
2)檢查指定目錄下的推廣包是否存在,如果存在判斷相應進程名是否存在,防止重復安裝。
3)解密DmpUper.exe(360殺毒白文件)作為宿主傀儡進程,將安裝包程序注入其中運行,循環繼續下一個安裝包的安裝。
4)統計安裝成功結果數量,如果為0則獲取當前系統環境信息上傳到遠程FTP服務器,信息內容主要包括系統信息、活動窗口程序、系統進程列表以及桌面截圖等。
5)發送安裝統計信息到遠程服務器。
數據包明文:000C2915324A|v1.5.1|5.1.2600.Service Pack 3|def_def_def|1#0#0#1#0#0
統計后臺A:http://g.d8ht.com/set_stat.php?Ver=
統計后臺B:http://tj.5astyle.com/two/GetState.aspx?Login=
3、瀏覽器快捷方式篡改模塊
本模塊主要通過修改瀏覽器快捷方式的屬性實現篡改主頁功能。
1)、訪問http://www.d8ht.com/Model/url_mod.html配置鏈接,按啟動參數指定的渠道標記讀取對應的配置條目,解密后內容如下:
2)、修改注冊表,隱藏系統桌面原生Internet Explorer圖標。
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIcons]NewStartPanel:"{871C5380-42A0-1069-A2EA-08002B30309D}"=dword:00000001ClassicStartMenu:"{871C5380-42A0-1069-A2EA-08002B30309D}"=dword:00000001
3)、讀取注冊表獲取桌面、開始菜單、快速啟動欄等目錄,遍歷目錄對快捷方式等文件進行過濾,刪除其他網頁快捷方式,按配置信息篡改主流瀏覽器快捷方式的目標屬性,修改為病毒指定的導航網站。
4、hosts文件劫持導航模塊
本模塊主要通過修改hosts文件劫持域名解析,將hao123等常見導航網站引導到自己的服務器上,通過自己導航站點的廣告推廣賺取利潤。
1)、讀取注冊表解析自身的渠道標記,訪問http://i1.d8ht.com:8080/GetIp.html配置鏈接,解密獲取對應劫持IP的信息。
2)、遍歷進程檢查是否存在qqpcrtp.exe(騰訊管家進程),如果存在則放棄修改,否則將常見導航網站的域名加上劫持IP寫入到hosts文件中。
導航網站劫持列表:
www.hao123.com / hao.360.cn / www.3600.com
hao.qq.com / 123.duba.net / www.duba.com
123.sogou.com / www.114la.com / www.256.cc / www.uc123.com
通過上述的分析可以看出“食鼠貓”病毒所使用的對抗技術手段并不是特別高深,但是另一方面又具有一定的代表性,體現在以下幾個部分:
1、樣本loader部分使用多層的模塊內存加載。loader進行解密再內存加載配合“白加黑”技術,已經成為對抗殺毒查殺的常見手法,部分情況下可以繞過殺毒查殺攔截。
2、修改正常軟件源碼添加惡意代碼后重新編譯。在大量的正常代碼中混合一小段的loader代碼,對殺毒引擎的鑒別能力和人工病毒分析都提出了更高的要求。
3、在系統中導入根證書偽造正常簽名??梢岳@過部分對文件數字簽名驗證邏輯不夠嚴謹的安全軟件。
樣本追蹤溯源
每一個熱點病毒的傳播過程都并非孤立事件,從樣本編寫、傳播渠道、牟利方式以及到最終的受害用戶,各個環節往往都是緊密關聯的,“食鼠貓”病毒同樣如此,通過對樣本暴漏的信息以及安全統計數據的分析,嘗試對“食鼠貓”病毒進行樣本溯源,追蹤病毒傳播鏈條的幕后黑手。
1)、通過對病毒關聯域名的歷史解析數據分析,可以此流氓軟件的推廣從2014年初開始,變種文件最少在30個以上,本次新變種從2014年8月份左右開始傳播,大多通過誘導站點的流氓軟件捆綁傳播,涉及到的推廣渠道多達數十個。本次變種使用的推廣域名與服務器在編寫分析報告時已經關閉,病毒作者可能更換了新的下載域名和渠道,后續傳播情況有待進一步的監控。
2)、部分病毒作者缺乏基本安全意識,經常使用郵箱、FTP服務器等方式上傳信息,導致帳號密碼信息暴漏。“食鼠貓”樣本嘗試上傳到FTP服務器上的信息主要包括兩類:安裝失敗和對抗監控,主要內容為系統環境信息和桌面截圖。從FTP的上傳文件中我們可以看到一些比較有意思的內容:
(1)、信息上傳按日期創建目錄,從8月11日到8月23日,這也說明本次新變種從近期開始傳播;上傳信息主要為系統環境和桌面截圖,從部分感染用戶當時的系統環境分析看,主要是被誘導安裝了一些虛假色情播放器(例如優播視頻等流氓軟件),這些軟件往往也捆綁安裝了其他的的流氓病毒,在“剛需”的作用下不少用戶面對殺毒攔截選擇了放行。
(2)、用戶在訪問一些安全軟件論壇時也會觸發上傳策略,其中大多為用戶中招以后無法升級殺毒軟件,訪問論壇進行求助。從上傳信息分析來看,很明顯實際情況并非像某殺毒廠商對外宣傳的很早就可以完美查殺修復,更不存在所謂的”憑借云查功能的某一特殊保護機制,是目前唯一未被“食貓鼠”阻斷云安全服務的安全軟件 ”。安全宣傳應該本著實事求是的態度,這樣才能真正幫助用戶解決問題。
(3)、病毒作者在測試樣本的時候也上傳了一些調試信息,包括系統信息、代碼截圖等。可以發現一個有趣的細節,作者當時正在瀏覽一篇網頁“DELPHI中MessageBox的用法”,從這個細節中我們可以看出作者可能是個delphi編程的初學者。
3)、同樣在對病毒使用的某統計后臺進行檢測時,發現統計程序和服務器配置存在安全漏洞,導致統計后臺程序的源碼泄漏,進而獲取到相應數據庫的帳號密碼信息,后續滲透拿到了部分病毒服務器的管理權限。通過對病毒服務器文件的進一步分析,獲取到“食鼠貓”病毒的傳播統計數據和病毒作者的其他信息。
(1)、病毒統計后臺程序存在安全漏洞,數據庫操作語句也未進行安全過濾操作,還可以看到作者針對不同推廣渠道進行扣量的設置。
(2)、后續滲透得到部分病毒后臺服務器的管理權限,通過進一步分析,掌握了“食鼠貓”病毒樣本傳播的歷史統計數據以及病毒作者的其他信息。從“食鼠貓”病毒的后臺安裝統計數據中可以看出,本次新變種的傳播感染量較高,在8月8日前后達到日感染量近9萬最高峰,在總共一個半月的時間里,累計感染量達到95萬。
國內互聯網的推廣行為一直以來缺乏嚴格的規范和監管,在利益的熏陶下衍生了非常多的灰色地帶。被利益糾結在一起的流量圈內角色關系復雜,有時其中一環就覆蓋了鏈條上的多個角色。龐大的國內互聯網市場作為一塊蛋糕,有人通過出色的產品贏得用戶,有人則伸出黑手在背后暗暗蠶食。
“食鼠貓”樣本作為一例典型的流氓推廣類木馬,一個多月的傳播感染量就多達近百萬,其本身載體就是一款流氓軟件,而推廣渠道也大多是通過其他流氓軟件進行捆綁安裝。一方面通過安裝安裝某殺毒軟件賺取推廣費用,另一方面通過劫持導航網站賺取廣告費用。一款殺毒產品最終通過病毒木馬被安裝到用戶電腦上,不得不說這是一種尷尬和諷刺,也暴漏了軟件廠商對產品推廣監管的缺失,通過強制手段的推廣安裝也很難得到用戶的真正認可。
流氓軟件的本質,一方面體現在其流氓推廣方式上,往往是隱蔽、強制和暴力的;另一方面流氓軟件很大程度上是個空殼軟件,并沒有為用戶帶來應有價值,帶來的是系統資源浪費和各種頻繁騷擾;最不容忽視的一點是其往往暗藏病毒木馬,在利益追求的引導下,推廣者想盡辦法通過一臺電腦的安裝流量榨取十份的推廣回報,用戶電腦最終只能淪為賺取推廣費用的傀儡,甚至最后被裝上各類木馬病毒,嚴重影響用戶系統安全。
近年來流氓軟件的傳播增長趨勢非常迅猛,加上與之伴隨的流量類、推廣類木馬,已經日益成為國內互聯網安全的一大毒瘤。用戶作為流氓軟件的最大受害者,不僅要遭受推廣騷擾和安全威脅,最終可能還要為廠商推廣費用的超額部分買單。流氓軟件安全問題的解決,需要用戶自覺抵制各類誘導軟件,需要部分廠商聯盟加強監管,規范自身的推廣行為,也需要各安全公司增強針對性的查殺清理方案,為用戶提供更全面及時的安全保護。