首页
社区
课程
招聘
[翻译]OWASP iOS crackme 的教程:使用Frida来解决
发表于: 2017-5-6 17:22 6091

[翻译]OWASP iOS crackme 的教程:使用Frida来解决

2017-5-6 17:22
6091

在这篇文章中,我将解释如何使用Frida解决OWASP移动安全测试指南(MSTG)1级的Crackme。 非常感谢Bernhard Mueller创建这些crackme,并鼓励人们写教程阐述如何使用开源工具来攻破他们。 最后,我将再次使用OWASP iOS crackme教程,并展示如何使用NowSecure上的一些工具打破crackme。


OWASP iOS crackme 指导的概述

首先,我下载这个app并重新签名,这样就能把它安装到我的测试机上。 由于本教程是关于动态分析的,所以我得使用一个真实机器,还得安装Frida。安装了app后,运行起来,观察UI,然后用我的工具来解决这个谜题。 如果没有工具来揭开这个app的面具,几乎不可能猜到答案并解决问题。 这才是关键,动态分析不仅是得以一窥app奥秘的的强大工具,也是逆向app和执行app安全测试的强大工具。 我将展示一下如何使用UI完全自动化的解决方案来处理这个crakeme,其中有一些构建在Frida之上的非常强大的工具。

继续!


下载&给app重签名

你可以在这拿到crakeme.ipa

你可以在这儿followOWASP的crakeme工具,或者使用Cydia Impactor,iSign等等。

我会使用nowsecure/applesign工具,这是一套非常实用的苹果相关的签名相关的工具。 

使用Applesign有一大优点,它能自动启用重签名的app的get-task-allow权限,这对于附加调试器是很有用的。

现在我有一个重新签名版本的.ipa可以安装在设备上 - 我将使用libimobiledevice工具。

所以现在我可以在设备上运行这个app,如果你也跟着做到这儿了,应该在屏幕上看到类似的内容:

我需要使用“在隐藏标签中发现一个秘密!”的提示来寻找解开crackme所需要的文本。

如果我不能输入正确的数值,那我会得到下面的结果:



提示

** 前方警惕 ** - 过了这一步我得警告一下,再继续就得风险自负。

现在我要动用提示和一些聪明才智来解决这个问题。 我可以尝试的一件事是dump应用程序的视图层次结构。

来自于苹果的档案:

Only one window at a time can be the key window, and you can use a window’s keyWindow property to determine its status.(一次只能有一个窗口是关键窗口,您可以使用窗口的keyWindow属性来确定其状态。)


所以我可以在应用程序运行时使用Frida询问当前的UIWindow及其视图层次结构。 随着Frida及其python命令行界面(CLI)工具的安装,我将执行以下操作:


您可以在这里了解更多关于Frida的Obj-C API。 使用这些API,我可以弄清楚如何绑定到UIWindow,获取它的keyWindow,然后,通过足够的研究,找到将dump整个视图层次结构的recursiveDescription函数来查看。


终极解决

如果你仔细观察,你会发现隐藏的UILabel有秘密:

在那里 - “我是小孩!” 我输入框中,点击验证,我完成了:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//