Android病毒分析報告 – 新病毒FakeUmg “假面友盟”

近期百度安全實驗室發現一款“假面友盟”新病毒,該病毒通過大批量二次打包第三方應用獲得快速的傳播。安全實驗室監控數據表明,受該病毒感染的應用數以萬計,且分佈於國內不同流行應用商店,累計下載量超過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>  

 

    

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

發佈留言