在移动逆向分析以及 APP 开发的时候,总会需要对其网络行为进行监控测试,本文针对市面上主流的抓包工具进行了抓包测试,并将过程进行了逐一记录,方便日后查用。
1. 基于 Wireshark
1.1 抓包环境
Windows 10 + 小米5s Plus + Wireshark 3.2.1 【下载地址】
1.2 设置 WiFi
在电脑主机上使用百度 WiFi之类的工具,开启热点,将所要抓包的手机连接该热点,并记录手机的【IP地址】和【路由器】,这两个信息会在后续的抓包过程中用到。
1.3 设置 Wireshark
打开 Wireshark,依次点击【捕获】-【选项】,在【输入】选项卡中勾选和手机 WiFi 里【路由器】地址一致的接口,为了不让来自其他接口的数据造成干扰,所以将其他接口都反选。配置完毕后,点击【开始】就可以进行抓包了。
1.4 数据包捕获
准备结束后,打开手机中的浏览器或 APP,访问任意网址或页面,Wireshark 抓包信息如下:
2. 基于 Fiddler 4
2.1 抓包环境
Windows 10 + 小米5s Plus + Fiddler 4 【下载地址】
2.2 设置 Fiddler 4
打开 Fiddler,Tools -> Options,配置完 HTTPS 和 Connections 选项卡后重启 Fiddler。
2.3 获取代理 IP
首先,获取安装 Fiddler 4 的 PC 对应的 IP 地址(ipconfig):
2.4 设置手机代理
首先,确保手机和安装有 Fiddler 的电脑处于同一局域网,依次点击【设置】-【WLAN】选择已连接的 WIFI,【代理】设置为手动,【主机名】填写电脑 IP,【端口】填写在 Fiddler 上设置的端口,保存配置就可以进行抓包。如果想对 HTTPS 进行抓包,还需要下载 Fiddler 证书,手机浏览器访问电脑地址,点击【FiddlerRoot certificate】下载并安装证书。
说明:手机浏览器访问 http://192.168.2.100:8888 下载证书。
地址:为电脑端 的 IP,端口:为 Fiddler 设置的端口
2.5 数据包捕获
重启 Fiddler,然后打开手机中的浏览器或 APP,访问任意网址或页面,Fiddler 抓包信息如下:
3. 基于 Charles
3.1 抓包环境
Windows 10 + 小米5s Plus + Charles V4.5.6 【下载地址】
3.2 设置 Charles
3.2.1 设置代理
打开 Charles,【Proxy】-【Proxy Settings…】-【Proxies】选项卡设置【HTTP Proxy】菜单下的代理端口和协议支持。
注意:如果只代理常规的 HTTP 请求,请忽略 3.2.2、3.4.1、3.4.2 的设置,因为这些设置只有在拦截 HTTPS 请求的时候才会生效。
3.2.2 设置SSL
打开 Charles,【Proxy】-【SSL Proxy Settings…】-【SSL Proxying】选项卡开启 SSL 代理,增加过滤规则。本例中使用通配符支持所有 HTTPS 请求的拦截。
3.3 获取代理 IP
首先,获取安装 Charles 的 PC 对应的 IP 地址(ipconfig):
3.4 设置手机代理
3.4.1 获取 Charles 根证书
打开 Charles,【Help】-【SSL Proxying】-【Save Charles Root Certificate…】将根证书保存到电脑目录,为手机安装证书做准备。
3.4.2 安装 Charles 根证书
将电脑上保存的证书导入手机目录,双击安装,输入证书名,点击【确定】会提示“安装成功”。
3.4.3 设置代理信息
首先,确保手机和安装有 Charles 的电脑处于同一局域网,依次点击【设置】-【WLAN】选择已连接的 WIFI,【代理】设置为手动,【主机名】填写电脑 IP,【端口】填写在 Charles 上设置的端口,保存配置就可以进行抓包。
3.5 数据包捕获
手机设置完代理信息后,打开手机中的浏览器或 APP,访问任意网址或页面,Charles 抓包信息如下:
4. 基于 Burpsuite
4.1 抓包环境
Windows 10 + 小米5s Plus + Burp Suite Community Edition V2020.2.1 【下载地址】
4.2 设置 Burpsuite
4.2.1 设置代理
打开 Burp Suite,依次点击【Proxy】-【Options】-【Add】增加代理监听,在打开的【Binding】选项卡填入端口,在【Specific address】下拉菜单中选中本机 IP,点击【OK】完成添加。
4.3 证书转换
这里的证书转换只用于抓取 HTTPS 链接时用,如果你只抓取 HTTP 链接,该步操作可以跳过,直接进入下一步。首先解释下为什么要进行证书转换,因为手机端只识别 crt 格式证书,而 Burp Suite 的证书是 der 格式,所以需要在电脑上将证书转换为手机可识别的格式。证书转换需要经历:证书导出到电脑、证书导入到电脑、证书导出到电脑三步。
4.3.1 证书导出到电脑(从 Burp Suite 到 PC)
这里所说的导出是指从 Burp Suite 导出到电脑。打开 Burp Suite,依次点击【Proxy】-【Options】-【Import / export CA certificate】,在打开的选项卡中选择【Export】-【Certificate in DER format】一路下一步将证书保存到本地磁盘,这里需要注意的是最后填写保存的文件名时需要加上 der 扩展名。
4.3.2 证书导入到电脑(从 PC 到 PC)
证书导入到电脑是指将之前从 Burp Suite 导出的 der 格式证书安装到本机,以便本机的浏览器能识别到,为通过浏览器进行证书转换做准备。证书安装比较简单,找到上一步导出的证书,双击进行安装,点击【安装证书】一路下一步直至导入成功。
4.3.2 证书导出到电脑(从 Chrome 到 PC)
证书导入电脑后,就可以利用浏览器进行格式转换了。我这里用的是 Chrome 浏览器,打开 Chrome 的【设置】-【管理证书】,找到对应的证书颁发者【PortSwigger CA】选择【导出】,注意导出文件格式要选择【Base64 编码 X.509】,设置导出文件名的时候也一定要加上 cer 扩展名。
4.4 设置手机代理
安装 Burp Suite 根证书只用于抓取 HTTPS 链接时用,如果你只抓取 HTTP 链接,该步操作可以跳过,直接进入【4.4.2】。
4.4.1 安装 Burp Suite 根证书
完成上述准备工作后,将转换后的 cer 格式证书导入手机目录,双击安装,输入证书名,点击【确定】会提示“安装成功”。
4.4.2 设置代理信息
首先,确保手机和安装有 Burp Suite 的电脑处于同一局域网,依次点击【设置】-【WLAN】选择已连接的 WIFI,【代理】设置为手动,【主机名】填写电脑 IP,【端口】填写在 Burp Suite 上设置的端口,保存配置就可以进行抓包。
4.5 数据包捕获
手机设置完代理信息后,打开手机中的浏览器或 APP,访问任意网址或页面,Burp Suite 抓包信息如下:
这里需要说明下,Burp Suite 的抓包是阻塞式的,如果一个页面同时请求了多个接口,需要你点击【Forward】逐个展示拦截的数据。如果你想暂停拦截,可以点击【Intercept is on】将其开启或关闭。