欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何在QEMU上执行iOS并启动一个交互式bash shell,内含整个安装流程并且提供了相关工具(一)

来源:本站整理 作者:佚名 时间:2019-07-10 TAG: 我要投稿

我们本次研究的目的是让iOS系统在无需事先或在启动过程中修复内核的情况下顺利启动,使用新模块扩展QEMU执行arm64 XNU系统的功能,并获得交互式bash shell。我们会在本文中介绍如何在QEMU上执行iOS并启动一个交互式bash shell。在第二篇文章中,我们将详细介绍为实现这些目标所进行的一些研究。在本次研究中,我们选择的iOS版本和设备是iOS 12.1和iPhone 6s Plus,因为与通常删除大多数符号的其他iOS内核映像相比,这个特定的iOS 12映像在内核映像中导出了许多符号。这带来了一些更大的挑战,因为它是一个使用安全监控器映像的非KTRR设备(Kernel Text Readonly Region,内核文本只读区域)。需要说明的是本文的研究是在这个项目的研究基础上进行的。另一个变化是我希望这个功能在外部模块中,以后可以扩展并用于为其他iOS设备和版本创建模块,而不是将代码放在核心QEMU代码中。
原有项目的介绍
你可以点此,获取包含qemu-scripts-aleph-git所需的脚本。该脚本允许使用只读安装的ram盘启动到用户模式,可以添加新的可执行文件和启动项(启动之前),并且通过模拟UART通道与用户通信,还可以使用复制到ram盘的主盘映像中的dyld缓存进行通信。以下是使用原有项目运行交互式bash shell的演示过程:

这使你可以使用你选择的任何权限执行你想要的任何用户模式进程,并使用内核调试器调试进程或内核:

原有项目的一些限制:
1.在安装ram盘之前,有一个很长的挂起过程(大概几秒);
2.该面目的方法仅适用于以只读方式安装的ram盘映像,并且大小最高为2GB;
3.我们只能通过UART与Guest iOS通信,目前没有其他通信渠道可用;
4.没有基本的硬件支持:屏幕,触摸,wifi,BT或其他任何东西;
5.目前仅支持单个CPU的模拟。
改进过程
要启动该过程,我们首先需要准备内核映像、安全监控器映像,设备树(device tree),静态信任缓存和ram盘映像。要获取映像,我们需要首先获取iOS 12.1更新文件。这实际上是一个zip文件,我们可以提取的内容如下:
Downloads jonathanafek$ unzip iPhone_5.5_12.1_16B92_Restore.ipsw
Archive:  iPhone_5.5_12.1_16B92_Restore.ipsw
   creating: Firmware/
  inflating: Restore.plist          
   creating: Firmware/usr/
   creating: Firmware/usr/local/
  inflating: BuildManifest.plist    
  inflating: Firmware/Mav10-7.21.00.Release.plist 
   creating: Firmware/all_flash/
  inflating: Firmware/all_flash/DeviceTree.n66ap.im4p.plist 
  inflating: Firmware/all_flash/LLB.n56.RELEASE.im4p 
  inflating: Firmware/all_flash/batterylow1@3x~iphone.im4p 
  inflating: Firmware/all_flash/batterycharging0@3x~iphone.im4p 
  inflating: Firmware/all_flash/LLB.n66.RELEASE.im4p 
  inflating: Firmware/all_flash/sep-firmware.n56.RELEASE.im4p.plist 
  inflating: Firmware/all_flash/iBoot.n56.RELEASE.im4p.plist 
  inflating: Firmware/all_flash/batteryfull@3x~iphone.im4p 
  inflating: Firmware/all_flash/iBoot.n66m.RELEASE.im4p 
  inflating: Firmware/all_flash/iBoot.n56.RELEASE.im4p 
  inflating: Firmware/all_flash/DeviceTree.n66ap.im4p 
  inflating: Firmware/all_flash/sep-firmware.n66m.RELEASE.im4p.plist 
  inflating: Firmware/all_flash/applelogo@3x~iphone.im4p 
  inflating: Firmware/all_flash/recoverymode@1920~iphone-lightning.im4p 
   creating: Firmware/dfu/
  inflating: Firmware/dfu/iBSS.n56.RELEASE.im4p.plist 
  inflating: Firmware/all_flash/glyphplugin@1920~iphone-lightning.im4p 
  inflating: Firmware/all_flash/batterylow0@3x~iphone.im4p 
  inflating: Firmware/dfu/iBEC.n66m.RELEASE.im4p.plist 
  inflating: Firmware/dfu/iBSS.n66.RELEASE.im4p 
  inflating: Firmware/048-32459-105.dmg.trustcache 
  inflating: Firmware/dfu/iBSS.n66m.RELEASE.im4p 
  inflating: Firmware/dfu/iBEC.n56.RELEASE.im4p.plist 
  inflating: Firmware/all_flash/sep-firmware.n56.RELEASE.im4p 
  inflating: Firmware/Mav13-5.21.00.Release.bbfw 
  inflating: Firmware/all_flash/sep-firmware.n66m.RELEASE.im4p 
  inflating: Firmware/all_flash/LLB.n66m.RELEASE.im4p.plist 
  inflating: Firmware/all_flash/iBoot.n66.RELEASE.im4p.plist 
  inflating: Firmware/dfu/iBSS.n56.RELEASE.im4p 
  inflating: Firmware/all_flash/DeviceTree.n66map.im4p.plist 
  inflating: Firmware/all_flash/DeviceTree.n56ap.im4p.plist 
  inflating: Firmware/all_flash/LLB.n66.RELEASE.im4p.plist 
   creating: Firmware/AOP/
  inflating: Firmware/AOP/aopfw-s8000aop.im4p 
  inflating: Firmware/dfu/iBEC.n56.RELEASE.im4p 

[1] [2] [3] [4] [5] [6] [7] [8]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载