Android简单病毒分析(样本名:百变气泡)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011337769/article/details/77643805

病毒分析 - 百变气泡

1.样本信息

病毒名称:126b25e8e9ea5c7cfd3eddc4c500d69bb9cbd821

所属家族:无

MD5值:e7c653a4195cd36f27933b4ef1fe8328

SHA1值:126b25e8e9ea5c7cfd3eddc4c500d69bb9cbd821

CRC32:5f1096a3

病毒行为:a)程序启动后的主界面如图所示,


    b)清单文件中恶意组件

<receiver android:name=".BootBroadcastReceiver">

            <intent-filter android:priority="2147483647">

                <action android:name="android.intent.action.BOOT_COMPLETED"/>

            </intent-filter>

            <intent-filter>

                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

            </intent-filter>

            <intent-filter>

                <action android:name="android.intent.action.TIME_SET"/>

            </intent-filter>

            <intent-filter>

                <action android:name="android.intent.action.TIMEZONE_CHANGED"/>

            </intent-filter>

            <intent-filter>

                <action android:name="android.intent.action.MEDIA_BAD_REMOVAL"/>

                <action android:name="android.intent.action.MEDIA_EJECT"/>

                <action android:name="android.intent.action.MEDIA_MOUNTED"/>

                <action android:name="android.intent.action.MEDIA_REMOVED"/>

                <action android:name="android.intent.action.MEDIA_SCANNER_FINISHED"/>

                <action android:name="android.intent.action.MEDIA_SCANNER_STARTED"/>

                <action android:name="android.intent.action.MEDIA_SHARED"/>

                <action android:name="android.intent.action.MEDIA_UNMOUNTED"/>

                <data android:scheme="file"/>

            </intent-filter>

            <intent-filter>

                <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>

            </intent-filter>

        </receiver>

    c)敏感权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

    <uses-permission android:name="android.permission.VIBRATE"/>

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <uses-permission android:name="android.permission.INTERNET"/>

    <uses-permission android:name="android.permission.BROADCAST_STICKY"/>

    <uses-permission android:name="android.permission.GET_TASKS"/>

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

    <uses-permission android:name="android.permission.SET_WALLPAPER"/>

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    d)加固情况:

       未加固

2.测试环境及工具

反编译工具:Android Killer v1.3

测试工具:夜神模拟器 v3.8

3.分析目标

了解该程序的恶意行为,并题出解决方案

4.主要行为

  1).android.permission.SYSTEM_ALERT_WINDOW,显示系统级警报,控制手机屏幕

  2).android.permission.DISABLE_KEYGUARD,停用键盘,锁定键盘

  3).android.permission.VIBRATE,控制震动器

  4).android.permission.RECEIVE_BOOT_COMPLETED,开机自启动

  5).android.permission.WRITE_EXTERNAL_STORAGE,允许修该删除SD卡内容

  6).android.permission.READ_PHONE_STATE,读取手机身份状态信息

  7).android.permission.INTERNET,访问网络

  8).android.permission.BROADCAST_STICKY,发送置顶广播

 

  9).android.permission.GET_TASKS,检索当前运行的应用程序

  10).android.permission.ACCESS_WIFI_STATE,查看wifi状态

  11).android.permission.CHANGE_WIFI_STATE,更改wifi状态

  12).android.permission.SET_WALLPAPER,设置壁纸


5.代码片段分析

1).首先进入入口类onCreate中,然后找到了一个按钮响应事件函数,其中初始化了如下字符串:

mount -orw,remount /system,

cp/data/app/Aaron.tencent.kou-1.apk /system/app/,

cp/data/app/Aaron.tencent.kou-2.apk /system/app/,

chmod 644 /system/app/Aaron.tencent.kou-1.apk,

chmod 644 /system/app/Aaron.tencent.kou-2.apk,

rm /data/app/Aaron.tencent.kou-1.apk\n,

rm/data/app/Aaron.tencent.kou-2.apk\n,

rm -r /data/app/,

reboot,

并调用execCommand执行这些命令,这些命令主要含义是:重新挂载/system目录,然后拷贝Aaron.tencent.kou-1.apk和Aaron.tencent.kou-2.apk到/system/app/目录下,并修该这两个文件的属性为可读可写,然后删除/data/app下的源文件,然后删除/data/app下的所有文件,最后重启,如图所示:


2).单击开启软件功能,弹出如图所示提示


3).选择允许后,手机便立刻重启,如下图所示:


4).重启完成后,手机被锁,同时根据之前代码分析,/data/app/目录下文件也被删除,如下图所示:


5).特征码为手机设备ID的第3-10个字符,如下图所示:


6).重启后,程序会发送广播,然后自动启动,如图所示:


7).初始化密码如图所示:



8).对密码进行了加密处理,其中v2为特征码:3940105,v1为用户输入的字符,然后会进行判断是否相等,相等则退出,如下图所示:



9).根据分析写代码测试,将特征码与字符串“koukou”进行加密,每次计算出的密码都不同,如图所示:

public static byte[] encrypt(byte[] arg3, String arg4) {
   
byte[] v0_2;
    try
{
        SecretKeySpec v0_1 = AES.createKey(arg4)
;
       
//Key v0_1 = AES.createKey(arg4);
        //SecretKeySpec v0_1 = new SecretKeySpec(arg4.getBytes(), "AES");
       
System.out.println(v0_1);
       
Cipher v1 = Cipher.getInstance("AES/CBC/PKCS5PADDING");
       
v1.init(Cipher.ENCRYPT_MODE, ((Key)v0_1));

       
v0_2 = v1.doFinal(arg3);
   
}
   
catch(Exception v0) {
        v0.printStackTrace()
;
       
v0_2 = null;
   
}

   
return v0_2;
}

10)测试结果




6.解决方案

1).病毒关键信息

加密字符串:CF721B298D9456549384BFF6881867C193CD85060C19CCBED99B2C4D160AA729

锁机类:Aaron.tencent.kou.X

包名:Aaron.tencent.kou

类名:Aaron.tencent.kou.Y

2).查杀方式

查杀方式一:使用adb命令通过包名进行卸载,然后在/system/app目录下将软件包删除,或者使用monitor工具进行删除

查杀方式二:通过使用过滤包名和类名编写对应的专杀工具。

查杀方式三:如果在模拟器中测试,则取消root即可,然后再重复查杀方式一的步骤。

查杀方式四:通过分析加密方式,找到对应的加密算法,编写解密算法,计算密码,由于使用了jce相关的API,所以每次得到的密码都不同,则可以通过AS动态调试smali,动态获取到密码:D2BB9FA72F5ABEB9CFD9DEDD80DC8DFB






猜你喜欢

转载自blog.csdn.net/u011337769/article/details/77643805