您的位置:首页 > 其它

内核漏洞利用技术

2020-07-14 06:29 591 查看

有漏洞的驱动exploitme.sys

在Ring3可以通过设备名称“\\.\ExploitMe”打开设备,得到设备句柄,进而使用DeviceIoControl函数调用驱动的派遣例程,与驱动进行交互。

输入、输出地址都是由Ring3程序指定,读写是在Ring0中完成。因此Ring3可以将输出缓冲区地址指定为内核高端地址,可以篡改内核中任意地址的数据。

内核漏洞利用思路

能够篡改系统内核内存数据或执行Ring0 Shellcode的漏洞,主要为三种:任意地址写任意数据,固定地址写任意数据,任意数据和任意地址写固定数据类型的内核漏洞。

内核漏洞利用方法

1、篡改内核内存数据。2、执行Ring0 Shellcode

 ProfileSource不为ProfileTime或者ProfileAlignmentFixup 就是我们想要的了

内核漏洞利用实战与编程

Explitme.sys漏洞:存在于对IOCTL_EXPLOIT_ME的IoControlCode处理过程。由于IOCTL_EXPLOIT_ME最后两位为3,代表所使用的通信方式为METHOD_NEITHER方式,派遣例程中没有使用ProbeForRead和ProbeForWrite探测输入输出地址是否可读,可写。

1.获取HalDispatchTable表地址x

  HalDispatch Table 是由内核模块导出的。得到他在内核中的准确地址,首先要得到内核模块的基地址,再加上HalDispatchTable与内核模块基址的偏移

2.在0x0处申请一段内存,并写入Ring0 Shellcode

3.利用漏洞向地址y写入0x0

4.调用NtQueryIntervalProfile函数

5.Ring0 Shellcode被执行

Ring0 Shellcode的编写

提权到SYSTEM:

恢复内核Hook/Inline Hook:

添加调用门,中断门,任务门,陷阱门《rootkit ring3进ring0之门系列》 四篇:

内核方面 以后涉及到了,再学吧

 

转载于:https://www.cnblogs.com/Ccmr/p/7363474.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: