zoukankan      html  css  js  c++  java
  • 内核漏洞利用技术

    有漏洞的驱动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之门系列》 四篇:

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

  • 相关阅读:
    Linux 使用crontab定时备份Mysql数据库
    pdf.js 文字丢失问题 .cmaps
    indexOf IE8下的兼容
    Huplaodfiy---图片文件上传插件修改
    dateTimePicker日期时间插件-----限定节假日调休的可选择性
    【转】MyEclipse第一个Servlet程序
    input 的 placeholder属性在IE8下的兼容处理
    zepto的scrollTo,实现锚点跳转
    微信小程序
    mac 终端中添加tree命令显示文件目录结构
  • 原文地址:https://www.cnblogs.com/Ccmr/p/7363474.html
Copyright © 2011-2022 走看看