首页
社区
课程
招聘
[原创] CVE-2019-8660 iMessage 漏洞复现
发表于: 2019-8-3 18:35 11157

[原创] CVE-2019-8660 iMessage 漏洞复现

2019-8-3 18:35
11157

近期谷歌的研究人员披露了 5 个 iOS 中安全漏洞,并公布了 POC(Proof of concept),攻击者利用这些漏洞可以通过 iMessage 发送精心设计的消息来攻击 iOS 设备,这些漏洞不需要和任何用户交互,只要目标机 iMessage 信息接收成功即可触发漏洞。

CVE-2019-8660、 CVE-2019-8662、 CVE-2019-8647 这三个漏洞可以导致系统重启,或者任意代码执行。

CVE-2019-8646 这个漏洞可以导致任意文件读取,比如发送 iMessage 信息到目标机,可以获取到目标机的照片。

CVE-2019-8641 这个漏洞由于在最新的 12.4 系统上未修复,所以并未公布具体细节。其他 4 个漏洞已经在 12.4 修复。

首先是要复现漏洞,以 CVE-2019-8660 为例,其他几个漏洞的复现方式类似。在测试之前,请打开 iOS 设备上的 iMessage 的消息接收,方法是点击设置 -> 信息 -> 打开 iMessage 信息开关。下面是复现漏洞的具体步骤:

(1) 安装 python3

(2) 安装 frida

(3) 下载并解压 POC,下载地址是: https://bugs.chromium.org/p/project-zero/issues/attachment?aid=398583&signed_aid=aRa647CnzpRUCj7nXIOEKA==

(4) 将 sendMessage.py 里的 receiver 替换成目标邮箱地址

(5) 将 injectMessage.js 里的 obj 文件的路径填写成你本机的

(7) 最后执行 sendMessage.py 发送 iMessage,只要目标机接收到 iMessage 消息即可以触发漏洞,并不需要点击查看。

触发漏洞的目标机重启之后,打开短信应用会闪退,原因是之前测试的那条带漏洞的 iMessage 消息还存在,会被短信应用加载,加载错误就闪退了。解决的方法是给目标机多发送几条正常的信息,这样会覆盖掉带漏洞的短信,然后在搜索栏输入关键字定位到有问题的短信,删除即可。

POC 的实现原理是使用 AppleScript 调用 macOS 的信息应用对目标发送 iMessage 消息,其中使用 frida 对 jw_encode_dictionary_addr 函数进行 Hook,修改原始的消息体结构。在 injectMessage.js 里有构造带有漏洞的 iMessage 消息体的代码,核心代码如下:

iMessage 的消息内容是在 sendMessage.py,我们可以替换 REPLACEME 发送自定义的消息

然后在 injectMessage.js 中也需要将 REPLACEME 保持和自定义的消息内容一致

参考资料:

https://bugs.chromium.org/p/project-zero/issues/detail?id=1884

https://bugs.chromium.org/p/project-zero/issues/detail?id=1874


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-8-3 18:48 被暗夜盗魔编辑 ,原因:
收藏
免费 4
支持
分享
最新回复 (3)
雪    币: 94
活跃值: (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
厉害 叼咋天
2019-8-3 18:50
1
雪    币: 297
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
搞ios的多吗
2019-8-5 01:34
0
雪    币: 2083
活跃值: (919)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
4
这个我测试完了以后就一直重启了呀,发送其它信息好像也不管用?
2019-8-9 11:53
0
游客
登录 | 注册 方可回帖
返回
//