首页
社区
课程
招聘
[求助]关于iOS漏洞利用时用户层向内核层传递攻击载荷的问题
发表于: 2017-3-31 21:50 3451

[求助]关于iOS漏洞利用时用户层向内核层传递攻击载荷的问题

2017-3-31 21:50
3451

  最近准备调试下三叉戟漏洞利用的4655和4656这两个漏洞,4655是个信息泄漏漏洞,4656是个两次释放漏洞。这篇报告比较详细的给出了这两个漏洞的利用情况--https://info.lookout.com/rs/051-ESQ-475/images/pegasus-exploits-technical-details.pdf。

    根据这篇报告的描述,在进行两次释放内核漏洞利用前,攻击程序需要把ropchain放入内核之中,但这里我是真心的不能理解报告中的描述。按照报告中的描述,攻击程序会利用一下代码段将ropchain放入内核中:

 int ret = syscall(SYS_open_extended, lockfile, O_WRONLY | O_EXLOCK, KAUTH_UID_NONE, KAUTH_GID_NONE, 0644, p + 0xEC0);

    assert(ret != -1);

其中p+0xEC0指向kauth_filesec结构体,而kauth_filesec结构体中则包含了ropchain。而syscall将载荷写入内核的原理是由于open_extend中的如下代码:

if ((uap->xsecurity != USER_ADDR_NULL) &&

    ((ciferror = kauth_copyinfilesec(uap->xsecurity, &xsecdst)) != 0))

return ciferror;

其中kauth_copyinfilesec比较重要,它的关键代码是这两句:

           copysize = KAUTH_FILESEC_SIZE(count);

  if ((error = copyin(xsecurity, (caddr_t)fsec, copysize)) != 0)

goto out;

xsecurity就是我们传进来的攻击载荷,复制到fsec里面,所以我现在的问题是,攻击程序是如何通过信息泄露漏洞得到fsec的地址的,很纠结。。。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//