本文由金恒源编译,Roe校对,转载请注明。
本文将探讨关于iPhone的环境搭建以供研究和测试。注意:本文目的在于研究和测试,请不要将实验中的方法轻易的运用在实际案件中。在进行相关操作之前,要确保知晓相关操作的后果,并可以向其他人解释这样操作的必要性,且要明白越狱设备是有风险的。
在实验开始之前,需要用Apple ID和一般账户设置iOS设备。本文的前提之一便是基于此的。
越狱简介
如果不熟悉越狱操作,请仔细阅读下面的内容。
首先要明确:这不是黑客行为。正在进行的操作是为了获取对文件系统根目录的特殊访问权限。Apple已经设置好了设备,所以不要轻易破坏这个环境。当使用公开的方法进行越狱时,要承担一定的风险——即在越狱过程中设备或其中的数据可能会遭到破坏。请不要把这个警告误解为对研究人员的不信任,并否定技术团队为支持研究和安全社区所做的工作。如果没有越狱人员,关于移动设备取证的研究将会大大减少。如果越狱的过程进展顺利,您现在就有破解东西的能力了。有一段时间,我对越狱非常担心,主要是因为担心点击启动越狱的按钮可能会使设备黑屏。虽然这种情况肯定会发生,但我可以告诉你的是,多年来我曾在无数设备上使用公开的越狱方法,但从来没有出现设备无法使用的后果。
在决定深入研究越狱之前,需要了解一件非常重要的事情。iPhone是一个硬件,它上面运行着一个操作系统,要想越狱成功,必须保证硬件和操作系统版本都是合适的。如果想要越狱测试设备,需要密切注意该设备当前支持的操作系统版本,以及该设备支持越狱的操作系统版本。测试设备最好能够拥有最新的支持越狱的iOS系统。
上述操作可以在这个网站进行查询:https://www.theiphonewiki.com/wiki/Jailbreak。
我拥有一台安装有iOS 13.5的iPhone 11 Pro。但这并不是很理想的测试设备,因为它不容易受到checkm8硬件漏洞的影响,但目前它是可用的最新设备。所以我们将在最新的iPhone上从更困难的方法入手,以至于能够在旧版iPhone X上实验时更加的游刃有余。当iOS以checkm8漏洞为主的时代结束后,另一种以Cydia Impactor为主的方法可能成为主流——因为这是在checkm8之前就已经存在的方法。但每一次越狱都是不同的,具体问题具体分析。
使用iphonewiki.com的指南,找到包含iOS 13.5的行和iPhone 11 Pro的列。发现我的设备可以使用un0ver 5.2.0版本越狱。在iOS 13.6发布的时候,我会使设备的操作系统持续更新。但是现在13.6版本的系统没有越狱方法可用,因此这就是为什么必须注意,在升级系统版本的时候要以是否能够越狱为前提。在更新操作系统版本时,必须时刻保持设备处于越狱状态。在使用个人设备进行测试时,如果不更新操作系统,您可能会对相关的安全补丁和新功能说拜拜。
在一个理想化的测试环境中,钱不是问题,咖啡和糕点是免费的,骑着小电驴到公司工位,窗外有美丽的景色,针对每个版本的操作系统都有一个对应的iPhone,并且永远不会升级。你将拥有一个覆盖所有iOS版本的iPhone库,因此可以实现精细且具体化的测试环境——但这是一个非常烧钱的方法,当然,这也不是我个人打算做的事情。
越狱方法:Unc0ver
如何使用un0ver通过Cydia Impactor越狱具有A13处理器和iOS13.5版本的iPhone 11 Pro (需要Apple Developer账号)
如果确定un0ver是适用于该硬件和操作系统的越狱工具,接下来是使用Cydia Impactor成功越狱的步骤。注意,这种方法需要有一个付费的Apple Developer帐户(苹果开发者账户)。费用大约100美元/年,为此我保留了一个开发帐户。如果不想注册这个账号,在un0ver .dev页面上还有另外两个免费的选择——通过“AltStore”或“Xcode + iOS App Signer”来实现越狱。
本文中使用的方法,需要在Mac上安装Cydia Impactor,但还有其他可用的选项。进入un0ver的网站,可以了解到其他免费的选项,但在本文中仅使用Cydia Impactor进行相关操作。从本质上来讲,这些操作是将一个应用程序加载到iPhone上进行越狱。在苹果的App Store上不会找到越狱应用,所以需要使用Cydia Impactor将一个应用程序推送到测试所用的iPhone上。
1.登录cydiaimpactor.com,点击Mac OS X的下载链接。它会下载一个.dmg文件。
2.双击.dmg文件,然后将Impactor拖放到应用程序文件夹中。现在开始安装Cydia Impactor。在找到它后,按住“command +空格” 键,使用Spotlight Search(中文名为:聚焦),输入关键词“Impactor”,并选中结果。此时会弹出一个警告:Impactor was downloaded from the internet and could be malicious。忽略即可。
3.下载.ipa for unc0ver – Go to unc0ver.dev,然后点击“下载v5.3.1”(或其他列出的版本)。这会下载.ipa文件,将使用该程序对设备进行越狱。
4.通过USB连接iPhone并运行Cydia Impactor后,在顶部字段中会看到iPhone的friendly name和UDID。底部的字段显示“install Cydia impactor”,此时不要按“start”!不要按“start” !不要按“start”!忽略即可。
5.将之前下载的un0ver .ipa文件拖到Impactor的底部字段。
6.在删除文件后,弹框会要求输入iTunes电子邮件进行登录,此时输入Apple Dev帐户绑定的邮件地址,然后按“OK”。
7.出现Apple ID密码框:
· 如果账号没有开启双重认证,可以在这里输入Apple ID密码,然后按“OK”。
· 如果开启了双重认证,输入Apple ID密码后显示失败——没什么大不了的。继续下去,有报错出现也没关系。
· 如果开启了双重认证,需要登录appleid.apple.com并登录到开发者帐户。
· 登录后,会看到一个账户仪表盘。查看“Security”部分,会看到“APP-SPECIFIC PASSWORDS”,然后点击“Generate Password…”
· 为即将生成的密码输入一个标签——在这里输入什么并不重要。点击“Create”。
· 这将生成一个应用程序特定的密码。复制密码并将其粘贴到Cydia Impactor中的密码框中。在Cydia Impactor上单击OK。
8.Cydia Impactor将运行整个应用程序的安装过程,一般不会出现错误。完成后,将返回到显示“iDevice name”、“UUID”和“install Cydia Extender”的界面。
9.检查iPhone上的un0ver应用程序和Cydia应用程序。
10.打开unc0ver应用程序。
11.选择屏幕左上方的设置齿轮。在“设置”中,将“(Re)Install Open SSH”切换为“ON”。这样操作的目的是允许我们在Mac和iPhone之间进行通信。点击右上角的“完成”,返回主屏幕。
12. 点击“Jailbreak”按钮。在通知之后,会看到一个弹窗,上面写着“Jailbreak Completed. No error occurred. The device will now reboot into the jailbroken state.”。点击OK,设备很快将会重新启动,设备现在已经越狱成功!
越狱方法:checkra1n
checkra1n的越狱方法是基于checkm8引导ROM漏洞的。checkm8漏洞于2019年9月被发现并公布。这个漏洞基本上允许越狱访问系统版本12.3及以上的iPhone 5s, iPhone 6, iPhone 6 Plus, iPhone 6s, iPhone 6s Plus, iPhone SE(第一代),iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus和iPhone X手机。如果你正在决定购买哪款iPhone来进行测试和研究,我的建议是iPhone X。从技术上讲,iPhone 8和iPhone X是同时发布的,但iPhone X包含Face ID,这是目前大多数iPhone使用的解锁方式。如果进行Touch ID的特定测试,那么iPhone 8或iPhone 8 Plus会更有意义。我买了一部iPhone X和一部iPhone 8 Plus,所以如果必要的话,我两样都有。如果允许买两个测试设备,可以选择各买一个。从本质上讲,这个漏洞所暴露的最古老的手机将是苹果终止系统更新服务的第一个手机。iPhone X是所有具有该漏洞攻击条件的设备中最新的一款,因此也将是苹果最后放弃操作系统支持的设备。有传言称,苹果可能已经找到了一种方法,准备在iOS 14中来对抗的这个漏洞,但对于测试的设备来说,影响不大。
如何使用checkra1n越狱具有A11处理器和iOS 13.6.1版本的iPhone X
1.在Mac上,使用浏览器访问“checkra.in”网站,向下滚动并点击“Download for macOS”,将会下载checkra1n .dmg。
2.打开下载目录并双击“checkra1n beta.dmg”文件。打开该磁盘映像后,将checkra1n应用程序拖到Applications文件夹中。
3.按下“command+空格键”,使用Spotlight Search,输入“checkra1n”,然后选择出现的应用程序。
4.可能会出现一个警告:“checkra1n”cannot be opened because the developer cannot be verified。单击取消即可。
5.单击屏幕左上角的“Apple”logo,然后单击“System Preferences”。点击“Security and Privacy”选项卡并打开它。在选项卡底部会看到一条关于checkra1n被阻止的消息,单击“Open Anyway”。系统会再次弹窗,询问是否确定要打开,输入“yes”,然后点击 “Open”。从现在开始checkra1n程序便已经安装在Mac上了。
6.按“command+空格”组合键,以“checkra1n”为关键词使用Spotlight Search搜索,并点击打开。通常情况下,这时会连接设备并确保会被支持,但为了展示checkra1n的能力,我将测试设备升级到iOS的最新版本——13.6.1(8/21/2020)。窗口显示它不受支持。如果操作系统版本经过测试并得到支持,只需简单地单击“开始”便会运行。但对于iPhone X上不支持的操作系统版本,如果确定会受到checkm8漏洞的影响,可以点击“Options”,勾选“Allow untested iOS/iPad)S/tvOS versions.”的复选框。然后回到主屏幕,点击“Start”开始越狱。
7.在另一个关于未经官方测试的操作系统版本上运行checkm8后,跳转到了一个界面:“the device needs to be put into DFU mode.”但在这之前该程序会将测试设备置于恢复模式,从而避免任何文件系统的损坏。
8.设备置于恢复模式后,checkra1n应用程序会显示将设备置于DFU模式的方法。只需要按照checkra1n窗口中的指示进行操作即可。
· 点击“Start”。
· 同时按住侧边键和音量向下键(4秒)
· 松开侧边键,但按住音量键(10秒)
9.如果操作正确,设备将跳转到另一个界面,将在那里进行越狱操作。当出现这个界面时,便可以松开“音量减”按钮。checkra1n将通过几个步骤自动继续前进,不需要任何人为干预。iPhone屏幕将会显示一个带有checkra1n标志的黑屏,然后引导进入操作系统。当checkra1n界面显示“All Done”,可以单击“Done”返回主屏幕。解锁并打开iPhone,就会看到安装好的checkra1n应用程序。设备现在已成功越狱!
Mac端的相应设置
现在有了设置好的Mac环境和实验前的准备,以及一个越狱状态的iPhone,现在终于做好访问手机其中数据的准备。接下来就是需要购买新的Mac和随机的iPhone进行测试!
在开始之前,确定最后几个细节是否正确:
1.iPhone通过USB连接到Mac
2.当连接到Mac并解锁iPhone时,会在iPhone上看到一个弹窗,询问是否信任Mac。此处必须点击信任才能与Mac连接。
3.iPhone屏幕设置为永不休眠。具体步骤:设置>显示和亮度>自动锁定>从不。如果需要从文件系统复制文件,此时设备自动锁定,那么可能会获得很少的数据,因为在设备锁定和解锁时文件权限会发生变化。
现在开始通过Mac上的终端连接iPhone!根据使用的越狱方法不同,连接iPhone会有一些细微差别,所以下面将详细介绍两种方法。于我而言,我经常在un0ver和checkra1n上测试设备,所以我向你展示的是完全正常的,因为我在我的Mac上连接不同的设备。下面将使用iproxy在Mac和iPhone之间建立TCP连接。这将方便运行shell以进入iPhone,以便通过Mac浏览iPhone的文件系统!
1.打开一个新的终端窗口
2.在终端窗口中输入下面命令:
· un0ver – type iproxy 4242 22并按回车键
· checkra1n – type iproxy 4242 44并按回车键
说明:iproxy是来自libi mobile device的一个程序,使用它的目的是在#22或#44端口建立TCP(4242)连接。使用un0ver越狱监听端口被设置为22(standard SSH),使用checkra1n越狱监听端口被设置为44。
按下返回键后,终端窗口将显示“waiting for connection”,此时光标闪烁。
3.打开第二个终端窗口。右键单击Dock栏中的终端并选择“New Window”,或者单击第一个活动终端窗口并按“command+N”创建一个新窗口。
4.在第二个Terminal窗口中,un0ver和checkra1n都可以使用ssh [email protected] -p 4242并按回车键。
说明:ssh是用来访问设备的网络协议,root是用户名,127.0.0.1是连接到(-p)端口为4242的本地主机。
· 如果第一次这样做,在第二个终端窗口中会收到一个认证消息,询问是否可以接受正在尝试的连接。此处跳转至4.3
· 于我而言,我正在从访问一个un0ver设备改变为一个checkra1n设备。所以需要在连接之前做相应的调整。
4.1如果发现“Offending RSA key in /Users//.ssh/known_hosts:1”的错误,意味着需要从“known_hosts”文件中删除之前的ssh配对,以便这个新设备可以连接。也正因如此,如果出现了这个错误,也意味着已经有了127.0.0.1 -p 4242的SSH和已知主机配对。如果要解除这个配对,只需要在第二个终端窗口中输入ssh-keygen -R “[127.0.0.1]:4242 “并按回车键即可。这将把之前已知的主机配对保存到一个新文件中,并为再次使用而清理出空间。可能会有更好的方法来管理known_hosts文件,但这只是为了方便快速连接iphone,而不需要为此耗费精力。(感谢Sarah在这里提供了一种易于操作的无损方法!在这个例子中,则必须进入另一个窗口进行更改,因此接下来的几张照片不会按顺序进行这一步。)
4.2在第二个终端窗口中输入ssh [email protected] -p 4242并按回车键。(也可以在第二个终端窗口中按键盘中的向上箭头,查找以前的命令,避免再次键入相同的内容!)
4.3在第二个终端窗口中,会收到一条消息,询问是否确定继续连接。此处必须输入“yes”,然后按回车键。之后会看到一个输入密码的界面。
5.在密码输入行中,输入alpine并按回车。打字的时候字母不会出现,**用这种方式连接iphone的库存密码是alpine。当在第二个终端窗口中尝试此操作时,如果连接意外地关闭,只需要按键盘上的向上箭头,再次运行ssh [email protected] -p 4242,然后在密码行中输入alpine,依然可以运行!
6.如果看到类似“-bash-3.2#”或“Jane’s iPhone#”之类的东西,则证明现在拥有了对iPhone根目录下shell的访问权限!但不要高兴的太早。
7.在第二个终端窗口(现在是iPhone的shell)中,键入ls -la并按回车键。此时应该会看到/var/root/目录的列表,现在可以通过终端查看iPhone的文件系统了!
这篇文章相当长,但在我看来,为了使那些对过程中某些操作不自信的人能够进行到这里,而以非常简单、容易理解的方式列出其中一些内容是很重要的。在iPhone上更改目录,查看存在于不同位置的文件,快速查看屏幕上的内容,提取单个文件到Mac中,以及更多更多的功能——这些都是我们这么做的理由。
结语
一旦在iPhone中进行了shell操作,在需要再次连接设备,或者在测试时遇到连接问题之前,iproxy的第一个终端窗口基本上可以被最小化或忽略。
如果使用checkra1n,则建议将文件系统挂载为Read Only。**如果明确自己的目的,可以运行mount -o rw,union,update /将它重新挂载为Read/Write。**
如果选择越狱个人设备进行测试,越狱只是削弱了设备的安全性,并接受一定的风险。如果要将默认密码从alpine更改为其他密码,则必须首先使用上面的mount命令将文件系统权限更改为Read/Write。然后通过输入passwd并在root shell中按回车键来更改密码。此时系统会要求输入一个新密码,然后确认,就不会忘记所选择的了!对passwd mobile重复此过程。
原文链接:
http://www.mac4n6.com/blog/2020/8/23/step-by-step-iphone-setup-for-ios-research-via-bizzybarney
原文始发于微信公众号(数据安全与取证):iOS研究之iPhone配置步骤