免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
聚合网络安全,存储安全技术文章,融合安全最新讯息
点击蓝字 · 关注我们
前言
纸上得来终觉浅,为了更好的将知识掌握,从网上下载了这个病毒的apk样本来分析学习。
参考书籍:<<安卓软件安全与逆向分析>>
正文
这里先将apk样本放到在线的文件分析平台看一下,这里选择的是国内的平台,书上推荐的是Mobile SANDBOX,这个平台有一个优势,就是会保存运行时的流量包,可以自己再对流量包进行手动分析。在等待平台跑出结果的时候,先自己手动分析一下。
这里先用Android Killer看一下java层的代码。
可以看到这里一共需要五个权限。
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.READ_PHONE_STATE
android.permission.ACCESS_COARSE_LOCATION
总共申请获取了网络、WIFI、读取、定位这几个权限。
点击查看java层的源码,可以看到这里先判断手机有无进行root操作。
然后启动了一个线程,这里面涉及的网站已经访问不了了,但是根据以前的资料,这个连接网站主要是为了下派广告。
接着初始化了一个f类。
然后之后通过读取配置文件的did,和外连网站注册userid.(这里注册的userid,因为网站已经无法访问,所以只能根据之前的资料).
接着再启动一个全局定时器,用于启动ReceiverAlarm。
接着会获取系统的通知服务。
接着的操作就是跟获取广告有关了。
接着再回到MainActivity,可以看到在之后又启动了一个服务。
这里调用了一个原生的动态连接库。这里我们用apktool对apk进行操作,获得lib目录下的so文件进行native层的分析。
将so文件放入ida中,f5一下。(汇编水平还不行,所以这里用查看伪代码的方式进行分析).
根据java层可以得知,这里会传入三个参数,设备id,程序包名,meta_data.
这里先是进行了一个字符串解密的操作。
然后之后可以看到这里进行了一个写文件的操作,判断这里就是病毒主体生成的地方。文件名是根据时间随机生成的。然后对主体加上了一个权限操作。
接下来进行了root的一个判断,然后通过管道调用su.
接下来,就是执行病毒主体的操作,再执行完后,还会对文件进行一个删除。
这里把病毒主体bin文件放入到ida中查看。
这里对系统感染的部分进行分析。
这里可以看到是通过一个中间临时文件,对系统文件进行修改。
最后再回去看一下在线平台的分析结果。
这里可以看到的运行截图和之前的分析差不多。
新手入门,还有很多不足的地方。
原文始发于微信公众号(Th0r安全):移动端DroidKongfu病毒实例分析学习
评论