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

来源:互联网 发布:淘宝上的催情药实测 编辑:程序博客网 时间:2024/06/05 17:02

本文章由Jack_Jia编写,转载请注明出处。  
文章链接:http://blog.csdn.net/jiazhijun/article/details/12658633

作者:Jack_Jia    邮箱: 309zhijun@163.com

   

    近期百度安全实验室发现一款“假面友盟”新病毒,该病毒通过大批量二次打包第三方应用获得快速的传播。安全实验室监控数据表明,受该病毒感染的应用数以万计,且分布于国内不同流行应用商店,累计下载量超过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发送短信,使用方法名迷惑逆向分析人员。


     

 


     按照短信指令配置拦截特定号码短信:






     


原创粉丝点击