Android APP漏洞之战(15)——非root环境下的抓包、脱壳、Hook
2022-12-16 15:40:0 Author: bbs.pediy.com(查看原文) 阅读量:20 收藏

目录

一、前言

近年来随着手机性能的不断增强,逆向分析过程中的三个基本技能:抓包、脱壳、Hook,研究测试人员使用比较多的便是Google系列机型,例如nexus系列、pixel系列,而国产的手机小米、一加也成为热门的测试机,这一切都很多程度上由于手机方便root,root作为众多逆向方法的基础,导致一个手机能否root成为选择的先决条件之一。针对非root手机,当前也存在着相应的解决方案,本文整合网上方法,实现非root环境下的抓包、脱壳、Hook。

本文第二节简单介绍虚拟机基本知识

本文第三节实现脱壳方案

本文第四节实现hook方案

本文第五节实现抓包方案

二、基础知识

在了解手机虚拟机前,我们先看看虚拟化技术和容器化,Android上虚拟化技术应用到VitualBox、BlackBox等上,具体架构如下所示:

传统虚拟机:

虚拟化容器:

两者之前的差异:

每个虚拟化容器相当于一个沙盒,容器与容器之间互不干扰;虚拟化容器作为一个应用级别抽象(进程级),而虚拟机是作为操作系统级别。

而手机虚拟机不断的发展,现在的手机性能完全可以支持手机上运行多个虚拟机,因此虚拟机的研究也在快速发展,比较有代表的就是光速虚拟机、VMOS虚拟机、X8虚拟机等等,当然这些虚拟机也各有差异,下面就让我们简略了解各虚拟机的特点吧。

1.x8虚拟机

这个虚拟机就是一个简易的沙箱,就连官网也是这样描述的:

image-20221216143421932

沙箱机制的原理主要基于Linux系统的UID/GID机制,Android对传统的Linux的UID/GID机制进行了修改。在 Linux 中,一个用户 ID 识别一个给定用户;在 Android 上,一个用户 ID 识别一个应用程序。应用程序在安装时被分配用户 ID,应用程序在设备上的存续期间内,用户 ID 保持不变。其沙箱原理和VM技术类似,具体可以参考VitualBox原理,当然详细的技术原理,大家可以自行去研究。

2.VMOS虚拟机

VMOS虚拟机官网并未给出具体实现的技术细节,经过调研应该是采用了类似anbox技术,anbox技术是一种类似容器的实现方案,即Linux上运行Android系统,通过容器的方式运行,通俗的理解就是Android系统上可以运行Linux,而Linux内核通过Linux命名空间以容器方式运行Android虚拟机,

image-20221216142004548

这里我们看一个Anbox的基本原理图:

image-20221216140319587

上图中可以看出 Anbox Session Manager做了三件事情:

1

2

3

1.虚拟一个Android的sufaceflinger, 就是虚拟Android的图像系统,可以将Android里的不同APP渲染的结构进行图层的合成,使所有APP的渲染结果最终合成在一个窗口上

2.虚拟一个windowmanager,给Android里的APP提供对应的窗口

3.虚拟一个activitymanager,就是管理Android内部的进程的,比如app的启动,关闭等等

Anbox Container Manager则是和容器docker类似,来运行Android的镜像,因此Anbox将Android应用放入到容器中,无需直接访问硬件或数据,所有的硬件访问通过主机上的 anbox 守护进程,由于是直接使用本机的Linux内核,不是通过虚拟化所以导致性能极大提升。

3.光速虚拟机

根据光速虚拟机官网的描述,光速虚拟机是通过Android来实现Android,在安卓用户态实现了一个完整的安卓内核和安卓硬件抽象层

从图中可以看出,光速通过代理虚拟化出了一个完完整的内核抽象层,在Android 内核基础上完整实现了内存管理,进程管理,文件系统和设备管理等安卓内核功能,这样就可以使得其内部运行不依赖手机内核。

4.总结

综合三类虚拟机进行对比,具体的效果如下:

VMOS VMOS PRO 光速虚拟机 X8沙箱
内存占用 186MB 233MB 188MB 181MB
提供root 提供 提供 提供 提供
提供XP 提供 提供 Magisk+Lsposed 提供
提供Play 提供 提供 提供
程序兼容
安卓版本 5.1.1 5.1.1 / 7.1.2/9.0 7.1.2 10.0 7.1
是否含广告 视频广告
权限要求 电话、位置、相机、录音、存储 电话、位置、存储、录音、 存储

这里也收集了网上用户的使用评价:

1

2

3

VMOS Pro:能白嫖(启动速度比较慢,但这个支持的安卓版本最多)

51/X8虚拟机:要看广告,部分白嫖,功能比上一个少(启动速度第二)

光速虚拟机:暂时无需要付费功能(这个启动最快)光速10.0需要vip

三、非root环境下脱壳实现

1.实验准备

手机虚拟机VMOS + Magisk+反射大师

实验手机:华为Mate10(非root)

2.实验步骤

VMOS可以提供不同版本的Android系统虚拟机,你可以根据需求来使用,这里我们拿Android7.1版来举例实操

开启虚拟机已经支持了Xposed和root权限,我们再安装上wifiadb,就可以十分方便的进行逆向工作了

image-20221020112024592

我们测试一下root权限

image-20221020112322217

然后这里我们使用DITOR的脱壳模块进行快速脱壳

