如何让Burpsuite监听微信公众号

1 目的

通过burpsuite代理截获微信公众号的https流量包,做一些重放和自动扫描。这个公众号会利用微信的认证体系,认证完之后就会到他本身的服务器,用户再通过微信内置浏览器的cookie或者其他认证机制交互,当然这些认证数据基本上无法获取,同时这个公众号在微信端也没有转发,在浏览器中打开等普通微信公众号常见功能。

2 模拟器+微信

由于模拟器的便捷性,第一个就会被想到,于是在4.0.3的模拟器上装上了最新版的微信,运行就退出。既然最高版本都已经禁止了模拟器,就想着微信的历史版本,装了30,35,40,45,50等版本,都是运行一会就提示升级,并且是不让用,难道我要逆向微信的代码,这个代价有点大,搜搜才知道原来微信已经禁止在模拟器上使用了,后来看到了有人出了解决方案,就是先root,然后装xposed框架,然后在其上装XPrivacy,过程复杂,详情见链接,这种方法我没有接着试下去。

3 真机+微信

模拟器已经被禁用,只能拿出自己的手机来试验了。

3.1 wifi 环境

由于是台式机,直接使用的随身wifi,如果是笔记本,可以直接将本设置为wifi热点。

3.2 代理设置

首先是burpsuite的代理设置,见下图,图中ip则是我的真实机的ip,绑定的端口则可以任意设置,不冲突即可,我这里设置成8080端口。
绑定ip
设置完burpsuite则是手机上wifi的代理设置,先连接到wifi热点,长按链接处,选“修改网络”,勾选“显示高级选项”,代理设置那里改成“手动”,就可以填写HTTP代理的主机和端口,在这里我们设置成第二步中burpsuite设置的ip地址和端口地址。

3.3 证书安装

这样设置完之后基本上就可以抓包了,如果是https的请求,每次都会提示证书问题,很烦人也影响效率,所以我们要安装burpsuite的证书,由于前面设置好了代理,通过手机浏览器访问http://burp,就能看到有证书下载,下载完之后,通过手机的设置,安全,再到证书安装,安装完证书即可。

这样设置之后,手机上的大部分http和https数据包都能截获了,微信的数据包也能截获了,只是都是加密的,根本不知道是啥,要被测试的公众号呢?每次打开都是白屏,啥提示都没有,burpsuite上无流量显示,通过wireshark抓包,也仅仅是一些到腾讯服务器的tcp流量,难道微信还能自动检测代理存在,自动根据公众号的安全级别来绑定,安全级别高则不发送相应流量,仅仅是猜测。

上述方式行不通,想到了第三种

4 微信windows客户端

微信在windows端也提供了相应的版本,相对于手机android版本,功能较弱,当然一些安全策略也有变化。
(1)修改windows hosts的配置文件,路径(C:\Windows\System32\drivers\etc\hosts),具体的配置如下:
127.0.0.1 test.com

(2)burpsuite代理的设置

绑定设置
转发设置
按照如上图示设置之后,微信客户端发送到test.com的流量就直接转发给本地127.0.0.1:9080端口,这样burpsuite就能捕获到了,接着burpsuite将该包转发到test.com对应的ip的端口上就完成了一次请求捕获转发的过程。
注意事项:
support invible proxying 必须开启,否则看不到流量。
request handling中redirect to host 必须设置成具体的ip,也就是test.com对应的ip,否则会导致包死循环在本地转发。

在burpsuite中如果设置成test.com会报如下错误

1
This request to Burp's web interface used a fully-qualified DNS name in the Host header. The request was blocked to prevent DNS rebinding attacks. You can enable support for fully-qualified DNS names in Burp's web interface at Proxy / Options / Miscellaneous.

接着按照如上设置之后,将如下选项打勾之后则会报后续错误,解决方法就是直接设置成ip和端口
Invalid client request received: Dropped request looping back to same Proxy listener.
在此我们就完成了微信流量的监测。

微信windows客户端的好处就是方便测试,另外能够打开在微信 android客户端无法获取链接的问题,目前在1.5.0.33好用,估计过段时间也会被微信封了。