iOS Pentesting without Jailbreak
Reading time: 6 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
主要思想
使用 entitlement get_task_allow
签名的应用程序允许第三方应用程序运行一个名为 task_for_pid()
的函数,参数为初始应用程序的进程 ID,以便获取其任务端口(能够控制它并访问其内存)。
然而,这并不像简单地提取 IPA、使用该权限重新签名并将其刷回设备那么简单。这是因为 FairPlay 保护。当应用程序的签名更改时,DRM(数字版权管理)密钥会 失效,应用程序将无法工作。
在旧的越狱设备上,可以安装 IPA,使用你喜欢的工具进行解密(例如 Iridium 或 frida-ios-dump),然后将其提取回设备上。尽管如此,如果可能的话,建议直接向客户请求解密后的 IPA。
获取解密的 IPA
从 Apple 获取
- 在 iPhone 上安装要进行渗透测试的应用程序
- 在你的 macos 上安装并启动 Apple Configurator
- 在你的 Mac 上打开
Terminal
,并 cd 到/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
。稍后 IPA 将出现在此文件夹中。 - 你应该能看到你的 iOS 设备。双击它,然后点击顶部菜单栏中的 Add + → Apps。
- 点击 Add 后,Configurator 将从 Apple 下载 IPA,并尝试将其推送到你的设备。如果你之前遵循了我的建议并已安装 IPA,将会出现提示要求你重新安装应用程序。
- IPA 应该下载到
/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
,你可以从那里获取它。
查看 https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed 以获取有关此过程的更多详细信息。
解密应用程序
为了解密 IPA,我们将安装它。然而,如果你有一部旧的越狱 iPhone,可能其版本不被应用程序支持,因为通常应用程序只支持最新版本。
因此,为了安装它,只需解压 IPA:
unzip redacted.ipa -d unzipped
检查 Info.plist
以获取最低支持版本,如果您的设备早于该版本,请更改该值以使其受支持。
将 IPA 压缩回去:
cd unzipped
zip -r ../no-min-version.ipa *
然后,使用以下命令安装IPA:
ideviceinstaller -i no-min-version.ipa -w
请注意,您可能需要从 Cydia 安装 AppSync Unified tweak 以防止任何 invalid signature
错误。
安装后,您可以使用 Cydia 中的 Iridium tweak 来获取解密的 IPA。
修补权限和重新签名
为了使用 get-task-allow
权限重新签名应用程序,有几种可用的工具,如 app-signer
、codesign
和 iResign
。app-signer
具有非常用户友好的界面,可以非常轻松地重新签名 IPA 文件,指明要重新签名的 IPA、将其设置为 get-task-allow
以及要使用的证书和配置文件。
关于证书和签名配置文件,Apple 通过 Xcode 为所有账户提供 免费的开发者签名配置文件。只需创建一个应用并配置一个。然后,通过导航到 Settings
→ Privacy & Security
,点击 Developer Mode
来配置 iPhone 以信任开发者应用。
使用重新签名的 IPA,现在可以将其安装到设备上进行渗透测试:
ideviceinstaller -i resigned.ipa -w
Hook
您可以使用常见工具如 frida 和 objection 轻松地挂钩您的应用程序:
objection -g [your app bundle ID] explore
参考
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。