如何利用cycript绕过iOS应用程序的PIN保护机制
在本文中,我们将为读者详细讲解攻击者是如何在应用程序运行过程中,借助Cycript工具从中提取PIN的。
该漏洞是在运行iOS 10.2的、已经越狱的iPhone 5S手机中发现的。请注意,对于早期/更新版本的iOS系统来说,可能与文中使用的工具不兼容。
1) Clutch
我们将使用“Clutch 2”(一个公开的iOS解密工具)来解密和提取应用程序的.ipa文件,稍后,还需要转储和检查应用程序类的ob jective-C头文件。
Clutch软件的下载地址:https://github.com/kjcracks/clutch。
我们可以按照安装说明在设备上安装Clutch。
如果运行Clutch2时出现“Permission Denied”错误,请首先运行以下命令:
$ chmod a+x /usr/bin/Clutch2
此后,就可以运行下列命令了:
$ Clutch2 -i
这时,就会显示已安装的应用程序。然后,选择您想要使用的应用程序,并复制它的bundleID的值。
接下来,请运行下面的命令:
$ Clutch2 –b <BundleID>
这时,会看到一条消息,指出破解的二进制文件已经被转储,并提供其保存位置。
接下来,我们需要将二进制文件传输到Mac,以进行相应的分析。当然,完成该任务的方法有很多种,但我更喜欢用CyberDuck。不过,您可以根据自己的习惯选用合适的文件传输软件,或者直接使用ssh连接手机,并通过scp命令将.ipa文件传送至计算机。
将.ipa文件转移至计算机之后,对其进行解压,就可以访问其中的内容了。(执行该操作之前,需要先将文件类型改为.zip)。
2) class-dump
下一步,是使用一个名为class-dump的工具转储应用程序的运行时头文件。我们可以通过brew命令,将其安装到我们的计算机上:
$ brew install class-dump
首先,找到应用程序的可执行文件。实际上,它们位于我们复制到计算机上的.ipa文件夹中,具体路径为/Payload/<AppName>.app/AppName
。
然后,运行:
$ class-dump/Payload/<AppName>.app/AppName > dumpedHeaders
其中“dumpedHeaders”是要创建的文件,用来存放我们转储的内容。
之后,我们可以借助文本编辑器(如Sublime)来查看“dumpedHeaders”文件的内容。对于这个应用程序来说,打开"dumpedHeaders"文件后,就可以任意搜索自己感兴趣的东西了。我首先搜索了“authorize”、“login”或“pin”等单词,很快就发现了要找的东西:
我们可以看到,在DTPinLockController类中,有一个属性NSString * pin——这就是我们要找的目标,这样,我们就可以进入下一步了。
3) cycript
首先,从http://www.cycript.org/网站将最新版本的cycript软件下载到我们的电脑上面。
然后,通过文件传输工具(如CyberDuck、SFTP、SCP等)将cycript上传到我们的手机上。
最后,通过ssh连接手机,并通过运行以下命令完成安装工作:
$ dpkg -i cycript.deb
现在,请运行cycript,如果一切正常的话,就会看到#_cy提示符。(在进行下一步操作之前,请先退出cycript)。
到目前为止,我们已经为hook目标应用程序的进程做好了充分的准备。为了查找应用程序的进程ID,请确保该应用程序正在您的手机上运行,然后,执行下列命令:
$ ps aux
复制目标应用程序的PID,然后执行下列命令:
$ cycript -p <PID>
现在,我们已经hooked了该进程,所以,就能够在它运行过程中探索其数据了。
由于这个应用程序需要输入PIN,并且该应用程序正在手机上运行,并进入了“Enter PIN”屏幕。
为了确定我们看到的ViewController的名称,可以在cycript中运行:
cy# UIApp.keyWindow.rootViewController
返回内容如下所示:
DTPinLockController
现在,切换至class-dump,我们可以看到,这确实是我在前面找到的NSString属性“pin”所对应的屏幕,这就意味着,我们也能够在运行过程中访问它的值。要查看这个PIN的存储是否提供了安全保护,可以运行下面的命令:
cy# UIApp.keyWindow.rootViewController.pin
神奇的是,用户的PIN码竟然被吐了出来:
现在,我们已经在应用运行过程中成功地截取了用户的PIN。为了确认一下,我们可以直接将其输入该应用程序,看看是否被授予相应的访问权限既可。
原文地址:https://www.allysonomalley.com/2018/06/26/bypassing-apps-pin-protection-with-cycript/
最新评论