首页
社区
课程
招聘
[原创]HEVD学习笔记之任意地址写入
发表于: 2021-11-8 20:38 11097

[原创]HEVD学习笔记之任意地址写入

2021-11-8 20:38
11097

实验环境与HEVD介绍请看:HEVD学习笔记之概述

这种漏洞之所以存在,是因为没有对要修改保存内容的地址进行检查,看看这个地址中的内容是否可以被更改。又由于在内核中,程序拥有的权限可以让它修改任意地址中的内容,所以它可以将保存了系统函数的地址作为输出地址来修改这个函数的地址。

详细内容请看:0day书中内核漏洞exploitme.sys的学习记录

HEVD中存在任意地址写入漏洞的是函数地址表中的第三个函数,所以IOCTL等于0x222003 + 2 * 4。

要触发该漏洞,只需要将IRP的指针入栈以后调用ArbitraryWriteIoCtrl函数。

而在ArbitraryWriteIoCtrl函数中,函数会将输入缓冲区的地址取出入栈,随后调用TriggerArbitraryWrite函数来触发漏洞。

在该函数中,首先会对输入缓冲区的前8字节的数据进行检查是否可读,随后就将这8字节的数据取出,分别赋值到edi和ebx中。

随后程序就会将ebx保存的地址中的内容赋值为edi保存的地址中的内容。

由此可以知道这段代码做的事情就是将输入缓冲区前4字节保存的地址中的内容赋给输入缓冲区后4字节保存的地址中的内容。由于整个过程并没有对输入缓冲区后4字节保存的地址进行可写检查,所以完全可以利用该漏洞实现提权。


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

最后于 2022-1-20 18:23 被1900编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//