吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25454|回复: 133

[移动样本分析] “荒野行动盒子”Root锁屏勒索样本分析--一步一步教你逆向分析勒索App

    [复制链接]
发表于 2017-12-22 18:58 | 显示全部楼层
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
本帖最后由 0xxx 于 2017-12-25 14:19 编辑

感谢各位评分支持,原文已经复制过来了,后台编辑器真不太会用。
原文:
https://mp.weixin.qq.com/s/HPfHMdxmZJoYdwzCeVLDFw

救援帖:
https://www.52pojie.cn/thread-672111-1-1.html
原帖提供的样本下载地址,没有放压缩包
https://pan.baidu.com/s/1eSNF1kA

这是一篇非反病毒工程师的非专业分析,写完发现更像逆向教程,文中如果有疏漏,欢迎批评指正。
0x00 前言
最近在吾爱破解论坛病毒救援区看到一个锁机样本,说是root锁,虽然帖子好几天了但还没人分析,楼主应该线刷系统了,打算就以这个练练手吧。很久也没分析锁屏App了,之前有个王者荣耀辅助的样本,不过没root锁,想看看最近勒索App有什么新花样。话说,现在恶意软件都喜欢蹭热度,什么游戏流行就伪装什么外挂。

0x01 信息收集
先安装样本到模拟器里看看(模拟器万一搞坏了,大不了卸载重新安装),安装完成后会有一个“荒野行动盒子”的图标,运行后发现App申请Root权限,(很多外挂都需要Root权限,勒索软件以外挂为名倒是很容易让人放松警惕):
这里点击“永久记住选择“,然后点击”允许“,看看勒索软件搞什么鬼。发现这个勒索App还做了一个外挂界面:

等一会模拟器自动重启了。重启完成后,发现如愿以偿,模拟器被锁了,锁屏界面如下(锁屏界面忒丑了):

随便输入“123456“,点击”解锁“发现没有反应,点击高亮的”解锁20元“,发现有提示:

意思是点100次就会解锁,这种都是调戏人的。要是可以免费解锁,那还怎么勒索那20块钱?
0x02 反编译分析
接下来祭出神器jadx反编译分析,反编译后发现资源里面的结构有点不一样:

正常情况下,apk反编译后应该是下面这种结构:

原来res目录下的drawable、layout等资源全部被混淆了。打开r下的0文件发现其实就是编译后的layout文件:

这个样本其实是使用了MT管理器的”RES资源混淆“功能。(MT管理器是一个可以在安卓手机上修改apk文件、反编译dex、修改smali、修改xml、重打包的App,功能很强大)。代码的入口是MainActivity:
代码简洁的不得了,LogCatBroadcaster看着很眼熟吧,进去看看代码:

这就是AIDE的特征(AIDE是一款可以在安卓手机上编写安卓App的开发工具,分析过勒索App的应该都很熟悉了) 。再来看看e.busybox函数,发现代码混淆了,那还是使用JEB接着分析吧,分析完混淆函数,然后重命名一下,看着还不是很清楚:

尤其是下面一大堆的StringBuffer:

先把函数拷贝出来,精简掉StringBuffer,代码清晰多了:

这部分代码功能很清晰:复制libjiagu.so到App私有目录的a/k.bat文件中,再复制lib2jiagu.so到App私有目录的a/libStarEngine.so文件中,然后解密k.bat得到key.bat文件,再获取key.bat文件的包名保存到e.packageName中,这里可以看出来key.bat(即libjiagu.so文件)是一个apk文件。继续看下面代码:

接着执行“ls data“命令,安卓App中要执行系统命令,必须申请root权限,代码执行到这里就需要申请root权限。不过这里执行这个命令没起到什么作用。这里根据安卓系统版本分别进行处理,如果小于5.0,先把key.bat释放到/system/app/并改名为time.apk,然后释放libStarEngine.so到/system/lib/libStarEngine.so, 判断是否安装了com.example.xphuluxia,如果安装了就卸载,最后重启手机,安装激活勒索App。补充一下,com.example.xphuluxia是一个名为防锁侠的App,据说可以查杀锁屏勒索App,个人还没测试过。继续看后面代码:

从大段重复代码可以看出作者很擅长CVM模式(ctrl+c、ctrl+v、modify)(个人猜想写病毒维护应该很少吧)。这里需要用到e.packageName,我们先来获取一下包名,使用命令行获取一下模拟器的当前Activity即可:
即e.packageName=”com.hl.app”。现在来分析勒索App在5.0及其以上系统时的操作:释放key.bat到/system/priv-app/com.hl.app/并改名为com.hl.app.ap;释放libStarEngine.so到 /system/priv-app/com.hl.app/lib/arm/libStarEngine.so;重启手机,系统重启后会自动安装/system/priv-app/com.hl.app/com.hl.app.apk,激活勒索App。分析到这里,现在清楚了,这是一个字母型的勒索App,母App任务应该完成了,可以通过Manifest.xml文件再确认一下:
这里没有申请任何权限,所以母App就是个壳,已经不需要继续分析了。
0x03分析子包

