http://p4.qhimg.com/t016c96237d278d2918.png

前言


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。

http://p0.qhimg.com/t0103262be9a28d2f96.png

2.在越狱设备上打开 Cydia,打开软件源选项,再编辑、添加。

http://p2.qhimg.com/t0185ad9e4fb0ff4156.png

3.要使用 HTTP 协议,输入我们 Burp Suite 所在 PC 端的 IP 地址或主机名以及 Burp Suite 监听的端口号。如果 Cydia 无法连接,注意你的监听代理的设置是否正确以及检查计算机防火墙是否关闭。

http://p2.qhimg.com/t01deb8121e0a7f0168.png

4.添加成功后,Burp Suite 现在应该显示为单个源。

http://p7.qhimg.com/t01c279c11c1ce39973.png

5.点开单个源:

http://p0.qhimg.com/t01948a9f69356a0fe6.png

6.点击mobileassistant应用程序进行安装:

http://p3.qhimg.com/t01b4df16dfba6f631b.png

7.点击安装:

http://p7.qhimg.com/t0119339ca39e8f6cb3.png

8.之后就会进行下载并安装它。在完成之后,您需要重新启动弹出菜单按钮来应用更改。

http://p1.qhimg.com/t0171b259cac6d802c9.png

9.在安装成功后便会在桌面出现我们的 Mobile Assistant 应用了。

http://p0.qhimg.com/t0165b0ef12f2a98250.png

还可以让设备通过浏览器访问 Burp Suite 的浏览器界面,即http://192.168.169.22:8080(主机局域网IP:监听端口)/mobileassistant.deb 来实现安装,下载完成之后通过 Cydia 来完成安装,但是要注意将我们的 deb 格式的安装包导入 /var/root/Media/Cydia/AutoInstall,然后重启 iOS 设备,进入 Cydia 的软件包,就可以发现已经安装好了。

http://p1.qhimg.com/t0166718cacd083bbca.png

无论是哪种安装方法,都必须要保证我们的主机以及 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,跟启动其他应用程序一样,点击图标:

http://p8.qhimg.com/t0108a76ff41ac301e8.png

2.设置代理:

http://p3.qhimg.com/t0128d248f61963c92a.png

3.点击添加要注入的应用程序:

http://p2.qhimg.com/t01a20e2fb31535ff14.png

4.添加成功会出现在列表中:

http://p5.qhimg.com/t01209ec12942cf1828.png

5.之后就可以开启或关闭注入功能了。在开启后,Mobile Assistant 会执行各种检查,如果这个过程发现错误,将会被自动关闭这个功能。同时在开启注入功能之后,我们需要去启动被注入的应用程序(若之前启动了,需要重新启动才能生效):

http://p1.qhimg.com/t01c0ce3df5d13c6e60.png

6.如果弹出下图所示窗口,表示注入成功:

http://p6.qhimg.com/t0140fdc2f7fae348ee.png

7.点击OK,MobileAssistant将绕过证书锁定,并且应用程序将能使用Burpsuite的自签名证书以数据的形式传输到服务器和客户端之间。

http://p8.qhimg.com/t0189a107664eeab5c6.png

高级用户可能想将注入应用于多个相关应用。这可以通过添加高级过滤器来实现。以下类型的过滤器可用:

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



本文转载自 zhihu.com

原文链接:https://zhuanlan.zhihu.com/p/26920791