在移动互联的时代,手机端业务越来越多,渗透测试中经常会遇到安卓APP和各种微信/支付宝小程序,以APP为例,很多APP目前都会在发起网络请求前先判断手机网络是否使用了代理,如果使用了代理就不请求接口,那么我们就无法抓取数据包进行分析了。想到之前内网渗透中经常使用Proxifier进行流量转发,那么模拟器上的流量是否也能通过Proxifier进行转发到我们想要的地方呢?比如burp,比如伏特代理扫描。根据这个思路,我们安识科技安服团队内部进行了相关的研究。
首先介绍下Proxifier:
Proxifier是一款功能非常强大的代理客户端,支持Windows XP/Vista/Win7/Win10 和 MacOS,支持http/https、socks4/5、TCP、UDP等协议,可以指定端口,指定IP,指定域名、指定程序、指定用户名密码授权等运行模式,兼容性非常好,有点类似SOCKSCAP。
有许多网络应用程序不支持通过代理服务器工作,不能用于局域网或防火墙后面。这些会损害公司的隐私和导致很多限制。Proxifier解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。
代理流程主要分为两步:
1、添加代理服务器
2、设置代理规则(设置需要代理的应用程序)
这样,只要选择需要代理的应用程序,比如chrome.exe,即可实现代理流量转发
现在部分安卓客户端会设置很多种方法来验证客户端是否使用了代理,来防止抓包。
比如:
检查是否使用了Http代理,如果是,那么客户端不再发送网络请求
通过Okhttp设置默认代理
使用okhttp实现SSL双向认证
。。。
如果在APP请求网络之前先判断下手机网络是否使用了代理,如果使用了代理就不请求接口,那么我们就无法抓取数据包进行分析了。
经过安识科技安全服务团队研究:安卓模拟器大多是使用virtualbox的虚拟网卡进行的网络通信,那么,如果直接将模拟器的网络进程的所有流量代理到burpsite即可抓取流量包,同时又绕过了关于客户端的相关校验。
打开模拟器分析网络进程,会发现模拟器使用的网络进程有:virtualbox headless fronrend
和NoxVMHandle Frontend
。
这里以夜神模拟器为例
总体流程图如下:
代理服务器设置为burp监听端口。
将NoxVMHandle Frontend
进程对应的应用程序文件加入代理规则。
配置之后,即可在proxifier中获取到模拟器内对应app的流量
安装证书之后,即可在burp中看到proxifier转发过来的流量
同样的道理,该流量转发方法同样适用C/S客户端测试
既然能够获取到所有经过网络进程的流量,同时可以进行流量转发,那么更快更便捷的方式是直接使用伏特漏洞扫描器,因为伏特有强大的代理扫描引擎和生态插件。
随便访问点业务,可以看到流量正常
控制台看下是否存在扫描记录
一遍业务流程走下来,分分钟躺着捡洞不是梦:
bingo~