【Android病毒分析報告】 - 新病毒FakeUmg “假面友盟”

本文章由Jack_Jia編寫,轉載請註明出處。  
文章鏈接:
http://blog.csdn.net/jiazhijun/article/details/12658633

作者:Jack_Jia    郵箱: [email protected]

   

    近期百度安全實驗室發現一款“假面友盟”新病毒,該病毒通過大批量二次打包第三方應用獲得快速的傳播。安全實驗室監控數據表明,受該病毒感染的應用數以萬計,且分佈於國內不同流行應用商店,累計下載量超過10萬餘次。該病毒惡意代碼僞裝成著名的“友盟統計”插件,具有較強的隱蔽性,導致該病毒較難被發現。

    該病毒啓動後,後臺偷偷訪問遠端服務器獲取運行指令,並根據服務器端指令執行如下惡意行爲:

       1、後臺私自發送短信訂閱付費服務,並攔截特定號碼短信,完成吸費。
       2、後臺自動化模擬點擊訪問廣告,騙取廣告聯盟廣告推廣費,消耗大量數據流量。

     目前監控到的該病毒的遠端指令服務器有以下幾個:

       http://118.126.11.136
       http://218.240.151.104
       http://www.ppa2099.com
       http://www.sese365.net
       http://www.fafa7891.com


   1、首先該病毒通過修改AndroidManifest.xml文件的入口Activity爲com.umeng.adutils.SplashActivity,SplashActivity啓動惡意代碼後,再啓動源程序MainActivity。這樣就達到了既啓動惡意代碼,又不破壞原有程序邏輯的目的。


        


      代碼樹結構

      通過僞裝成“友盟SDK"到達隱藏目的,逆向分析人員極易忽略此類代碼。


   


     2、病毒惡意組件功能及交互圖





     3、惡意代碼片段截圖


       一、廣告模擬點擊相關


        廣告指令服務器端地址:


    


     Http請求服務器獲取廣告指令,廣告指令通過Base64編碼,解碼後的指令如下:


