如果你曾经对一个移动应用进行渗透测试,并且如果这个应用有很好的安全性,你会发现它不会允许你拦截它的流量,并且会发动中间人攻击来抵御。按照规定,一个编写的好的应用不会忽视无效的证书错误,比如你用这个应用通过你的代理服务器,按规定路线向它的服务商发送所有通信。但不幸的是,如果不做它,很难执行一项有意义的渗透测试。
奇怪的是,直到去年,这都不是一个很大的问题。大多数的我们测试的移动应用,仅仅是抑制这种异常情况,而且继续像之前那样运行,允许我们破坏它们的通信。
对于世界上的其他人来说这是个好事,但对于我和我的同事来说,这似乎正在发生改变——应用程序开发者在不断升级他们的应用。然而,一如既往的,对于这个问题,有两种工具可以解决:Android设备上的ProxyDroid,以及iOS设备上的iOS SSL Kill Switch。
首先,你要root你的Android或将你的iOS设备越狱,才能使用这些功能。
ProxyDroid的安装和使用都很方便,没有什么困难之处:点击它的主机设定你的代理工具的IP地址,在端口设置端口号,代理工具即可获取端口号,然后打开开关,你就可以使用了。
iOS SSL Kill Switch比较复杂, 以下说明是在假设你的设备已经越狱,而且你已经安装了Cydia。你需要你的设备的IP地址,在设置中,找到wifi设置,点击“我”,然后就会显示你的IP地址,以下的“192.168.1.135”是个示例,这是我的设备的IP地址。
在你的设备上,使用Cydia下载并安装CydiaSubstrate——这是一个必需的软件。
使用scp复制下载的iOS SSL Kill Switch ,上文提到的.deb文件会在你的PC或Mac设备上 的一个方便的位置。我在我的设备上创建了一个“下载”文件夹,用来存储文件。
scp com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb
root@192.168.1.135:/Downloads
root@192.168.1.135’s password:
com.isecpartners.nabla.sslkillswitch_v0.6-iOS 100% 6932 6.8KB/s 00:00
在你复制.deb文件的位置,ssh连入你的设备(比如“下载”文件夹,或其他什么文件夹)
由此提示,使用dpkg安装.deb文件:
Phillips-iPhone:/Downloads root# dpkg -i com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb
(Reading database … 3856 files and directories currently installed.)
Preparing to replace com.isecpartners.nabla.sslkillswitch 0.6-1 (using com.isecpartners.nabla.sslkillswitch_v0.6-iOS_7.0.deb) …
Unpacking replacement com.isecpartners.nabla.sslkillswitch …
Setting up com.isecpartners.nabla.sslkillswitch (0.6-1) …
根据ssh提示重启你的设备:
Phillips-iPhone:/Downloads root# killall -HUP SpringBoard
In your device’s Settings menu, there will be a new menu option, “SSL Kill Switch” that is turned off by default. When you’re ready to start testing, turn that on (activate the “Disable Certificate Validation” switch below). Don’t forget to turn that off when you’re done.
值得一提的是,程序开发人员最终意识到了证书验证的重要性,但是这意味着测试人员需要更多了解他们的把戏。