前言
Burp Suite 在前段时间更新了v1.7.22版本,其中引入了一个新的模块: Mobile Assistant,它用于配合 Burp Suite 更方便地测试 iOS 应用程序。它可以修改 iOS 设备的系统代理设置,让 HTTP(S) 流量可以轻松重定位到电脑上正在运行的 Burp 。另外它还可以绕过你需要注入 App 的 SSL 证书的验证,拦截、检查和修改所有流量。
安装 Burp Suite Mobile Assistant
因为其功能的性质,需要依赖越狱设备上的软件包管理器 Cydia,并且要注意的是,Mobile Assistant 有些功能目前不支持 iOS10,所以在想使用 Mobile Assistant 相应的功能的时候,注意自己设备的固件版本。
安装 Mobile Assiatant 有两种方法,首先是使用 Cydia 安装:
1.在PC端打开 Burp Suite,设置好代理监听的接口以及端口,我这里设置的端口为8080,接口为我主机的 IP。
2.在越狱设备上打开 Cydia,打开软件源选项,再编辑、添加。
3.要使用 HTTP 协议,输入我们 Burp Suite 所在 PC 端的 IP 地址或主机名以及 Burp Suite 监听的端口号。如果 Cydia 无法连接,注意你的监听代理的设置是否正确以及检查计算机防火墙是否关闭。
4.添加成功后,Burp Suite 现在应该显示为单个源。
5.点开单个源:
6.点击mobileassistant应用程序进行安装:
7.点击安装:
8.之后就会进行下载并安装它。在完成之后,您需要重新启动弹出菜单按钮来应用更改。
9.在安装成功后便会在桌面出现我们的 Mobile Assistant 应用了。
还可以让设备通过浏览器访问 Burp Suite 的浏览器界面,即http://192.168.169.22:8080(主机局域网IP:监听端口)/mobileassistant.deb 来实现安装,下载完成之后通过 Cydia 来完成安装,但是要注意将我们的 deb 格式的安装包导入 /var/root/Media/Cydia/AutoInstall,然后重启 iOS 设备,进入 Cydia 的软件包,就可以发现已经安装好了。
无论是哪种安装方法,都必须要保证我们的主机以及 iOS 设备连接的是同一个网络。
使路由流量通过 Burp
首先你要保证你的 Burp 实例正在运行,并且可以从移动设备上进行网络访问,然后在移动设备端的 Burp Suite Mobile Assistant 中设置要进行连接的 Burp Suite 实例的主机 IP 和端口,然后来安装 CA 证书,将 Burp Suite 作为移动设备的代理。在配置完成后,可以通过以下方法来验证你的配置:
1. 网络连接:设备是否能够连接到给定的主机和端口。
2. Burp 验证:给定的主机 IP 和端口上监听服务是否是 Burp Suite 的实例。
3. CA 证书安装:设备是否信任所配置的 Burp Suite 实例的 CA 证书。
4. 启用代理:设备是否通过所提供的主机和端口为 HTTP 和 HTTPS 连接配置的代理服务器。
注意: 移动助手对代理设置所做的更改是短暂的,会在重新启动后恢复原来的设置。在运行 iOS 9.0 版以上的设备时,使用 Mobile Assistant 对代理设置所做的更改不会反映在 iOS 设置应用中。Burp CA 证书的安装在重新启动后不会恢复。
绕过证书锁定
证书锁定是应用程序用来防御恶意用户扮演可信任服务器的技术,在这种情况下,锁定(pinning)是一种术语,指的是针对本地合法证书进行身份验证(由远程服务器提供 SSL 证书)的过程。所以说,只有当服务器可以提供与应用相匹配的证书可以证明其身份时,才能和远程服务器建立连接。
默认情况下,Burp Suite 通过其自签名的 CA 证书为每台主机生成签名证书。即使设备可能会信任这些证书,但它们无法与应用程序预期的证书相匹配。那么即使该设备已正确配置为 HTTPS 代理,也会造成 Burp Suite 的拦截和查看应用程序流量的能力会被证书锁定削弱。
Burp Suite Mobile Assistant 还可以注入其他应用程序,并且还能挂载到低级系统 API 以破坏证书锁定,从而允许用户拦截流量,甚至在证书锁定执行中的时候也可以。
使用系统 API 、第三方库或自定义代码,可通过不同方式实现证书锁定。然而某些情况下注入应用程序成功也可能无法禁用锁定,这表明应用程序正使用自定义代码执行证书锁定。
注:Mobile Assistant 绕过证书锁定的特性目前暂不支持 iOS 10 版本。
注入到应用程序
将你想要进行测试的 app 添加到列表中,这时候如果该应用程序与列表中的应用程序中至少有一个表项匹配,那么该 app 将会通过绕过证书锁定的方式被注入,接下来我们来介绍一下。
1.首先启动 Burp Suite Mobile Assistant,跟启动其他应用程序一样,点击图标:
2.设置代理:
3.点击添加要注入的应用程序:
4.添加成功会出现在列表中:
5.之后就可以开启或关闭注入功能了。在开启后,Mobile Assistant 会执行各种检查,如果这个过程发现错误,将会被自动关闭这个功能。同时在开启注入功能之后,我们需要去启动被注入的应用程序(若之前启动了,需要重新启动才能生效):
6.如果弹出下图所示窗口,表示注入成功:
7.点击OK,MobileAssistant将绕过证书锁定,并且应用程序将能使用Burpsuite的自签名证书以数据的形式传输到服务器和客户端之间。
高级用户可能想将注入应用于多个相关应用。这可以通过添加高级过滤器来实现。以下类型的过滤器可用:
1.可执行文件:将会匹配每个可执行文件名称与过滤器值相匹配的应用程序。
2.软件包 ID:将会匹配有指定软件包 ID 的应用程序,或者有与该软件包 ID 有依赖关系的框架。比如,过滤器 com.apple.UIKit 将所有应用程序与 GUI 匹配; 过滤器 com.apple.Security 将与所有应用程序进行匹配。
3.类:将会匹配所有实现名称与过滤器值相匹配的类的应用程序。
从崩溃中恢复
注入应用程序和挂载 API 调用的过程中是存在潜在风险。为此,Cydia Substrate 插件在意外情况下可防止设备进入永久崩溃状态。出现 Burp Suite 移动助手崩溃并引发问题的情况时,请参阅 Cydia Substrate 的安全模式来解决。
参考链接
Configuring Burp Suite Mobile Assistant
Installing Burp Suite Mobile Assistant
更多精彩内容,请关注作者微信公众号:
发表评论
您还未登录,请先登录。
登录