0x01 Proxifier代理介绍
首先介绍下Proxifier:
Proxifier是一款功能非常强大的代理客户端,支持Windows XP/Vista/Win7/Win10 和 MacOS,支持http/https、socks4/5、TCP、UDP等协议,可以指定端口,指定IP,指定域名、指定程序、指定用户名密码授权等运行模式,兼容性非常好,有点类似SOCKSCAP。
有许多网络应用程序不支持通过代理服务器工作,不能用于局域网或防火墙后面。这些会损害公司的隐私和导致很多限制。Proxifier解决了这些问题和所有限制,让您有机会不受任何限制使用你喜爱的软件。 此外,它让你获得了额外的网络安全控制,创建代理隧道,并添加使用更多网络功能的权力。
代理流程主要分为两步:
1、添加代理服务器
2、设置代理规则(设置需要代理的应用程序)
这样,只要选择需要代理的应用程序,比如chrome.exe,即可实现代理流量转发
0x02 安卓模拟器全局代理
现在部分安卓客户端会设置很多种方法来验证客户端是否使用了代理,来防止抓包。
比如:
- 检查是否使用了Http代理,如果是,那么客户端不再发送网络请求
- 通过Okhttp设置默认代理
- 使用okhttp实现SSL双向认证
- 。。。
如果在APP请求网络之前先判断下手机网络是否使用了代理,如果使用了代理就不请求接口,那么我们就无法抓取数据包进行分析了。
安卓模拟器大多是使用virtualbox的虚拟网卡进行的网络通信,那么,如果直接将模拟器的网络进程的所有流量代理到burpsite即可抓取流量包,同时又绕过了关于客户端的相关校验。
打开模拟器分析网络进程,会发现模拟器使用的网络进程有:virtualbox headless fronrend
和NoxVMHandle Frontend
。
这里以夜神模拟器为例
总体流程图如下:
2.1 设置Proxifier代理服务器
代理服务器设置为burp监听端口。
2.2 设置代理规则
将NoxVMHandle Frontend
进程对应的应用程序文件加入代理规则。
2.3 抓取流量包
配置之后,即可在proxifier中获取到模拟器内对应app的流量
安装证书之后,即可在burp中看到proxifier转发过来的流量
同样的道理,该流量转发方法同样适用C/S客户端测试