当前位置:操作系统 > 安卓/Android >>

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>
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,