iOS Basic Testing Operations
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
为了唯一识别 iOS 设备,使用一个称为 UDID 的 40 位序列。在 macOS Catalina 或更新版本中,可以在 Finder 应用中找到,因为 iTunes 不再存在。设备通过 USB 连接并在 Finder 中选择后,点击其名称下的详细信息即可显示其 UDID 及其他信息。
对于 Catalina 之前的 macOS 版本,iTunes 方便地发现 UDID。详细说明可以在 这里 找到。
命令行工具提供了获取 UDID 的替代方法:
使用 I/O Registry Explorer 工具 ioreg
:
使用 ideviceinstaller
进行 macOS(和 Linux):
利用 system_profiler
:
使用 instruments
列出设备:
SSH 访问 通过在越狱后安装 OpenSSH 包 来启用,允许通过 ssh root@<device_ip_address>
进行连接。更改用户 root
和 mobile
的默认密码 (alpine
) 对于保护设备至关重要。
在没有 Wi-Fi 的情况下,通过 USB 的 SSH 变得必要,使用 iproxy
来映射设备端口以进行 SSH 连接。通过运行以下命令,可以通过 USB 启用 SSH 访问:
设备上的 shell 应用程序,如 NewTerm 2,便于直接与设备交互,特别适用于故障排除。反向 SSH shell 也可以建立,以便从主机计算机进行远程访问。
要将忘记的密码重置为默认值(alpine
),需要编辑 /private/etc/master.passwd
文件。这涉及将现有哈希替换为 root
和 mobile
用户条目旁边的 alpine
哈希。
通过 SSH 和 SCP 进行归档和检索: 使用 tar
归档应用程序的 Data 目录,然后使用 scp
进行传输是简单的。下面的命令将 Data 目录归档为 .tgz 文件,然后从设备中提取:
使用 iFunbox 和 iExplorer: 这些 GUI 工具对于管理 iOS 设备上的文件非常有用。然而,从 iOS 8.4 开始,苹果限制了这些工具对应用程序沙箱的访问,除非设备越狱。
使用 Objection 的交互式 Shell: 启动 objection 可以访问应用的 Bundle 目录。从这里,您可以导航到应用的 Documents 目录并管理文件,包括下载和上传文件到 iOS 设备。
无线分发(OTA)链接: 通过OTA分发进行测试的应用可以使用ITMS服务资产下载工具下载,该工具通过npm安装并用于将IPA文件保存到本地。
从IPA文件: 解压IPA以访问解密的应用程序二进制文件。
从越狱设备: 安装应用程序并从内存中提取解密的二进制文件。
手动解密概述: iOS应用程序二进制文件由Apple使用FairPlay加密。要进行逆向工程,必须从内存中转储解密的二进制文件。解密过程涉及检查PIE标志、调整内存标志、识别加密部分,然后转储并用其解密形式替换该部分。
检查和修改PIE标志:
识别加密部分并转储内存:
使用 otool
确定加密部分的起始和结束地址,并使用 gdb 从越狱设备转储内存。
覆盖加密部分:
用解密的转储替换原始应用程序二进制文件中的加密部分。
最终解密: 修改二进制文件的元数据以指示没有加密,使用工具如 MachOView,将 cryptid
设置为 0。
frida-ios-dump 工具用于 自动解密和提取 iOS 设备上的应用。首先,必须配置 dump.py
以连接到 iOS 设备,这可以通过 iproxy 在本地主机的 2222 端口或直接通过设备的 IP 地址和端口完成。
可以使用以下命令列出安装在设备上的应用:
要转储特定应用程序,例如 Telegram,可以使用以下命令:
该命令启动应用程序转储,导致在当前目录中创建一个 Telegram.ipa
文件。此过程适用于越狱设备,因为可以使用像 ios-deploy 这样的工具重新安装未签名或伪签名的应用程序。
flexdecrypt 工具及其包装器 flexdump 允许从已安装的应用程序中提取 IPA 文件。在设备上安装 flexdecrypt 的命令包括下载并安装 .deb
包。可以使用 flexdump 列出和转储应用程序,如下命令所示:
bagbak,另一个基于Frida的工具,需要越狱设备进行应用解密:
r2flutch,利用radare和frida,服务于应用程序的解密和转储。更多信息可以在其GitHub页面找到。
侧载是指在官方App Store之外安装应用程序。此过程由installd守护进程处理,并要求应用程序使用Apple签发的证书进行签名。越狱设备可以通过AppSync绕过此限制,允许安装伪签名的IPA包。
Cydia Impactor:用于在iOS上签名和安装IPA文件以及在Android上安装APK文件的工具。指南和故障排除可以在yalujailbreak.net找到。
libimobiledevice:用于Linux和macOS与iOS设备通信的库。提供了通过USB安装应用程序的ideviceinstaller的安装命令和使用示例。
ipainstaller:此命令行工具允许在iOS设备上直接安装应用程序。
ios-deploy:对于macOS用户,ios-deploy可以从命令行安装iOS应用程序。解压IPA并使用-m
标志直接启动应用程序是该过程的一部分。
Xcode:使用Xcode通过导航到Window/Devices and Simulators并将应用程序添加到Installed Apps来安装应用程序。
要在iPhone或iPod touch设备上安装特定于iPad的应用程序,需要将Info.plist文件中的UIDeviceFamily值更改为1。然而,此修改需要重新签名IPA文件,因为存在签名验证检查。
注意:如果应用程序要求使用较新iPad型号专有的功能,而使用的是较旧的iPhone或iPod touch,则此方法可能会失败。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)