接下来分析真正的锁屏勒索子包代码,我的模拟器系统是4.4,使用adb先导出病毒文件到电脑:


然后使用jadx反编译,这里同样是使用MT管理器做了资源混淆:

查看AndroidManifest.xml,入口还是MainActivity:

LogCatBroadcaster就不用看了,还是AIDE的特征,没什么作用。主要是启动了com.hl.app.MyApp服务。继续看看这个服务代码:

代码混淆了,那用JEB继续分析,先看看a类:

很明显这是一个DES的加密解密算法类,所以a类被重命名为a_Cryptor。
再看hx1:

很明显,创建全屏的浮动窗口,遮挡其他App导致无法操作,达到锁屏效果。那么重命名为hx1_showLockView1,重命名变量、函数名称后,添加注释代码如下:

这里初始化了加密密钥,然后创建了全屏浮动窗口达到锁屏效果,继续看代码:

这里更新了a_crypt的密钥,然后生成随机数保存在lock1xlh中,设置点击响应函数,其中100000000是假的,骗人点100次的函数,最后的100000001才是真的解锁判断函数,继续看100000001的onClick代码:
Try代码块是一堆解密、转换代码,最后关键的是if语句,判断输入和随机码计算后的结果是不是相同,相同则进入第二层锁屏界面。所以,解锁密码就是这一堆代码计算后再与随机码计算的结果。这里b类代码被重命名为b_AES,set函数被重命名为set_replaceAndReverse。解密的代码就不用看了,我们写解密算法时直接copy过来用就行了,这时候就要发挥CVM模式(ctrl+c、ctrl+v、modify)的长处。
0x04解密第一层锁屏
接下来写计算第一层解密密码的算法,创建java工程,把100000001的onClick代码复制过来,中间需要依赖的类: a_Cryptor、b_AES、c以及其他相关函数全部从JEB复制过来,修改错误后,把onClick函数改成getLockView1Pass,主要代码如下(记得前面有a_crypt更新密钥的相关代码,要复制过来):

lock1xlh就是锁屏界面上的随机码,运行后你就可以得到解锁密码了。我的随机码是477042,计算后得到解锁密码:1200556544,在模拟器中输入后,点击解锁,然后进入第二层锁屏,作者还是那么嚣张,界面依然奇丑无比:

0x05分析第二层锁屏

接下来继续JEB分析第二层锁屏。查看hx2代码,这里改名为hx2_showLockView2:

还是一样的配方,随机码保存在lock2xlh中,创建全屏浮动窗口达到锁屏效果,解锁按钮点击响应函数是100000002,继续看代码:

代码有点乱,拷贝出来精简一下:

注释都写清楚了,关键是理解最后代码,输入的解锁码v2前3位经过sha、md5之后就应该等于“9fd09fe7fd77ab118ef78795668bc8a1”,后9位等于随机码经过md5、sha之后保留数字位的前9位。下面就可以写代码计算了。
0x06解密第二层锁屏
由于解锁码都是数字,前3位经过sha、md5之后就应该等于“9fd09fe7fd77ab118ef78795668bc8a1”,这个可以写代码爆破。算法很简单,如下所示:

lock2xlh就是第二层锁屏界面上的随机码,运行后你就可以得到解锁密码了。我的随机码是498691,计算后得到解锁密码:187360012293,在模拟器中输入后,点击解锁,锁屏终于解除了。之前还有个libStarEngine.so,在app代码中并没有发现加载该库文件的代码,IDA查看也没有发现什么,经过搜索发现是一个3d引擎,在这里也没有什么实际作用。到这里,锁屏App已经分析完了。
0x07总结
结合之前分析,总结一下:
1.这是一个子母型的勒索App,母App主要完成解密、释放子病毒文件。病毒文件在5.0以下系统是/system/app/time.apk、 /system/lib/libStarEngine.so;5.0及其以上系统是/system/priv-app/com.hl.app/com.hl.app.apk 、/system/priv-app/com.hl.app/lib/arm/libStarEngine.so。
2.子病毒文件被加密后放在母App中,主要目的应该是绕过杀毒软件检测,效果如何见后文。
3.子病毒文件被释放到系统App目录中,系统双清是无法删除病毒文件的。
4.如果手机没有root,或者没有给勒索App授予root权限,那么是不会受影响的,只要卸载该“荒野行动盒子”即可。

