0x01 病毒背景及危害
伏地蟲病毒程序,是一款危害及其嚴重的手機惡意程序。此病毒所采用的技術(shù)非常高超,能夠自動獲取用戶手機設(shè)備的Root權(quán)限,擁有了Root權(quán)限,該病毒就可以在手機設(shè)備上為所欲為,比如下載惡意程序,泄露用戶隱私信息,盜走網(wǎng)銀賬戶等等。該病毒會自帶root方案,方案數(shù)量多達26個,基本覆蓋了絕大多數(shù)android漏洞提權(quán)的內(nèi)容。通過病毒的感染方式和惡意行為,可以判定制造這個病毒不是一個“個人行為”,該惡意程序的背后,有一個“強大”的團隊在運作。
下圖是近一個月來,騰訊手機管家監(jiān)測到的伏地蟲病毒的感染數(shù)據(jù),每日均有數(shù)以萬計的新增量,可以看出伏地蟲病毒的傳播速度之快,尤其是在周末會出現(xiàn)病毒感染的高峰。截止目前,已有近80萬的手機用戶感染了伏地蟲病毒,嚴重影響了用戶的正常生活,甚至造成財產(chǎn)損失,下面對伏地蟲病毒的原理和惡意行為進行深度的分析。
0x02 病毒行為分析
此病毒母體一般都是寄生在一些色情應(yīng)用中,一旦用戶被誘導下載安裝這些病毒,病毒就找到了寄生體,用戶即使卸載掉安裝的應(yīng)用,病毒母體仍然無法被卸載,即使采用市面上常用的安全軟件也無法徹底清除此病毒。并且每次手機開機,病毒都會自動啟動,也無法通過恢復出廠設(shè)置來達到根除病毒的目的。本文所所描述的病毒母體附屬在一款名為流量分析的應(yīng)用軟件中,如下圖所示:
一旦流量分析軟件被用戶觸發(fā),病毒母體程序馬上開始發(fā)作,會瘋狂地給用戶下載其它第三方程序,這些程序包括正版的推廣軟件,也包括其他的惡意軟件、色情軟件等。如下圖所示:
除了推廣正常的常用應(yīng)用軟件,同時也會推廣一些惡意廣告軟件,頻繁在用戶手機上彈出廣告,廣告包含但不限于以下幾種:
1. 整屏彈窗
2. 半屏彈窗
3. 通知欄彈窗
4. 窗口懸浮,包括置頂和置底。
這些彈窗廣告,嚴重影響用戶正常使用手機,如果不點擊廣告,廣告頁面一直處于屏幕最上層,遮住正常應(yīng)用軟件,使得用戶軟件無法正常運行,比如專殺工具的查殺按鈕,如果被廣告頁面遮住,用戶就無法運行查殺功能。
不僅如此,惡意程序還會推廣大量的色情軟件,如下圖所示:
除了上述惡意行為,惡意程序還會發(fā)送大量的扣費短信,給用戶造成直接的財產(chǎn)損失,同時還會卸載一些安全軟件和授權(quán)軟件,比如會主動去卸載kingroot授權(quán)軟件,以防止自身被安全軟件查殺,具有較強的自我保護能力。
0x03 病毒原理
病毒母體程序啟動時,首先會注冊啟動很多事件監(jiān)聽服務(wù),包括但不限于監(jiān)控手機狀態(tài),接收、發(fā)送短信等。通過監(jiān)控網(wǎng)絡(luò)狀態(tài),由云端控制病毒進行惡意推廣、后臺安裝垃圾應(yīng)用等操作。
1. 監(jiān)聽網(wǎng)絡(luò)狀態(tài)切換,啟動聯(lián)網(wǎng)服務(wù)。
2. 初始化聯(lián)網(wǎng)參數(shù)
3. 聯(lián)網(wǎng)拉取云端指令
發(fā)送惡意短信,同時監(jiān)聽收到的短信,病毒母體中所有的字符串都經(jīng)過加密處理,病毒分析人員無法通過簡單反編譯手段獲取一些病毒信息。
4 啟動服務(wù),發(fā)送惡意短信
5 監(jiān)聽短信接收
6 獲取敏感信息關(guān)鍵字,屏蔽敏感信息
而惡意程序的主體,其實并不在母體中,而是通過云端拉取的方式,從服務(wù)器上下載的,比如1208ggnn.mm,這是一個apk,這樣大大增加了分析員逆向分析和取證的難度。 流量分析這個軟件運行起來后,首先會檢查本地是否有這個apk。如果沒有則會去服務(wù)器下載,如果有的話則會直接運行。具體的代碼如下所示,其中的地址等字符串都是經(jīng)過加密:
我們通過在PC上架設(shè)軟熱點,通過抓包工具抓到的數(shù)據(jù),可以清晰地看到惡意程序與服務(wù)器的通訊記錄。 惡意程序首先會去服務(wù)器下載1208ggnn.mm這個apk。然后會下載大量的推廣程序。如下圖所示(包含但不限于以下通訊記錄,短短幾分鐘,下載的數(shù)據(jù)包就有兩三百兆,多達上千條通訊記錄):
這張圖展示了惡意程序與服務(wù)器的通訊,在下載完1208ggnn.mm文件之后,通過自帶的方案提取root權(quán)限,然后釋放惡意程序文件到system等相關(guān)的目錄。
與此同時,惡意程序還會把它推廣的軟件,也釋放到/system/目錄。手機上的文件分布如下圖所示:
1. 在手機/system/bin/下釋放這些文件。其中install-recovery.sh是手機啟動時讓惡意程序自動運行的配置文件,ipm、dm、.nbwayxwzt、android.sys都是惡意程序文件。Busybox是一個shell命令的工具集。
2. 替換了/system/lib/下的libstlport.so。這個文件經(jīng)分析并沒有進行感染,只是不同的版本,目的是為了防止手機上沒有這個文件,以此來保證惡意程序正常的運行
3. 在手機/system/xbin目錄下,這三個都是惡意程序文件
4. 在手機/system/etc目錄下,會釋放入下文件,包括惡意程序文件以及開機自啟動文件。
5. 在/system/app下釋放這些文件,這些應(yīng)用包括推廣的正常軟件,以及其他惡意程序文件,色情軟件等。把推廣的程序放在這個目錄下的目的,是為了用戶不能正常地卸載這些惡意程序
現(xiàn)在讓我們回過頭來再看看1208ggnn.mm這個apk,這個惡意程序之所以功能如此強大,是因為它獲取了root權(quán)限。這個重要的工作,都在上述這個apk中。這個apk的assets目錄下,從他的zip包中,我們看到有26個提權(quán)文件。
惡意程序會根據(jù)不同的機型,選擇不同的方案進行root提權(quán)操作。Root方案文件如下圖所示:
獲取root的相關(guān)程序邏輯
將assets目錄下的db文件(其實就是一個jar包)拷貝到應(yīng)用目錄下,并用反射調(diào)用其中的入口方法開始Root。 另外病毒利用install-recovery.sh來實現(xiàn)開機自啟,如下圖所示:
病毒程序把/system/etc/install-recovery.sh這個文件給改了,增加了它自啟動的相關(guān)文件路徑。這樣手機在開機的時候,就會把.360asshole等文件運行起來。 上述的修改install-recovery.sh文件的內(nèi)容,都會被保存在這里
這些內(nèi)容是通過1208ggnn.mmassets.sv.qq這個so進行操作的,它會讀取xxxx.sh文件,然后把該文件的內(nèi)容讀取出來,寫入到install-recovery.sh文件中。 具體匯編代碼如下圖所示:
惡意程序會把推廣的軟件也啟動起來,是通過配置文件進行的。這里包含著啟動腳本,內(nèi)容都是經(jīng)過base64編碼的,如下圖所示:
上述兩個文件的內(nèi)容解密后可以看到相關(guān)數(shù)據(jù),如下圖所示:
上述兩個文件的內(nèi)容解密后可以看到相關(guān)數(shù)據(jù),如下圖所示:
在這個so中,我們可以看到對于/data/.hidenman/.ms2以及/data/.hiden/man/.asshole文件的操作。主要是把這兩個文件的內(nèi)容讀取出來,然后對他進行base64解碼,進行執(zhí)行的相關(guān)操作。如下圖所示:
通過上述分析,我們可以看到伏地蟲病毒的危害非常大,尤其在一些配置很低的手機上,那么多軟件同時運行,外加廣告彈窗,會直接導致手機卡死而無法正常使用。
0x04 病毒查殺
發(fā)現(xiàn)手機中了此類病毒后,請及時下載騰訊手機管家,并利用頑固木馬專殺工具對病毒進行查殺,如下圖所示:
0x05 附錄——病毒基本信息
病毒樣本hash:
A9755A6F8049B9B915457DF6A1D2F995F386480F
病毒包名:
com.ytel.sgh
軟件名:
流量分析
證書:
————————————————
文件名:
1208ggnn.mm
病毒樣本hash:
7B865FEAC388D87EF76071E372F65C3A77993858
證書: