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之门系列》 四篇:

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

  • 相关阅读:
    1.27
    1.25
    Representation Learning with Contrastive Predictive Coding
    Learning a Similarity Metric Discriminatively, with Application to Face Verification
    噪声对比估计(负样本采样)
    Certified Adversarial Robustness via Randomized Smoothing
    Certified Robustness to Adversarial Examples with Differential Privacy
    Dynamic Routing Between Capsules
    Defending Adversarial Attacks by Correcting logits
    Visualizing Data using t-SNE
  • 原文地址:https://www.cnblogs.com/Ccmr/p/7363474.html
Copyright © 2011-2022 走看看