第二部分:iOS研究用iPhone逐步设置指南(via @bizzybarney)
这是上一篇关于如何设置Mac进行iOS测试的后续文章。如果你还没有阅读那篇文章,本文假设你的Mac已按特定方式设置,或者你知道自己在做什么。建议你先去阅读那篇文章,我会在这里等你。
好的,既然我们都达成共识了,让我们来解决第二部分,设置你的iPhone用于研究和测试。本指南将延续上一篇的简洁风格,假设你不是命令行专家。但在继续之前,让我重申一遍——这是用于研究和测试的。请不要阅读本文后认为在刑事案件中的证据设备上,或正在接受民事或公司调查的设备上进行越狱、加载二进制文件或按下一堆按钮是个好主意。我不是说你不能这样做,但要确保你理解自己对设备做了什么,能够向他人解释,并理解越狱设备涉及的某些风险。
在开始此过程之前,你需要使用AppleID和常规账户信息设置iOS设备。本指南假设你的iDevice已处于主屏幕可用状态——意味着它已使用你打算使用的任何账户进行了设置。真实的你,虚假的你,真实的其他人——开玩笑的(但说真的,别当混蛋)。
越狱时间
如果你不熟悉越狱——请仔细阅读;不要略读。 这不是黑客行为。我们正在获取对文件系统根目录的特权访问。苹果设置了你的iDevice,使其不易被破坏。当我们使用公开可用的越狱方法进行越狱时,我们接受了在越狱过程中设备或其数据可能受到某种损害的风险。请不要将这一警告误解为对了不起的越狱团队为支持研究和安全社区所做的免费工作的不信任。没有越狱社区,移动取证研究将大大减少。
如果越狱过程顺利(它会顺利的),你现在有能力搞坏东西了。曾经有一段时间我对越狱非常担忧,主要是因为我必须克服这样的恐惧:点击开始越狱的按钮可能会让我的设备变砖。虽然这当然可能发生,但我要告诉你,多年来我已在无数不同的iDevice上使用公开提供的越狱工具,从未导致任何一台设备无法使用。
在我们决定深入越狱之前,你需要理解一件非常重要的事情。你的iPhone是一件硬件,上面运行着操作系统,而要使越狱成功,它必须适应你的硬件和操作系统版本。如果你想越狱测试设备,你需要密切关注当前可用的操作系统版本与你的硬件可越狱的操作系统版本。在理想情况下,你希望测试设备运行可越狱的最新iOS版本。
我用来确定针对我正在尝试越狱的硬件和操作系统版本可以使用哪种越狱方法的一个很好的资源是 https://www.theiphonewiki.com/wiki/Jailbreak。
我有一台运行iOS 13.5的iPhone 11 Pro。这不是理想的测试设备,因为它不易受到checkm8硬件漏洞的影响,但它是目前可用的最新设备。所以我们将从最新iPhone上更困难的过程开始,然后转向旧款iPhone X上更简单的方法。当iOS利用的checkm8时代过去后,这种通过Cydia Impactor的方法可能是你进行越狱的方式——因为这是在checkm8之前的方式。不过,每次越狱都不同,所以现在还不需要承诺什么。
使用theiphonewiki.com的指南,我向下滚动直到找到包含iOS 13.5行和iPhone 11 Pro列的表。我发现我的设备可以使用unc0ver 5.2.0版进行越狱。如果我完全更新设备的操作系统,在撰写本文时它应该是iOS 13.6。目前13.6没有可用的越狱,所以这就是为什么你必须注意,只有当有可用于你升级到的版本的越狱时,才更新你的操作系统。你必须勤于此事,以在更新到相关操作系统版本时保持设备越狱状态。如果你使用个人设备进行测试,你必须意识到,不保持操作系统更新,你可能会对相关的安全补丁和新功能说“不,谢谢”。
在金钱不是问题、咖啡和糕点免费、你骑着独角兽去有着完美景观的角落办公室的完美测试场景中,你会在每个操作系统版本上都有一台iPhone并且从不升级它们。你会有一个覆盖所有操作系统版本的所有iPhone库,这样就可以实现非常具体的测试场景——但这是一个非常昂贵的方法,当然不是我个人会做的事情。
unc0ver越狱方法
如何对运行iOS 13.5版本、搭载A13处理器的iPhone 11 Pro使用通过Cydia Impactor的unc0ver进行越狱(需要Apple开发者账户)
如果unc0ver是适用于你的硬件和操作系统的越狱工具,以下是成功通过Cydia Impactor越狱的步骤。注意,此方法要求你拥有付费的Apple开发者账户。付费账户每年花费约100美元,我为此维护了一个开发者账户。如果你不想注册开发者账户,unc0ver.dev页面上列出了另外两种免费选项,用于通过“AltStore”或“Xcode + iOS App Signer”进行越狱。
对于我使用的方法,你需要在Mac上安装Cydia Impactor,但也有其他选项可用。查看unc0ver的网站以获取其他免费选项,但本指南我们将使用Cydia Impactor。本质上,我们在这里做的是将应用程序侧载到你的iPhone上。你不会在苹果的App Store上找到越狱应用程序,所以我们将使用Cydia Impactor将应用程序推送到你的测试iPhone上。
-
前往cydiaimpactor.com并点击Mac OS X的下载链接。它将下载一个.dmg(磁盘映像)文件。
-
双击.dmg文件,然后将Impactor拖放到你的应用程序文件夹中。Cydia Impactor现已安装。要找到它,按住’command+空格键’并使用Spotlight搜索,输入’Impactor’并选择结果。你可能会收到一个警告,说Impactor是从互联网下载的,可能是有恶意的——是的,知道了,谢谢苹果。
-
下载unc0ver的.ipa文件 - 前往unc0ver.dev,然后点击“Download v5.3.1”或在你阅读本文时它列出的任何版本。这将下载.ipa文件,这是最终越狱设备的应用程序。
-
通过USB连接你的iPhone并运行Cydia Impactor,你应该在顶部字段中看到你的iPhone的友好名称和UDID。在底部字段中,它可能显示“install Cydia impactor”,这不是我们要做的,暂时忽略它并且不要按开始!
-
将我们之前下载的unc0ver .ipa文件拖到Impactor的底部字段并放在那里。
-
放置文件后,会弹出一个框,要求输入你的iTunes电子邮件登录信息,输入你的Apple开发者账户电子邮件地址并按OK。
-
出现Apple ID密码框:如果你没有为开发者账户开启双重认证,可以在此处输入你的AppleID密码并按OK。
如果你输入了AppleID密码,但开启了双重认证并且失败了——没关系。继续阅读,但这是你会得到的错误。
如果你确实开启了双重认证,你需要前往appleid.apple.com并登录你的开发者账户。 登录后,你会看到一个账户仪表板。在“Security”部分找到“APP-SPECIFIC PASSWORDS”并点击“Generate Password…” 输入你即将生成的密码的标签——你在这里放什么完全无关紧要。点击“Create”。
将生成一个应用专用密码。复制该密码并粘贴到Cydia Impactor的密码框中。在Cydia Impactor上点击OK。
-
Cydia Impactor将运行应用程序安装过程,并且应该完成而没有任何错误。完成后,它会回到显示iDevice名称、UUID和“install Cydia Extender”的外观状态。
-
检查你的iPhone上是否有unc0ver应用程序和Cydia。
-
打开unc0ver应用程序。
-
选择屏幕左上角的设置齿轮。在设置中,将(Re)Install Open SSH切换为ON。这将允许我们在Mac和iPhone之间进行通信。选择右上角的“Done”并返回主屏幕。
-
按下“Jailbreak”按钮。在一段广告之后,你会得到一个弹出窗口,显示“Jailbreak Completed. No error occurred. The device will now reboot into the jailbroken state.” 按OK,设备将相当快地重启,你的设备现在已越狱!
checkra1n越狱方法
checkra1n越狱是基于checkm8引导ROM漏洞的半绑定越狱。checkm8漏洞于2019年9月被发现并公布。它揭示了一个漏洞,本质上允许对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进行越狱访问——无论操作系统版本如何,只要它是12.3或更高版本。如果你正在决定购买哪款iPhone专门用于测试和研究,我的建议是iPhone X。从技术上讲,iPhone 8与iPhone X同时发布,但iPhone X包含FaceID,这是当前大多数iPhone采用的解锁方法。如果你想进行TouchID特定测试,那么也许iPhone 8或8 Plus更有意义。我买了一台iPhone X和一台iPhone 8 Plus,以便在必要时两者都可用。如果你要购买两台测试设备,也许各买一台。本质上,受此漏洞影响的最旧手机将是苹果首先停止操作系统支持的手机。iPhone X是带有易受攻击芯片组的“最新”旧设备,因此最终将是苹果停止对其操作系统支持的最后一款设备。有传言称苹果可能已经找到了在iOS 14中对抗此漏洞的方法,但对于你知道所有密码的研究设备,一切应该仍然没问题。
如何对运行iOS 13.6.1、搭载A11处理器的iPhone X使用checkra1n进行越狱
-
在你的Mac上,在网页浏览器中访问checkra.in,向下滚动并点击“Download for macOS”,checkra1n .dmg文件将下载。
-
打开你的下载目录并双击checkra1n beta <版本>.dmg文件。在它打开磁盘映像后,将checkra1n应用程序拖放到应用程序文件夹中。
-
按下“command+空格键”并使用Spotlight搜索,输入“checkra1n”并选择该应用程序。
-
你可能会收到一个警告,说它无法打开,因为开发者无法被验证。点击Cancel。
-
点击屏幕左上角的苹果图标,然后点击System Preferences。点击“Security and Privacy”选项卡并打开它。你会在选项卡底部看到一条关于checkra1n被阻止的消息,点击“Open Anyway”。苹果会显示另一个弹出窗口,询问你是否真的确定要打开它,只需说是并点击Open第12次(开玩笑的)。checkra1n应用程序现已安装在你的Mac上。
-
再次按下“command+空格键”并使用Spotlight搜索,输入“checkra1n”并选择它。这次应用程序终于会打开。通常你会想连接你的设备并确保它受支持,但为了展示checkra1n的能力,我将我的测试设备升级到了最新的iOS版本 - 13.6.1(2020年8月21日)。窗口显示它不受支持。如果操作系统版本经过测试并受支持,你只需点击“Start”就可以了。对于我的iPhone X上肯定易受checkm8漏洞攻击的不受支持的操作系统版本,你可以点击“Options”并勾选“Allow untested iOS/iPadOS/tvOS versions”旁边的框。然后返回主屏幕并点击“Start”进行越狱。
-
在另一个针对在未经测试的操作系统版本上运行checkm8的警告之后,它前进到一个屏幕,说设备需要进入DFU模式。但首先它将设备置于恢复模式以避免任何文件系统损坏。
-
设备被置于恢复模式,checkra1n应用程序显示将设备置于DFU模式的说明。你需要严格按照checkra1n界面中的说明操作,设备应进入DFU模式。 点击Start。 同时按住侧边按钮和音量减小按钮(4秒) 释放侧边按钮但继续按住音量减小按钮(10秒)
-
如果操作正确,设备将前进到另一个屏幕,在那里进行漏洞利用和越狱。到达此屏幕后,你可以释放音量减小按钮。checkra1n界面将前进几个步骤,无需你进行任何操作。iPhone将显示一个带有checkra1n徽标的黑屏,然后启动进入操作系统。checkra1n界面将显示“All Done”,你可以点击“Done”返回主屏幕。解锁并打开iPhone,你应该看到checkra1n应用程序已安装。你的设备现在已越狱!
Mac设置 ✅ iPhone已越狱 ✅ 访问/研究 🚧 🧰 🚧
好的,我们现在有一个设置并准备就绪的Mac,一个处于越狱状态的iPhone,我们终于准备好访问手机及其数据了。接下来是你劳动的成果,也是向自己证明你最初需要购买新Mac和随机iPhone进行测试的理由!
在我们开始之前,请确保最后这几个细节是正确的:
- iPhone通过USB连接到Mac
- iPhone已解锁并与Mac建立了“信任”配对。当你连接到Mac并解锁iPhone时,你应该在iPhone上收到一个弹出窗口,询问是否信任该Mac。你必须信任与Mac的连接。
- iPhone显示屏设置为永不睡眠。设置 > 显示与亮度 > 自动锁定 > 永不。如果你正在从文件系统复制文件并且设备自动锁定,你可能会因为设备锁定与解锁时文件权限的变化而获得较少的数据。
好的,让我们通过Mac上的Terminal连接到iPhone!根据使用的越狱工具,连接到iPhone有一些细微差别,所以我将详细说明两者。对我来说,我经常在unc0ver和checkra1n上使用测试设备,所以我向你展示的是我在Mac上切换连接到不同设备时完全正常的情况。我们将使用iproxy在Mac和你的iPhone之间建立TCP连接。这将促进进入iPhone的shell,这样你就可以通过Mac浏览iPhone的文件系统!
-
打开一个新的Terminal窗口
-
在Terminal窗口中: unc0ver - 输入
iproxy 4242 22并按回车 checkra1n - 输入iproxy 4242 44并按回车 说明:iproxy是来自libimobiledevice的一个实用程序,我们使用它在端口号22或44建立TCP(4242)连接。unc0ver越狱设置为监听端口22(标准SSH),而checkra1n监听端口44。 按回车后,你的Terminal窗口将显示“waiting for connection”并带有闪烁的光标。 -
打开第二个Terminal窗口。要么右键单击Dock中的Terminal并选择“New Window”,要么简单地单击你第一个活动的Terminal窗口并按command+N创建一个新窗口。
-
在第二个Terminal窗口中,对于unc0ver和checkra1n:输入
ssh root@127.0.0.1 -p 4242并按回车。 说明:ssh是我们用来访问设备的网络协议,root是用户名,127.0.0.1是我们的本地主机,它连接到(-p)端口4242。 如果这是你第一次这样做,你会在第二个终端窗口中收到一个认证消息,询问你是否可以接受正在尝试的连接。跳到4.3 对我来说,我正在从访问unc0ver设备切换到checkra1n设备。所以我需要在建立连接之前进行一次调整。
4.1 如果你收到错误说“Offending RSA key in /Users/<用户名>/.ssh/known_hosts:1”,那么你需要从known_hosts文件中移除先前的ssh配对,以便这个新设备可以连接。所以如果你得到这个错误,它仅仅意味着你已经有一个用于127.0.0.1 -p 4242的SSH已知主机配对。要仅移除那个特定的配对,在你的第二个Terminal窗口中输入 ssh-keygen -R "[127.0.0.1]:4242" 并按回车。这将把先前的已知主机配对保存到一个新文件中,并为我们再次使用它清除空间。你可能会找到更好的管理ssh known_hosts的方法,但这只是方便我们快速连接iPhone而无需为此中断。(感谢Sarah提供了一个易于遵循的非破坏性方法!对于这个例子,我不得不切换到不同的窗口进行更改,所以接下来的几张照片将不会按顺序显示此步骤。)
4.2 在第二个Terminal窗口中,再次输入 ssh root@127.0.0.1 -p 4242 并按回车。(你也可以在第二个终端窗口中按UP箭头来回忆先前的命令,而不必再次输入相同的内容!)
4.3 在第二个Terminal窗口中,你会收到一条消息,询问你是否确定要继续连接。你必须输入yes并按回车。然后你会看到一个屏幕,要求输入密码。
-
在密码行中,输入
alpine并按回车。字母不会在你输入时显示,你没疯。嗯,至少此刻没有。 以这种方式连接iPhone的默认密码是alpine,并且已经有一段时间了。当我在第二个终端窗口中尝试这个时,我的连接意外关闭了。像这样的事情会发生,这不是什么大问题。我简单地按了向上箭头,再次运行我的ssh root@127.0.0.1 -p 4242,然后在密码行中输入alpine,它工作得很好! -
如果你看到类似“-bash-3.2#”或“Jane’s iPhone#”或任何内容——你现在已经获得了进入iPhone的root shell访问权限!暂停庆祝。
-
在第二个终端窗口中,现在它是进入你iPhone的shell,输入
ls -la并按回车。你应该看到/var/root/目录的列表,你现在有能力通过Terminal浏览iPhone的文件系统了!
这篇文章变得相当长,但我认为以极其简单、易于理解的方式阐述其中一些事情是很重要的,这样对过程某些方面不太自信的人也能达到这个阶段。能够更改iPhone上的目录、查看不同位置存在的文件、在屏幕上快速查看文件内容、将单个文件提取到Mac等等——这就是我们这样做的原因。
如果你对CLI稍微熟悉,请随意探索iOS设备的文件系统。如果你不熟悉,那也没关系!你会慢慢获得一些接触,并且随着我们的进行会变得更加舒适。我们的下一步将更深入地使用CLI来处理iPhone的文件系统。
结束事实:
一旦你成功进入iPhone的shell,我们打开的第一个运行iproxy的Terminal窗口基本上可以最小化并被遗忘,直到你需要再次连接设备,或者在测试期间遇到连接问题。
如果你使用了checkra1n,你的文件系统是以只读方式挂载的。如果你知道你在做什么,运行mount -o rw,union,update /将其重新挂载为读/写。 如果你选择越狱你的个人设备进行测试,你已经削弱了它的安全性并接受了某些风险。你应该将默认密码从alpine更改为你选择的内容。如果你这样做,你必须首先运行上面的mount命令将文件系统挂载为读/写。然后,你可以通过在root shell中键入passwd并按回车来更改密码。它会要求你输入新密码,然后确认,然后你不能忘记你选择的密码!对passwd mobile重复此过程。
如果你想了解更多关于如何加载文件系统监视器、查找应用程序目录以及从iPhone提取特定项目,而不是每次都进行备份或使用取证工具提取数据——请关注下一篇文章!
在那之前,“保持优雅,取证者们。”