切换风格

粉色心情 简约黑色 加州 城市 绿野仙踪 晚霞 伦敦 雪山 花卉 龙珠 白云 薰衣草 星空 简约米色
12下一页
回复 12
  • TA的每日心情
    慵懒
    5 天前
  • 签到天数: 93 天

    [LV.6]常住居民II

    75

    主题

    160

    帖子

    4680

    积分

    管理员

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    4680
    Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)[复制链接]
    发表于 2017-7-25 15:19:01 | 显示全部楼层 |阅读模式
    一、前言之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财。不给钱就删除。但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个病毒样本,就抽空看了一下,下面就来分析一下这个病毒样本程序。
    二、病毒样本分析首先国际惯例,这类的病毒都是用一些特殊的app名称吸引诱导用户下载,这里是一个叫做:魅影WIFI,下载安装之后界面如下: Center.jpg
    我们点击免费激活,出现授权界面: Center.jpg
    需要设备管理器,这时候应该猜到了,他是想修改锁机密码,我们就授权,然后分析程序找到重置的密码就好了,授权之后,就被锁屏了,解锁屏幕会发现: Center.jpg
    病毒作者是真够狠的,尽然有自己弄了一个浮窗锁机,这时候我们不得不看代码了,找到这个密码了,当然这个浮窗类型的锁机其实很容易解决的。因为他主要是借助WindowManager搞得,所以这时候可以连接adb使用命令可以直接干掉这个进程就好了:am force-stop pkgname;我们可以用dumpsys命令获取其包名: Center.jpg
    然后在强制停止app即可:
    停止了之后,发现就是解锁屏幕了,当然密码已经被篡改了,所以的分析软件了,当然如果设备root了,可以直接删除/data/system/password.key文件即可。当然这些说的都是因为本身就是个开发者,而对于小白用户,肯定这么做不合适的。我们需要分析app,拿到这两个地方锁机密码。告诉被坑的小白用户,解救他们。下面就来分析app了:
    三、破解获取解锁密码第一、获取锁屏密码因为我们知道现在大多数锁机软件都是利用设备管理器来修改设备密码的,所以想看他的密码也很简单。直接用jadx打开软件,然后全局搜索类:DeviceAdminReceiver Center.jpg
    然后看看这个类里面修改代码部分逻辑: Center.jpg
    看到了,这里直接将手机的锁机密码修改成9815了。这个就是我们待会需要解锁的密码。
    第二、浮窗锁机密码这个比上面密码有点麻烦,因为是自己定义的浮窗锁机,所以直接看到锁机界面文字,去Jadx全局搜索即可,这里全局搜索字符串"输入密码": Center.jpg
    进入到这个类即可: Center.jpg
    这里是定义了一个Service然后用WindowManager实现,然后把权限设置为最高,用户就无法进行任何操作了。因为最终的密码输入都是在这个EditText,取密码作比较也要用到这个文本框,就看这里的this.ed在哪里取值: Center.jpg
    这里直接比对密码,如果密码正确了,就直接干掉服务,浮窗锁机就没有了。所以这里最重要的是decrypt方法了,他是从SP中拿到key是passw的密文进行解密比对。其实到这里我们可以借助Xposed工具直接hook这个decrypt方法就能很轻易的拿到这个密码了: Center.jpg
    然后直接运行就可以获取对应的密码了: Center.jpg
    不过这里还想继续分析这个DES的加密逻辑,因为本身就是要学习的。所以我们继续手动分析这个加密算法,我们看看des变量定义: Center.jpg
    这里会看到有一个du和du2变量,这个不要在意,可能是代码混淆原因,其实就是一个值。看初始化传入一个字符串值,可能是DES加密的key值,然后就立马对一个密文进行解密,之后的内容在作为新的DES的密钥值。相当于这里二次获取密钥了。看DU代码实现: Center.jpg
    传入的字符串就是作为key进行加解密操作的。那么下面我们就需要手动写一个简单的DES加解密算法了,这个网上很多代码了,直接拷贝一个: Center.jpg
    第一次初始化密钥是字符串:"flower",然后直接解密内容:"c29fe56fa59ab0db" Center.jpg
    然后直接解密,获取第二次要用到的密钥"xxx",然后在初始化以下key: Center.jpg
    然后,我们需要去程序的xml中找到加密内容,然后拷贝出来进行解密: Center.jpg
    把这个串拷贝出来进行解密: Center.jpg
    这个就是解锁密码了,而我们在回过头看看怎么把这个加密串存到xml中的: Center.jpg
    这里他生成密码尽然是采用随机值,然后在加上123456,最后在DES加密保存到xml中,同时也会把随机数保存到xml中的,从上面可以看到值是: Center.jpg
    而这个值加上123456也就是密码了:92944926+12346=93068382,这个也就是上面我们解密之后的密码,这就对上了。所以这个锁机,如果加他QQ索要密码,其实他是需要让小白用户做点东西,因为这个密码是随机的,不是固定值,必须让小白用户把程序的xml文件给他。不然它也是不知道解锁密码的。实在坑爹。
    四、破解进行文件解密而上面的锁机并不是本文的重点,本文的重点其实是文件加密,在回他的app中: Center.jpg
    然后点击注册使用: Center.jpg
    点击注册软件,会等一会,其实这里他在做一些坏事,后面会分析代码干什么坏事: Center.jpg
    这就是我们熟悉的Wannacry病毒界面了,需要付钱才能对文件解密了,而这时候悲剧的是我们的设备SD卡中的文件已经被全部加密了: Center.jpg
    那么这时候就很恶心了,文件全部被加密,最蛋疼的是,你打开自己的SD卡可能都打不开了,这个是因为他做了一件更恶心的事就是无限制的新建一些文件和文件夹到SD中。这样其实手机已经废了。因为SD卡的文件非常多。看到上面的截图可以发现,每个文件都是0字节,然后文件对应一个空文件夹。下面来分析他的代码: Center.jpg
    然后进入这个类看看,在他的onCreate方法中看到几个方法: Center.jpg
    继续追踪发现: Center.jpg
    有一个可怕的方法就是爆炸boom了: Center.jpg
    在这里会创造出很多空文件和空文件夹,这样你的SD卡到最后几乎打不开了。手机也就废了。不过到这里我们貌似还没有介绍文件加密的内容,其实文件加密在程序启动的时候就做了,就是MainActivity中: Center.jpg
    然后就开始跟踪这个方法了: Center.jpg
    这里会过滤他自己创建出来的空文件和空文件夹不进行加密的,继续看代码: Center.jpg
    这里通过方法的最后一个参数来判断是加密文件还是解密文件。加解密方法参数都是类似的,第一个参数是AES加解密的密钥。所以到这里我们大致清楚了,这个病毒是用AES对文件进行加密的。而密钥他又用AES加密,这时候的加密内容的key和内容是: Center.jpg
    所以分析到这里,我们就可以开始进行手动解密文件了。这里当然有很多种方法:第一种方法:借助Xposed工具直接hook他的FormetFileSize方法,因为我们在上面分析知道,这个方法的最后一个参数标志是解密文件还是加密文件,我们拦截这个方法之后,修改这个参数状态为false表示就是解密文件了: Center.jpg

    第二种方法:把他解密功能代码拷贝出来,自己写一个解密程序,这个比较适合给中招的小白使用了: Center.jpg
    因为他的代码这几个类都比较独立,所以直接拷贝出来不会有太多的错误,而有些错误就是变量定义重复自己手动改一下即可: Center.jpg
    下面就开始运行这个程序即可,这里为了操作不浪费时间,就把SD卡情况了,然后写入三个简单的文件,让他加密: Center.jpg
    这时候会发现,他加密之后的文件名就是原始文件名凭借一个串而已,这里忽略乱码哈哈。因为只有这样,他在解密之后才能获取到原始文件,从他代码中也可以看到这点: Center.jpg
    然后运行我们解密程序,看到日志: Center.jpg
    到这里,我们就成功的进行解密了。
    五、病毒分析总结到这里我们就分析完了这个病毒,总得来说病毒作者心非常狠,锁机采用两套机制,而且浮窗锁机尽然还用随机密码坑人。最恶心的是他的文件加密,尽然在SD中创建了那么多的空文件和空文件夹,让设备无法使用了。打开SD卡也是失败的。罪恶中的罪恶。最后他用的是AES算法对文件进行加解密操作。而这里他没有采用RSA加密的原因其实很简单,如果用RSA加密的话,设备真的要报废了。因为RSA加密算法非常耗时吃内存。手机会扛不住的。他也不敢用RSA加密了,只好用AES了,但是AES加密只要知道了密钥其实没多大问题对于解密来说。这里我们解密可以用两种方式一种是Xposed框架进行hook,一种是自己把它的界面代码拷贝出来自己写一个解密程序。当然第二种是最优的,因为对于那些中招的小白用户他们是没有root的,也是没有安装Xposed框架的,只有写一个解密程序给他安装进行解密就好了。不过有个很大的问题,就是因为病毒还创建了很多空文件和空文件夹,导致操作的时候,我们需要区别对待。也要做一次过滤,这些病毒自己生成的文件和文件夹就不要做解密了,不然会无限制死机了。
    从这个病毒中我们可以了解到关于锁机策略机制,对于设备管理器的锁机直接找到DeviceAdminReceiver这个类就好了,或者直接看xml中的定义: Center.jpg
    快速找到修改密码的地方,找到锁机密码即可。而对于那种浮窗锁机。因为都是采用Service和WindowManager来实现逻辑的。所以直接使用am命令强制停止程序运行即可。
    特别说明:关于病毒样本这里不能给出,非常抱歉,我知道你们肯定想说:"留毒不留种,小心被人捅",但是四哥不想被请去喝茶,所以你们要骂要捅随意吧。而没有病毒样本,其实都是扯淡。只看分析不操作就是浪费时间。
    六、总结从这个病毒来看,其实即使你付费了,他帮你解密,也是很恶心的,因为他创建了那么多文件,删除需要时间,解密还消耗机器性能,这就是赤裸裸的迫害。所以遇到这种病毒千万不要给钱,可以自己解密,或者刷机。不要想那么多。手机解密这么多文件会死机了,你的手机会扛不住爆炸的。干脆备份文件,刷机得了。还有最重要的一点就是千万不要去下载来历不明的app,不要有歪想法,好好用手机。去正规的应用市场下载应用是最保险的。

    坚持签到,以坛为家!
  • TA的每日心情
    郁闷
    2017-9-17 15:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    1

    主题

    28

    帖子

    244

    积分

    人在旅途

    Rank: 1

    积分
    244
    发表于 2017-8-13 15:25:35 | 显示全部楼层
    66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
    这家伙很懒,什么都没留下!
  • TA的每日心情
    开心
    2018-2-4 23:07
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    3

    主题

    39

    帖子

    376

    积分

    人在旅途

    Rank: 1

    积分
    376
    发表于 2017-8-14 09:00:10 | 显示全部楼层
    轻轻的我来签到了,想带走一堆金币...
    这家伙很懒,什么都没留下!
  • TA的每日心情

    2017-8-28 09:48
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    0

    主题

    28

    帖子

    74

    积分

    人在旅途

    Rank: 1

    积分
    74
    发表于 2017-8-14 09:06:51 | 显示全部楼层
    有些复杂但是有功底的人还是可以看懂的
    这家伙很懒,什么都没留下!
  • TA的每日心情

    2017-9-3 17:13
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    14

    帖子

    185

    积分

    人在旅途

    Rank: 1

    积分
    185
    发表于 2017-8-15 09:04:24 | 显示全部楼层
    轻轻的我来签到了,想带走一堆金币...
    这家伙很懒,什么都没留下!
  • TA的每日心情

    2017-8-19 14:48
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    5

    主题

    30

    帖子

    102

    积分

    人在旅途

    Rank: 1

    积分
    102
    发表于 2017-8-15 16:35:18 | 显示全部楼层
    666666666666666666666666666666666666666666666666666666666666666
    这家伙很懒,什么都没留下!
  • TA的每日心情
    奋斗
    2017-9-2 18:23
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    12

    主题

    45

    帖子

    432

    积分

    人在旅途

    Rank: 1

    积分
    432
    发表于 2017-8-16 11:40:04 | 显示全部楼层
    表示看不懂                        
    这家伙很懒,什么都没留下!
  • TA的每日心情
    开心
    2017-8-21 12:56
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    5

    主题

    108

    帖子

    229

    积分

    人在旅途

    Rank: 1

    积分
    229
    发表于 2017-8-16 16:33:57 来自手机 | 显示全部楼层
    轻轻的我来签到了,想带走一堆金币...
    这家伙很懒,什么都没留下!
  • TA的每日心情
    开心
    2018-2-4 23:07
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    3

    主题

    39

    帖子

    376

    积分

    人在旅途

    Rank: 1

    积分
    376
    发表于 2017-8-16 18:30:33 | 显示全部楼层
    虽然很复杂,但是好像很厉害的样子
    这家伙很懒,什么都没留下!
  • TA的每日心情
    开心
    2017-8-31 08:43
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    8

    帖子

    43

    积分

    人在旅途

    Rank: 1

    积分
    43
    发表于 2017-8-17 09:50:26 | 显示全部楼层
    666666666666666666666666666666666666666666
    这家伙很懒,什么都没留下!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|凯特网络 ( 粤ICP备16057718号 )

    GMT+8, 2018-10-20 01:54 , Processed in 0.201015 second(s), 18 queries , File On.

    Powered by Discuz! X3.4

    © 2001-2013 凯特网

    返回顶部