<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<!--軟件信息-->
	<application>
		<!--應用名稱-->
		<appname>阿倫威克高清動態壁紙</appname> 
		<!--應用包名-->
		<pkgname>com.cnr.alunweike</pkgname> 	
		<!--應用版本-->
		<appversion>2.3.3</appversion> 
		<!--應用版本數-->		
		<appversioncode>16</appversioncode>
		<!--應用主界面-->
		<activity>MainActivity</activity> 
		<!--所在廣告平臺產品ID-->
		<appid>29e27c80-6a22-44e7-9c1c-1033b0bbeab5</appid>
		<!--所在廣告平臺渠道ID-->
		<appchannel>DTN</appchannel>
		<appkey>yzwzyleoczhi</appkey>
	</application>
	<!--模擬平臺的參數信息-->
	<advertisement>
		<!--廣告平臺名稱-->
		<advertname>datouniao</advertname> 
		<adverttimes>0</adverttimes>
		<!--廣告平臺需要模擬地址信息-->
		<url urlid="1">  
			<!--具體網絡地址,若以大括號包圍表示關鍵字-->
			<detail>http://ws1.datouniao.com/AdPublisherConnect</detail> 
			<!--訪問方式-->
			<way>get</way> 
			<!--是否需要UA-->
			<useragent>0</useragent>
			<!--延遲時間,以秒爲單位-->
			<delay>0</delay>
			<!--返回的正確結果-->		
			<statusCode>200</statusCode> 
			<!--所需參數-->	 
			<param pid="1">
				<name>udid</name>
				<value>$deviceID</value>
			</param>
			<param pid="2">
				<name>device_name</name>
				<value>$deviceType</value>	
			</param>
			<param pid="3">
				<name>device_type</name>
				<value>android</value>	
			</param>
			<param pid="4"> 
				<name>os_version</name>
				<value>$deviceOs</value>	
			</param>	
			<param pid="5"> 
				<name>country_code</name>
				<value>CN</value>	
			</param>
			<param pid="6">
				<name>language_code</name>
				<value>zh</value>	
			</param>
			<param pid="7">
				<name>app_id</name> 
				<value>$appId</value>
			</param>	
			<param pid="8">
				<name>screen_density</name>
				<value>$deviceDensity</value>
			</param>
			<param pid="9">
				<name>screen_width</name>
				<value>$deviceWidth</value>	
			</param>
			<param pid="10">
				<name>screen_height</name>
				<value>$deviceHeight</value>	
			</param>
			<param pid="11">
				<name>sdk_version</name>
				<value>7</value>	
			</param>
			<param pid="12"> 
				<name>userID</name>	
				<value>$deviceID</value>
			</param>
			<param pid="13"> 
				<function>netType</function>
				<value>$netType</value>	
			</param>
			<param pid="14"> 
				<name>place_id</name>
				<value>$appChannel</value>	
			</param>
			<param pid="15">
				<name>timestamp</name>
				<function>$at</function>	
			</param>
			<param pid="16">
				<name>verifier</name>
				<function>$verifier</function>
			</param>			
		</url>
		<url urlid="2"> 		
			<!--具體網絡地址,若以大括號包圍表示關鍵字-->
			<detail>http://ws1.datouniao.com/android/AdsOffers</detail> 
			<!--訪問方式-->
			<way>get</way> 
			<!--是否需要UA-->
			<useragent>1</useragent>
			<!--延遲時間,以秒爲單位-->
			<delay>0</delay>
			<!--返回的正確結果-->		
			<statusCode>200</statusCode> 
			<!--所需參數-->	 
			<param pid="1">
				<name>udid</name>
				<value>$deviceID</value>
			</param>
			<param pid="2">
				<name>device_name</name>
				<value>$deviceType</value>	
			</param>
			<param pid="3">
				<name>device_type</name>
				<value>android</value>	
			</param>
			<param pid="4"> 
				<name>os_version</name>
				<value>$deviceOs</value>	
			</param>	
			<param pid="5">
				<name>country_code</name>
				<value>CN</value>	
			</param>
			<param pid="6">
				<name>language_code</name>
				<value>zh</value>	
			</param>
			<param pid="7">
				<name>app_id</name>
				<value>$appId</value>
			</param>	
			<param pid="8">
				<name>screen_density</name>
				<value>$deviceDensity</value>
			</param>
			<param pid="9">
				<name>screen_width</name>
				<value>$deviceWidth</value>	
			</param>
			<param pid="10">
				<name>screen_height</name>
				<value>$deviceHeight</value>	
			</param>
			<param pid="11">	 
				<name>sdk_version</name>
				<value>7</value>	
			</param>
			<param pid="12">	 
				<name>userID</name>	
				<value>$deviceID</value>
			</param>
			<param pid="13"> 
				<name>netType</name>
				<function>$netType</function>	
			</param>
			<param pid="14">
				<name>place_id</name>
				<value>$appChannel</value>	
			</param>
			<param pid="15">
				<name>clientParams</name>
				<value></value>	
			</param>
			<param pid="16">
				<name>timestamp</name>
				<!--參數值, 獲取當前時間,可在|後設置延遲時間,以毫秒爲單位-->
				<function>$at|15000</function>	
			</param>
			<param pid="17">
				<name>lat</name>
				<function>$location|lat</function>
			</param>
			<param pid="18">
				<name>lng</name>
				<function>$location|lng</function>
			</param>
			<param pid="19">
				<name>city</name>
				<function>$location|city</function>
			</param>			
			<param pid="20">
				<name>verifier</name>
				<function>$verifier</function>
			</param>			
		</url>
	</advertisement>
</configuration>

    

   解析廣告指令,並根據指令中相關廣告平臺的協議配置參數。




    二、惡意吸費相關

   

        吸費指令服務器地址:


   


      Http請求獲取吸費指令,Base64解碼後的吸費指令結構爲:


      


      爲了掩蓋發送短信行爲,惡意攻擊者通過native stringFromJNI方法調用so發送短信,使用方法名迷惑逆向分析人員。


     

 


     按照短信指令配置攔截特定號碼短信:






     


發佈了47 篇原創文章 · 獲贊 6 · 訪問量 92萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章