×

Android锁机加密病毒分析
  

新手032448 3550

{{ttag.title}}
1、样本描述
随着移动设备用户逐年增长,移动端病毒也大肆扩散,从互联网搜寻移动端病毒样本,发现该病毒样本程序运行之后使用AES加密文件,自动删除文件并勒索钱财。

2、样本分析
2.1 基础分析
下载该APP安装后会申请激活设备管理器,当授权点击之后,发现被锁屏,解锁屏幕时会发现:
2.2 获取锁屏密码
使用JEB加载恶意APP进行反编译,然后全局搜索类:

DeviceAdminReceiver

查看该类里代码逻辑,发现直接将手机的锁机密码改成9815。


输入9815即可成功解除锁屏密码。

2.3 获取浮窗锁机密码
使用JEB搜索锁机界面的文字“输入密码”
进入该类发现“this.wmParams.type = 2010”(浮窗级别最高)
并且定义了一个Service然后用WindowManager实现,然后把权限设置为最高,用户就无法进行任何操作。
程序通过下图代码进行判断比对密码,如果输入的密码正确,则关闭此service,然后浮窗锁机就消失了。
使用Xposed工具直接hook这个decrypt方法就能拿到这个密码:

if("com.jk.mwifi".equals(loadPackageParam.packageNmae)){   XpoesdHelpers.findAndHookMethod("com.h.Du",loadPackageParam.ClassLoader,    "decrypt",String.class,new XC_MethodHook(){        @Override        protected void beforeHookedMethod(MethodHookParam param) throws Throwable{            Log.i("jw","params:"+param.args[0]);            super.beforeHookedMethod(param);        }        @Override        protected void afterHookedMethod(MethodHookParam param) throws Throwable {            Log.i("jw","result1:"+param.getResult());            super.afterHookedMethod(param);        }    });}


运行后获取对应的密码为:2375439

2.4 病毒样本算法分析
查看DES的变量定义:
通过观察看到两个变量,其中传入一个字符串的值,里面包含DES加密的key,然后对密文进行解密,解密之后的内容在作为新的DES的密钥值,相当于二次获取密钥。
查看DU代码实现:
使用DES加解密算法,对密钥字符串”flower”进行解密,然后直接解密内容为:”c29fe56fa59ab0db”

public class DES {   private static final String DES = "DES";   private static final String CRYPT_KEY = "xxx";

直接解密,获取第二次要用到的密钥”xxx”,然后在初始化以下key:

public class DES {   private static final String DES = "DES";   private static final String CRYPT_KEY = "xxx";


然后查找病毒样本的xml文件,将passw进行解密:

    public static void main(String[] args){    String ID = "2557s3g4fv9ssd2e1324409d8a6";    String idDecrypt = decrypt(ID);    System.out.println("origiinkey:"+idDecrypt);   }


解密结果为:2375439
这里生成密码是采用随机值,然后在加上123456,最后在DES加密保存到xml中,同时也会把随机数保存到xml中的,从上面可以看到值为:2375439
而这个值加上123456也就是密码:2251983+123456=2375439。

2.4 病毒样本行为分析
病毒样本在运行后会将手机中的文件进行加密,并且无限制的新建文件和文件夹到SD中。
通过追踪onCreate方法进行分析:
继续追踪发现有一个循环进行写文件和创建文件夹:
在这里会创造出很多空文件和空文件夹,这样SD卡到最后几乎无法打开,手机也不能正常运行。
通过大致分析判断,文件加密在病毒程序启动时就已经开始运行。
这里会过滤他自己创建出来的空文件和空文件夹不进行加密。
这里通过方法的最后一个参数来判断是加密文件还是解密文件。这个病毒是用AES对文件进行加密的。而密钥他又用AES加密,这时候的加密内容的key和内容是:

    static String pass = "F7A3B9D65C32E52";   public static String path;   static String text = "B4E3F80CA7B5";


借助Xposed工具直接hook FormetFileSize方法

    XpoesdHelpers.findAndHookMethod("com.jk.mwifi.MainActivity",loadPackageParam.ClassLoader,        "FormetFileSize",long.class,File.class,boolean.class,new XC_MethodHook(){        @Override        protected void beforeHookedMethod(MethodHookParam param) throws Throwable{            Log.i("jw","FrometFileSize params:"+param.args[0]+","+param.args[1]+","+param.args[2]);            param.args[2] = false;            super.beforeHookedMethod(param);        }        @Override        protected void afterHookedMethod(MethodHookParam param) throws Throwable {            super.afterHookedMethod(param);        }    });


拦截这个方法之后,修改这个参数状态为false表示就是解密文件了。
通过观察输出日志,发现已经成功的进行解密。

3、病毒样本分析总结
  • 该病毒APP采用两套锁机机制,而且浮窗锁机尽然还用随机密码,并且会将文件加密让设备无法使用。最后用AES算法对文件进行加解密操作。这里解密可以用Xposed框架进行hook,令一种方法是把它的界面代码拷贝出来写一个解密程序。
  • 从这个病毒中我们可以了解到关于锁机策略机制,对于设备管理器的锁机直接找到DeviceAdminReceiver这个类,查看源代码找到锁机密码。
  • 对于浮窗锁机。因为采用Service和WindowManager来实现逻辑。所以可以直接使用am命令强制停止程序运行。


203445f75c364dcfdf.png (236.73 KB, 下载次数: 125)

203445f75c364dcfdf.png

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

新手480107 发表于 2020-10-16 23:18
  
感谢分享
新手480107 发表于 2020-10-16 23:28
  
感谢分享
新手899116 发表于 2020-10-17 13:14
  
学习学习
新手780102 发表于 2020-10-17 13:23
  

感谢分享
新手741261 发表于 2020-10-17 13:32
  
感谢分享
新手031815 发表于 2020-10-17 13:40
  
感谢分享
新手612152 发表于 2020-10-17 13:47
  
学习学习
新手078326 发表于 2020-10-18 12:00
  
盖楼盖楼
司马缸砸了光 发表于 2020-10-18 15:48
  
感谢分享
发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
【 社区to talk】
技术笔记
干货满满
每日一问
信服课堂视频
GIF动图学习
新版本体验
技术咨询
2023技术争霸赛专题
功能体验
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
POC测试案例
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人