iOS Mail 客户端漏洞很可能已经被远程利用

文章探讨了iOS默认邮件应用中的远程堆溢出漏洞,证实了其可被远程利用的可能性,包括远程触发、代码执行和权限提升。通过分析野外观察到的触发器示例,揭示了漏洞的攻击性能,并提出利用方法。虽然尚未发现信息泄漏,但攻击者可能通过其他进程如iMessage实现信息泄露。文章还呼吁苹果改进日志系统以助于调查设备入侵。
摘要由CSDN通过智能技术生成

iOS Mail 客户端漏洞很可能已经被远程利用

在ZecOps 团队宣布在iOS的默认邮件应用程序中发现RCE漏洞之后,已经有很多用户联系了他们,他们怀疑自己成为了这个漏洞的攻击目标。

在这篇文章中,我们将介绍一种简单的方法来喷洒堆,通过这种方法,我们可以证明远程利用这个漏洞是可能的。除此之外,我们还将提供两个在野外观察到的触发器示例。

目前,我们已经发现了该漏洞具有以下攻击性能:

1.邮件应用程序中的远程堆溢出;

2.能够通过传入邮件由攻击者控制的输入内容来远程触发漏洞;

3.改变代码执行的能力;

4.事实提升访问内核的权限;

不过,我们并没有发现该漏洞可以泄漏消息,但让人感到惊讶是,奇热信息泄漏并不是存在于邮件中,而是存在于其他过程中。因为dyld_shared_cache是通过大多数进程共享的,因此信息泄漏漏洞不一定必须存在于MobileMail中,例如iMessage的CVE-2019-8646也可以远程实现这个功能,这就打开了额外的攻击面(Facetime、其他应用、iMessage等)。本文,我们会远程利用这个漏洞所具有的所有特性。尽管如此,我们还是要做以下说明:

1.我们无意公开LPE,它允许我们在需要时对A12及更高版本的设备执行文件系统提取或内存检查。你可以在FreeTheSandbox.org 上了解更多关于移动设备的漏洞信息。

2.我们还没有在野外看到对本地特权升级(LPE)漏洞的利用

我们还将分享我们在野外看到的两个触发器示例,并让你做出自己的推断和结论。

MailDemon赏金

最后,对于那些能够证明他们遭到攻击的示例,我们将提供赏金。

iOS Mail 客户端漏洞很可能已经被远程利用

利用MailDemon

如前所述,MailDemon是一个很好的利用对象,因为它覆盖了MALLOC_NANO内存区域的模块,而MALLOC_NANO内存区域存储了大量的Objective-C对象。因此,它允许攻击者操纵已被攻击对象的ISA指针(允许他们引起类型混淆)或重写函数指针来控制进程的代码流,这是接管受影响过程的可行方法。

堆喷和堆整理技术

为了控制代码流,需要进行堆喷射以将制作的数据放入内存中。使用包含“dealloc”方法的伪方法缓存的伪造类,我们可以使用此方法触发漏洞后控制程序计数器(PC)寄存器。

下面是测试POC时生成的部分崩溃日志:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: EXC_ARM_DA_ALIGN at 0xdeadbeefdeadbeef
VM Region Info: 0xdeadbeefdeadbeef is not in any region.  Bytes after previous region: 16045690973559045872  
      REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_NANO            0000000280000000-00000002a0000000 [512.0M] rw-/rwx SM=PRV  
--->  
      UNUSED SPACE AT END
 
Thread 18 name:  Dispatch queue: com.apple.CFNetwork.Connection
Thread 18 Crashed:
0   ???                               0xdeadbeefdeadbeef 0 + -2401053088876216593
1   libdispatch.dylib                 0x00000001b7732338 _dispatch_lane_serial_drain$VARIANT$mp  + 612
2   libdispatch.dylib                 0x00000001b7732e74 _dispatch_lane_invoke$VARIANT$mp  + 480
3   libdispatch.dylib                 0x00000001b773410c _dispatch_workloop_invoke$VARIANT$mp  + 1960
4   libdispatch.dylib                 0x00000001b773b4ac _dispatch_workloop_worker_thread  + 596
5   libsystem_pthread.dylib           0x00000001b796a114 _pthread_wqthread  + 304
6   libsystem_pthread.dylib           0x00000001b796ccd4 start_wqthread  + 4
 
 
Thread 18 crashed with ARM Thread State (64-bit):
    x0: 0x0000000281606300   x1: 0x00000001e4b97b04   x2: 0x0000000000000004   x3: 0x00000001b791df30
    x4: 0x00000002827e81c0   x5: 0x0000000000000000   x6: 0x0000000106e5af60   x7: 0x0000000000000940
    x8: 0x00000001f14a6f68   x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值