freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

打造最强移动测试平台
2020-08-12 10:44:34

笔者今年换掉了服役N年的旧手机,新手机12G的RAM,比自用的本子内存都大,如果只是玩游戏感觉不能完全发挥出全部机能,但又因为怕影响日常使用没有进行root,经过一番折腾,发现即使不root也不影响把它变成一款测试利器,有同类需求的可以参考此文。

安卓虚拟机

移动应用测试肯定是需要一个root环境,很多人选择用安卓模拟器,笔者为了使用WSL2启用了Hyper-V,导致与绝大多数的安卓模拟器冲突,从此告别安卓模拟器。笔者也尝试用了VirtualXposed、太极等免root的Xposed框架,发现兼容性不是太好,app容易闪退崩溃。后来发现安卓平台也有虚拟机,目前共有VMOS、光速虚拟机、X8沙箱三款产品。其中VMOS分普通版和Pro版,Pro版非会员支持选择ROM,也可以导入网友提供的ROM,其他虚拟机皆内置ROM无法修改。

经过笔者一番测试,对比如下

VMOSVMOS PRO光速虚拟机X8沙箱
内存占用186MB233MB188MB181MB
提供root提供提供提供提供
提供XP提供提供不支持提供
提供Play提供提供提供
程序兼容
安卓版本5.1.15.1.1 / 7.1.27.1.25.1.1
是否含广告视频广告
权限要求电话、位置、相机、录音、存储电话、位置、存储、录音、存储

综合来说,光速虚拟机最快,干净无广告,遗憾的是目前版本不支持xposed框架,VMOS Pro自带rom兼容性比较差,使用酷安网友提供的ROM兼容性较好,而且关闭所有应用权限也不影响虚拟机使用,很不错。

想一下手机里跑个虚拟的安卓系统,带root环境且与本机隔离,简直是移动测试的最佳方式。

下图是笔者四个虚拟机同时小窗开启的,独立互不冲突,加起来内存占用可能还不到1G,毫无压力。

Kali Nethunter

官方文档提供一种NetHunter Rootless的方式,即免root安装,同样也是支持KeX的,所以可以实现下图的效果,外接显示器获得完整的桌面体验。

与其他版本的Nethunter差别参见下图,能够实现绝大部分功能。

FeatureNetHunter RootlessNetHunter LiteNetHunter
App StoreYesYesYes
Kali cliYesYesYes
All Kali packagesYesYesYes
KeXYesYesYes
Metasploit w/o DBYesYesYes
Metasploit with DBNoYesYes
NetHunter AppNoYesYes
Requires TWRPNoYesYes
Requires RootNoNoYes
WiFi InjectionNoNoYes
HID attacksNoNoYes

主要原理基于Termux+Kex实现的,Termux真的是一款神器,一款不需要Root的神器,具体介绍参见国光前辈的文章https://www.freebuf.com/geek/170510.html

NethunterRootless安装方法可以参考官方文档https://www.kali.org/docs/nethunter/nethunter-rootless/

建议termux通过f-droid下载https://f-droid.org/packages/com.termux/

实际效果如下图,具体就不展开讲了,国光大佬那篇文章写的很详细

题外话,wsl2现在也支持kex了,效果如下图,美滋滋!https://www.kali.org/docs/wsl/win-kex/

Docker环境

虚拟的安卓有了,虚拟的kali有了,想搭靶机了,能不能有个Docker呢,答案是肯定的!

虽然Termux很强大,可以安装各种linux,但基于termux版linux还是不能运行Docker,需要Termux上装Qemu虚拟机,Qemu装alpine linux,这个时候才是原汁原味的x86 linux。

这种套娃的操作可能会劝退不少人,幸运的是有人把Termux+Qemu+Alpine整合好了,名为alpine-term,开箱即用,安装一个apk打开就是配置完全的alpine linux,项目地址为:https://github.com/xeffyr/alpine-term/releases

你需要做的只是手动装一个docker

#更新apk软件源
apk update
#安装docker
apk add docker
#使docker开机启动
rc-update add docker
#开启docker服务
service docker start
#后台启动
setsid containerd
setsid dockerd

内置用户alpine初始配置存在一些限制,可以使用sudo -s 切换root用户操作。

docker起来后还需要手动配置下Qemu的网络映射,在termux导航栏选择QEMU,执行以下操作添加端口映射。

#映射手机10022端口到虚拟机22端口
(qemu)hostfwd_add tcp::10022-:22
#删除到10022的端口映射
(qemu)hostfwd_remove tcp::10022
#查看端口映射和网络连接
(qemu)info usernet

详细帮助文档参见https://xeffyr.github.io/alpine-term/docs/help.html

代理抓包

最后推荐一个移动端的抓包工具HttpCanary,支持HTTP、HTTPS、HTTP2和WebSocket等多种协议。基于NetBare框架的虚拟网关-拦截器设计,可以非常方便的对单个app进行抓包、修改、重放等操作。完全脱离电脑对某个app进行抓包分析。详细使用可参考作者写的系列文章https://juejin.im/post/6844903745562607624

结束

到这里本文就结束了,希望能起到抛砖引玉的效果,如果你还有更好用的移动平台安全工具,欢迎在评论区补充。

# 移动安全 # Android # 虚拟机
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者