5.病毒代码中虽然写了很多加密算法:AES、DES、md5、sha及字符替换等等,但还是很容易写出解密算法的。
6.另外,这个样本中可以看到使用了AIDE、MT管理器,这两个工具可以完成病毒App的开发、修改,也就是说,你只要有个安卓手机,就可以完成病毒的制作、修改过程,可以不用PC来完成,这个变化是值得注意和警惕的。
这里我简单写了一个计算解锁码的程序,需要java环境支持,用法很简单:
java -jar unlock_hyhz.jar,然后按照提示输入屏幕解锁码即可,执行效果如下图所示:

下载地址:https://share.weiyun.com/46ffd85b4467fa564819262cbe32df5a
Hash校验:CRC32: 346A9DCB
MD5: 6BC24E74AA3C80FE2C85F0ADD84F5772
SHA-1: E0D693064D2A4350A4FC4B4B700F891420ED446C
0x08 清除
分析完了该清除文件了。启用USB调试, 执行adb shell进入shell环境。
5.0以下系统执行:

5.0及以上系统执行:


最后所有系统上需要卸载母包:


0x09测试一下杀毒软件

最后把样本上传到virustotal.com上看了一下,有17款杀毒软件检测出来问题:

国产的阿里、360、腾讯、瑞星都可以检测出来。附链接:https://www.virustotal.com/#/file/bf3637f7ed48732404eaaf74abc6eca0a628def264a20d86fa044db04b6abce4/detection
如果把子包直接放上去再看看,检测率还降低了:

我也是醉了,不知道国外那几个是怎么检测的,不过国产的阿里、360、腾讯、瑞星还是可以检测出来的,附链接:https://www.virustotal.com/#/file/f426e208bbb8ed720d0200b28d1969c8eeb0ebaf841e63f8258d4c3fc428af88/detection总体感觉,这个检测率还是偏低的。这个检测结果可能也无法代表安卓手机端的检测率。
0x010 后记
个人感觉,自从5月份 wannacry爆发之后,不管是PC还是安卓系统,国内勒索病毒也越来越多了。而且现在安卓手机端的病毒可以使用安卓手机App开发、修改,那么分发、传播起来会更快,变种也会更多,这些都是PC上病毒没有的特点,需要引起重视。最后,对于普通用户来说,防范措施非常简单,只要保持良好的使用习惯即可避免被锁屏勒索:1.不要root手机!(除非你非常懂安全,即使被锁也能自己搞定)2.不要下载、安装来历不明的App!3.安装一个杀毒软件。最重要的还是前两个习惯,因为“安全问题很多时候都是人的问题”。
0x011 附录
样本来源:https://www.52pojie.cn/thread-672111-1-1.html



aaa.png

免费评分