打开模块,我们可以选择动态注入就是Xposed,以及此模块还支持frida注入,但是虚拟机不支持frida,这里我们就选择动态注入

image-20221020112203767

这里我们选择需要脱壳的目标应用,这里就选第一个

image-20221020112749115

image-20221020112810032

image-20221020112840431

然后我们把保存的dex打开

image-20221020112930742

成功的脱壳,这样是不是脱壳工作变得十分简单了

四、非root环境下Hook实现

1.实验准备

手机虚拟机(光速)+Magisk+Xposed

实验手机:华为Mate10(非root)

2.实验步骤

这里我们再换一个虚拟机来操作,上面的VMOS其实已经实现的hook操作

我们可以安装手机虚拟机,例如光遇虚拟机,然后在虚拟机中安装Magisk,安装Xposed,这样我们就可以使用前面功能,还可以应对更多场景

image-20221016193759059

image-20221016193834221

这样是不是一些有Magisk需求的朋友也可以快速的进行使用了,这里我们就直接使用Lsposed,进入仓库选择一个模块

image-20221216172909835

我们直接安装完成,然后再下载某乎应用,我们来测试一下hook效果

首先我们在真机上下载某乎应用,发现每次进去都会有广告:

image-20221216173049242

我们进入虚拟机,然后打开会发现加载知了模块

image-20221216173211733

然后我们进某乎的设置,进行开启模块,这个时候就会发现没有广告了,比如加入标题提示:

Hook前:

image-20221216173609768

Hook后:

image-20221216173656004

是不是感觉Hook功能又好用起来了呢

五、非root环境下抓包实现

很多朋友使用抓包工具,比如Fiddler、Charles、Burpsuit等,我们都知道在Android7.0后,系统只信任根目录下的证书,而以往用户目录下的证书不可信,导致之前的https流量无法抓取,当然针对高版本的Android,不少用户采用抓包应用证书移植到手机的根目录下,比如常用的MoveCertificate模块等,但是这些都基本针对root环境的手机比较容易操作,但是针对非root环境的手机就不是很容易操作了,本文主要讲述网络上另一种非root环境抓包的思路:

VMOS Pro+小黄鸟HttpCanary+MT管理器 实现非root环境下抓包

1.实验准备

VMOS Pro+小黄鸟HttpCanary+MT管理器+QtScrcpy

实验手机:华为Mate10(非root)

这些工具都上传过知识星球:安全后厨,需要朋友前往星球自取

2.实验步骤

(1)真机安装小黄鸟HttpCanay和安卓虚拟机Vmos Pro

这里我们使用投屏软件QtScrcpy来记录本次实验

image-20221208120524937

image-20221208120650953

(2)安装好小黄鸟,在小黄鸟里的设置中,目标应用-指定为VMOSPro

image-20221208120801527

(3)可以手机安装证书,SSL证书设置-选择导出根证书,类型System Trusted (.0); 导出的证书储存路径为:内部储存/HttpCanary/cert/

image-20221208120901930

首次没有安装证书的,可能需要安装一下证书,这里就直接安装就可以了,安装后导出证书

image-20221208121134998

image-20221208121149012

(4)打开虚拟机VMOSPro,新建一个虚拟机,这里可以使用Android7极客版,然后给root权限

image-20221208121623860

(5)导入你要抓包的目标APP(或者apk安装包)+xxxxx.0格式的证书(这个证书就是第3步获取的证书);打开MT文件管理器,刚刚导入的证书自动保存在虚拟机的VMOSfiletransferstatio目录下,将其复制到虚拟机的系统内:/system/etc/security/cacerts/目录下即可

image-20221208121725440

并在虚拟机中安装MT管理器,并打开,并移动证书到右边

image-20221208121937325

(6)在vmospro里安装好小黄鸟,打开,点击开始抓包,会提示安装CA证书,根据提示安装即可,会让你设置锁屏密码

image-20221208122102503

(9)返回真机启动小黄鸟,注意是在真机里抓包,而不是在vmosPRO虚拟机里抓包!!目标应用-设置VMOS-开启抓包 返回虚拟机-启动目标APP 即可在真机抓包了

这里我们虚拟机设置为目标APP为浏览器,这里你可以设置你需要抓包的应用

image-20221208122254465

然后真机中选择目标应用为VMOSPRO开始抓包

image-20221208122425563

image-20221208122537987

image-20221208122728168

image-20221208122954403

可以发现就成功的抓包了,当然我们结合VMOSPro中的Xposed,还可以安装JustMe,可以绕过一般的SSLpining

六、实验总结

本文演示了非root环境下的抓包、脱壳与Hook,这里只是给非root环境手机逆向的一种方案,经过测试实际使用还未达到root环境真机的效能,感兴趣的大家可以自行的探索了,相应的可以关注github:

WindXaa

七、参考文献

1

2

3

4

5

6

https://blog.csdn.net/qq_36383272/article/details/105163579

https://codeantenna.com/a/cnBEw7uwCs

https://developer.aliyun.com/article/767940

https://mabin004.github.io/2019/02/09/itural-APP%E7%A0%94%E7%A9%B6/

https://www.freebuf.com/articles/neopoints/348470.html

https://www.freebuf.com/articles/endpoint/245747.html

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

最后于 2022-12-16 17:38 被随风而行aa编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-275552.htm
如有侵权请联系:admin#unsafe.sh