真机抓包实战:Burp Suite配置Android/iOS代理与HTTPS解密

发布时间:2026/6/29 22:54:00
真机抓包实战:Burp Suite配置Android/iOS代理与HTTPS解密 1. 项目概述为什么要在真机上抓包做安全测试或者逆向分析抓包是第一步也是最基础的一步。很多朋友习惯在模拟器里操作觉得方便但模拟器终究是模拟器它和真机的环境差异巨大。很多APP特别是涉及金融支付、社交、电商的都做了非常严格的运行环境检测在模拟器里要么直接闪退要么核心功能被禁用你根本抓不到想要的数据流。更别提微信小程序了它的运行环境高度依赖微信客户端在模拟器里调试的局限性更大。所以真机抓包是绕不开的“硬骨头”。这次要聊的就是如何用安全圈最经典的Burp Suite在Android和iOS两大移动平台的真实设备上完成对APP和微信小程序的流量捕获。这不仅仅是配置个代理那么简单里面涉及到证书安装、系统信任、网络配置、以及应对各种反抓包机制的技巧。我遇到过太多坑从证书不被信任导致HTTPS流量全是乱码到APP检测到代理直接拒绝连接每一步都可能让你卡住半天。接下来我会把整个流程掰开揉碎从原理到实操尤其是那些容易踩坑的细节都详细过一遍。2. 核心原理与前置准备在开始动手之前必须搞清楚几个核心概念不然配置错了都不知道问题出在哪。2.1 抓包的本质中间人代理无论是Burp Suite、Fiddler还是Charles其抓取HTTPS流量的核心原理都是“中间人攻击”。简单来说你的手机不再直接连接目标服务器而是先把所有网络请求发送到你电脑上运行的抓包工具即代理服务器由抓包工具转发请求给服务器并将服务器的响应先截获再返回给手机。为了实现这个需要两步流量转向让手机的流量经过你的电脑。这通过为手机配置Wi-Fi代理来实现。HTTPS解密普通的HTTP流量是明文的可以直接查看。但如今几乎全是HTTPS加密的抓包工具需要“冒充”目标服务器与手机建立SSL/TLS连接同时再以客户端的身份与真实服务器建立另一个SSL/TLS连接。这就要求手机必须信任抓包工具颁发的“假”证书。2.2 工具与环境准备清单工欲善其事必先利其器。以下是必须准备好的东西少一样都可能进行不下去。1. 软件工具Burp Suite主角。推荐使用Professional版Community版功能受限较多。确保已安装并可以正常运行。一台电脑作为代理服务器。Windows、macOS、Linux均可但需要与手机在同一局域网。一部Android手机建议系统版本在Android 7.0以上但低于Android 7.0和高于Android 7.0的配置方法有重大区别后面会详述。一部iOS手机系统版本建议在iOS 10以上。需要能访问App Store以下载证书描述文件。2. 网络环境稳定的局域网电脑和手机必须连接在同一个Wi-Fi网络下。切记不要使用任何公共Wi-Fi或需要网页认证的Wi-Fi如酒店、机场网络这类网络通常会干扰或禁止代理设置导致连接失败。最稳妥的方式是使用你自己的路由器或者用电脑开一个热点给手机连接。3. 关键信息获取电脑的局域网IP地址这是手机代理要指向的地址。Windows在命令提示符输入ipconfig查看“无线局域网适配器 WLAN”或“以太网适配器”下的IPv4 地址。macOS/Linux在终端输入ifconfig或ip addr找到对应网口的inet地址。Burp Suite代理监听端口默认是8080。你可以在Burp的Proxy-Options-Proxy Listeners中查看和修改。准备好这些我们就可以进入实战配置环节了。先从相对开放的Android系统开始。3. Android真机抓包全流程解析Android的抓包流程因系统版本产生了分水岭核心区别在于证书的安装位置这直接决定了系统是否信任你安装的证书从而决定能否解密HTTPS流量。3.1 配置Burp Suite代理监听首先确保Burp能正确接收来自手机的流量。打开Burp Suite进入Proxy-Options标签页。找到Proxy Listeners部分确保有一个监听器在运行通常默认的127.0.0.1:8080就是。我们需要让它监听来自局域网的连接。点击默认监听器对应的Edit按钮。在Binding标签页将Bind to address从Loopback only改为All interfaces。这一步至关重要它允许Burp接受来自任何网络接口包括你的无线网卡的连接而不仅仅是本机回环地址。点击OK保存。此时Burp的代理服务器就已经在你的电脑IP:8080上监听了。注意有些电脑防火墙可能会阻止8080端口的入站连接。如果后续手机连接失败请暂时关闭防火墙或添加一条允许8080端口的入站规则。3.2 手机网络代理配置接下来告诉手机把流量发到你的电脑。让手机连接上与电脑相同的Wi-Fi。进入手机的设置-WLAN长按当前连接的Wi-Fi网络选择修改网络或高级选项。将代理设置为手动。代理服务器主机名填写你之前查到的电脑局域网IP。代理服务器端口填写8080或你在Burp中设置的其他端口。保存设置。此时手机的所有非系统级HTTP流量应该已经流向Burp。你可以在Burp的Proxy-Intercept标签页点击Intercept is on按钮然后在手机浏览器访问一个HTTP网站如http://neverssl.com看看请求是否被截获。3.3 安装并信任Burp CA证书能抓到HTTP只是第一步HTTPS才是重头戏。我们需要让手机信任Burp颁发的证书。第一步从Burp导出证书在手机浏览器中访问http://burpsuite或http://电脑IP:8080。注意是HTTP协议。页面右上角会有一个CA Certificate的链接点击它下载证书文件。文件通常名为cacert.der。第二步安装证书分版本操作这里是关键根据你的Android系统版本选择路径Android 7.0 (Nougat) 及以下版本 相对简单。下载证书后系统通常会提示你为证书命名如“Burp CA”然后要求你设置锁屏密码如果尚未设置以完成安装。安装后证书会被放置在受信任的凭据-用户标签页下。至此大部分APP的HTTPS流量都可以被解密了。Android 8.0 (Oreo) 及以上版本 这是巨变。从Android 7.0开始Google引入了“网络安全配置”和更严格的证书信任机制。默认情况下用户安装的证书不再被APP信任除非APP显式地在其配置中声明信任用户证书。 因此对于高版本Android我们有两种主流方法方法A将证书安装到系统级需Root这是最彻底的方法。需要将下载的.der证书文件转换为.pem格式然后通过ADB命令或Root文件管理器将其放置到/system/etc/security/cacerts/目录下并修改权限。完成后证书会出现在受信任的凭据-系统标签页所有APP都会信任它。但这需要手机已获取Root权限对大多数用户门槛较高。方法B使用低版本Android模拟器或旧手机这是最实用的妥协方案。准备一台系统版本在Android 7.0以下的备用测试机或者使用Android 7.0以下的模拟器镜像。在测试机上安装用户证书即可全局生效非常适合进行常规的抓包测试和分析。方法C针对特定APP配置需可修改APK如果你有APP的源码或能对其进行重打包可以修改其网络安全配置使其信任用户证书。这对普通抓包需求来说过于复杂。实操心得对于日常安全测试我强烈建议备一部系统版本在Android 6.0的旧手机或模拟器专用。它能避开高版本的系统级证书限制省去Root的麻烦和风险通用性最强。对于必须在高版本真机上测试的情况如测试最新系统兼容性则可能需要结合Root或使用VirtualXposed等虚拟环境来绕过限制但那又是另一个复杂课题了。安装并信任证书后再次用手机浏览器访问一个HTTPS网站如https://www.baidu.com然后在Burp的Proxy-HTTP history中查看应该能看到明文请求和响应而不是一堆乱码或Tunnel to字样。4. iOS真机抓包全流程解析iOS的抓包流程相对统一但由于苹果的封闭性证书安装和信任的步骤略有不同且对微信小程序有特殊之处。4.1 配置Burp监听与手机代理这部分与Android类似Burp Suite配置监听All interfaces端口8080。iOS手机连接同一Wi-Fi。进入设置-无线局域网点击当前Wi-Fi右侧的i信息图标。滑动到最底部找到配置代理选择手动。服务器填写电脑IP端口填写8080保存。4.2 安装并完全信任Burp CA证书这是iOS抓包成功的关键步骤比Android多一步“完全信任”。在iOS的Safari浏览器中访问http://电脑IP:8080。同样点击CA Certificate下载描述文件。系统会提示“已下载描述文件”。进入设置-通用-VPN与设备管理或描述文件你会看到一个名为“PortSwigger CA”或类似的描述文件点击它然后选择安装。可能需要输入手机锁屏密码。关键一步启用完全信任。仅仅安装还不够必须手动开启完全信任。进入设置-通用-关于本机。滑动到最底部点击证书信任设置。在“针对根证书启用完全信任”列表中找到你刚刚安装的“PortSwigger CA”证书将其开关打开。完成以上步骤后用Safari访问一个HTTPS网站测试。如果Burp能解密流量说明证书配置成功。4.3 微信小程序抓包的特殊处理微信小程序由于其沙盒机制和网络请求库的实现抓包需要额外注意确保微信APP信任系统代理iOS系统下大部分APP默认会遵循系统的全局代理设置微信通常也在此列。但为了确保万一可以先测试微信内打开网页的流量是否能被Burp捕获。处理证书绑定一些小程序可能会使用证书绑定技术。如果配置正确后小程序仍无法联网或报错很可能就是它校验了服务器证书而Burp的“假”证书无法通过校验。对于这种情况常规的代理抓包可能失效需要更高级的动态调试或逆向手段这已超出基础抓包教程范围。关注WebSocket流量小程序大量使用WebSocket进行实时通信。在Burp的Proxy-Options中确保Intercept WebSockets messages是勾选状态然后在WebSockets history标签页可以查看这些消息。注意事项iOS系统升级后有时会重置证书信任设置。如果某天突然抓不到HTTPS包了记得第一时间回来检查设置-通用-关于本机-证书信任设置里的开关是否还开着。5. 抓包实战中的高级技巧与问题排查基础配置只是开始实战中会遇到各种“妖魔鬼怪”。下面分享一些提升成功率和效率的技巧以及常见问题的排查思路。5.1 应对APP的代理检测与SSL Pinning越来越多的APP特别是金融类和大型互联网公司的产品会采用各种反抓包技术代理检测APP启动时检测系统是否设置了代理。如果检测到可能会拒绝发送网络请求或展示“网络环境不安全”的提示。应对方法尝试使用透明代理模式需要路由器支持或使用VPN软件将流量导入Burp但这比较复杂。使用基于Hook的绕过工具如针对Android的JustTrustMe模块需Xposed或LSPosed环境或使用ProxyDroid等APP实现全局代理而不修改系统Wi-Fi设置。对于iOS可以使用Shadowrocket或Surge等网络工具配置代理有时能绕过检测。SSL证书绑定APP内置了真正服务器的证书或公钥在建立SSL连接时进行比对如果发现证书不是它认识的比如Burp的证书就直接断开连接。应对方法这是最难绕过的一类。通常需要逆向APP找到进行证书校验的代码逻辑并修改它俗称“砸壳”和“打补丁”或者使用Frida、Xposed等动态注入框架在运行时Hook掉证书验证的函数。这属于移动安全逆向的中高级范畴需要一定的逆向工程基础。5.2 精准过滤与高效分析当所有流量都流向Burp时HTTP history可能会被各种图片、脚本、统计上报请求淹没。如何快速找到目标使用Target Scope在Burp的Target-Scope标签页添加你的目标域名或URL前缀。例如添加*.targetapp.com。然后在Proxy-Options-Intercept Client Requests中勾选And URL Is in target scope。这样Burp就只会拦截你关心的目标请求极大提升效率。利用Filter在Proxy-HTTP history页面顶部有强大的过滤器。你可以根据状态码、请求方法、文件类型、关键词等进行过滤。例如过滤MIME type为JSON或XML的快速找到API接口。关注/api/、/v1/等路径现代APP的接口通常有规律的路径多关注这些路径下的请求。5.3 常见问题速查与解决下面是一个快速排查问题清单当你抓包失败时可以按顺序检查问题现象可能原因解决方案手机无法上网1. 电脑IP或端口填错。2. 电脑防火墙阻止。3. Burp代理未启动或未监听所有接口。1. 核对IP和端口。2. 关闭防火墙或放行端口。3. 检查BurpProxy Listeners状态确保绑定到All interfaces。HTTP请求可见HTTPS全是Tunnel to或乱码1. 证书未安装。2. 证书已安装但未受信任Android高版本/ iOS未完全信任。3. APP使用了SSL Pinning。1. 重新下载安装证书。2. Android检查证书位置用户/系统iOS检查“证书信任设置”。3. 尝试使用绕过SSL Pinning的工具。部分APP无法联网或提示网络错误1. APP检测到代理并禁用。2. 该APP使用了仅限系统证书的网络安全策略。1. 尝试关闭手机Wi-Fi代理使用透明代理或Hook方式。2. 对于Android高版本考虑Root后安装系统证书或使用低版本测试机。Burp收不到任何手机流量1. 手机代理配置未保存或生效。2. 电脑和手机不在同一网段。3. 使用了需要网页认证的Wi-Fi。1. 重启手机Wi-Fi或重启手机。2. 确认电脑和手机IP前三位相同如都是192.168.1.x。3. 换用路由器Wi-Fi或电脑开热点。微信小程序页面白屏或请求失败1. 微信未走系统代理可能性小。2. 小程序服务器使用了证书绑定。1. 确认其他网页请求在Burp中可见。2. 对于证书绑定常规抓包方法可能无效需研究逆向。5.4 保持连接稳定的建议固定电脑IP在路由器设置中为你电脑的MAC地址分配一个静态IPDHCP保留地址这样电脑IP就不会变无需每次重新配置手机代理。使用电脑移动热点这是最稳定、干扰最少的方式。用电脑创建一个移动热点让手机连接这个热点。此时电脑本身就是一个路由器代理设置非常纯净。适时关闭拦截不需要的时候记得把BurpProxy-Intercept的拦截功能关掉Intercept is off否则所有被拦截的请求都会挂起导致APP卡死。抓包本身是一项基础但极其重要的技能是真机测试、漏洞挖掘、协议分析的起点。整个过程就像一场侦探游戏你需要耐心地布置好“监控点”代理取得“监听许可”安装证书然后才能开始观察和分析“嫌疑人”APP的“通信记录”网络流量。每一次成功的配置和解密都是对网络原理和安全机制更深一层的理解。遇到问题别灰心按照上面的步骤和排查清单一步步来大部分障碍都能被清除。最后记住在合法授权的范围内进行测试这是所有安全工作的前提。