参与人数 96吾爱币 +94 热心值 +91 收起 理由
NyanRabbit + 1 + 1 谢谢@Thanks!
小耨耨小 + 1 + 1 我很赞同!
JQM12345 + 1 + 1 谢谢@Thanks!
帝舞倾城 + 1 + 1 谢谢@Thanks!
永福牧羊人 + 1 + 1 用心讨论,共获提升!
jasonmr + 1 + 1 用心讨论,共获提升!
呵呵哒三毛 + 1 + 1 用心讨论,共获提升!
mopp163 + 1 + 1 技术宅,拯救世界
liphily + 2 + 1 我很赞同!
风起南天 + 1 + 1 我很赞同!
e5500236 + 1 谢谢@Thanks!
斯巴达 + 1 + 1 我很赞同!
水师提督 + 1 + 1 谢谢@Thanks!
李奥瑞王 + 1 + 1 热心回复!
Toosan + 1 + 1 我很赞同!
bibi + 1 + 1 佩服
SunFour + 1 + 1 用心讨论,共获提升!
途牛i + 1 + 1 用心讨论,共获提升!
烟火清凉 + 1 + 1 我很赞同!
Sarema + 1 + 1 牛x!!!!
许仔 + 1 + 1 我很赞同!
2332078293 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
xiaobobo1234 + 1 + 1 谢谢@Thanks!
墨问闻 + 1 谢谢
Demon9600 + 1 --------
cutler + 1 + 1 用心讨论,共获提升!
chen5988 + 1 + 1 用心讨论,共获提升!
chzhy1986 + 1 + 1 谢谢@Thanks!
zgcwkj + 1 + 1 用心讨论,共获提升!
晴天有雨下 + 1 + 1 谢谢@Thanks!
♂成成の + 1 + 1 没中招,出个秒解就更棒了
夏日miku + 1 + 1 谢谢@Thanks!
十亿少女的梦、 + 1 + 1 用心讨论,共获提升!
枫红叶 + 1 + 1 谢谢@Thanks!
morzki + 1 还TM CIA子大这个sb确实够自大
beijing999923 + 1 + 1 热心回复!
琪彩数码 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
遇知己论往昔 + 1 + 1 用心讨论,共获提升!
lilyailudi + 1 + 1 谢谢@Thanks!
吾爱_七哥 + 1 + 1 我很赞同!
莫韵 + 1 + 1 用心讨论,共获提升!
李里老弟 + 1 谢谢@Thanks!
草莓味胖次 + 1 + 1 谢谢@Thanks!
闭上眼 + 1 + 1 用心讨论,共获提升!
benbenlast + 1 + 1 谢谢@Thanks!
dalecheung + 1 用心讨论,共获提升!
LDM233 + 1 + 1 谢谢@Thanks!
茶叶ˇ蛋℡ + 1 + 1 就喜欢看作者被打断腿的作品 顶
327572350 + 1 + 1 我很赞同!
没事到处逛 + 1 + 1 谢谢@Thanks!
13506930127 + 1 + 1 我很赞同!
yuan5200123 + 1 我很赞同!
hnliuzesen + 2 + 1 谢谢@Thanks!
我不吃史莱姆 + 1 + 1 我很赞同!
vanner + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
15588472130 + 1 + 1 66666666666666666666
Nickdlk + 1 + 1 鼓励转贴优秀软件安全工具和文档!
2297229726 + 1 + 1 我很赞同!
小XK + 1 + 1 666666666666666666
hackyy + 1 + 1 分牛逼。学习到了!
c逗留回忆 + 1 用心讨论,共获提升!
haohaoyang0812 + 1 我很赞同!
hebo308 + 1 + 1 666666666666666666
706567997 + 1 + 1 我很赞同!
快乐交友 + 1 + 1 楼主可以的,很强势!
2864095098 + 1 + 1 热心回复!
师太从了老衲吧 + 1 谢谢@Thanks!
TaTaTa + 1 + 1 用心讨论,共获提升!
栀蓝 + 1 + 1 我很赞同!
vLove0 + 1 + 1 用心讨论,共获提升!
814237322 + 1 + 1 用心讨论,共获提升!
Tomcatmaoer + 1 + 1 用心讨论,共获提升!
w4526423 + 1 + 1 向大佬低头
iamcjsyr + 1 + 1 谢谢@Thanks!
smallstone + 1 谢谢@Thanks!
siuhoapdou + 1 + 1 谢谢@Thanks!
whdfog + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
不被承认的好人 + 1 + 1 热心回复!
ak103 + 3 + 1 我很赞同!
52lizkim + 1 + 1 谢谢@Thanks!
l_user + 1 热心回复!
芝士就是力量 + 1 + 1 热心回复!
zz956726585 + 1 + 1 谢谢@Thanks!
dvdrm + 1 + 1 我很赞同!
海盗小K + 2 + 1 热心回复!
szdaijun + 1 + 1 作者辛苦了。感谢热心分析。
no_one + 1 + 1 热心回复!
apge + 1 + 1 我很赞同!
没有如果儿 + 1 + 1 热心回复!
rohero + 1 + 1 牛逼!!!!!!!还没学Java 嘻嘻
a84394451 + 1 + 1 谢谢@Thanks!
dadao815 + 1 + 1 热心回复!
小新. + 1 + 1 已答复!
卡斯柯酷 + 1 + 1 热心回复!
D_Dan + 1 谢谢@Thanks!
浅暮流觞 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 19:16 | 显示全部楼层
那些爱开挂的人们就不应该救他们~

点评

支持楼上  发表于 2017-12-28 15:41
强烈支持,衷心祝愿乐于开挂玩的人能够身体健康,家庭幸福,父母更是身体健康!  发表于 2017-12-23 10:30

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

 楼主| 发表于 2017-12-25 14:21 | 显示全部楼层
轻描淡写9714 发表于 2017-12-23 10:44
有没有这个锁机 的样本和破解教程,想要只渔

救援帖:
https://www.52pojie.cn/thread-672111-1-1.html  
原帖提供的样本下载地址,没有放压缩包:
https://pan.baidu.com/s/1eSNF1kA

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 19:06 | 显示全部楼层

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 19:09 | 显示全部楼层
谢谢分享        

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 19:35 | 显示全部楼层
学习了!老铁棒棒大

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 20:54 | 显示全部楼层
感谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 21:31 | 显示全部楼层
可以,很感谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

头像被屏蔽
发表于 2017-12-22 21:36 | 显示全部楼层
荒野行动有没有出现问题?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-22 22:32 | 显示全部楼层
这个牛逼

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-12-23 01:07 | 显示全部楼层
用挂会封号,不明白为啥还有人会用?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2018-4-21 07:45

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表