探索ring0

内核漏洞概述

内核漏洞的分类

​ 运行在ring0上的操作系统内核、设备驱动、第三方驱动能共享同一个虚拟地址空间,可以完全访问系统空间的所有内存,而不像用户态进程那样拥有独立私有的内存空间。由于内核程序的特殊性,内核程序漏洞类型也更加丰富。

​ 可以从漏洞的严重程度和漏洞的利用原理两个角度来对内核漏洞进行分类。漏洞的严重程度是指漏洞利用后所造成的危害;漏洞的利用原理指漏洞利用过程中使用的原理和技术。

​ 按照漏洞严重程度依次可以分为:远程拒绝服务、本地拒绝服务、远程任意代码执行和本地权限提升。

  • 远程拒绝服务。指能够利用来使远程系统崩溃或资源耗尽的内核程序bug或缺陷。
  • 本地拒绝服务。指能够利用来使得本地系统崩溃或资源耗尽的内核程序bug或缺陷。

​ 另一方面,按照漏洞利用原理可以分为以下4类:拒绝服务、缓冲区溢出、内存篡改和设计缺陷。

​ 其中内存篡改又可以分为以下三个子类。

  • 任意地址写任意数据:指能够利用来向任意内核空间虚拟地址写入任意数据的内核程序Bug或缺陷。
  • 固定地址写任意数据:指能够利用来使得向固定内核空间的虚拟地址写入任意的内核程序bug或缺陷。
  • 任意地址写固定数据:指能够利用来使得向任意内核空间虚拟弟子写入固定数据的内核程序bug或缺陷。

21.3.2 内核漏洞的研究过程

​ 对于初学者来说(就是俺这样的),一个内核漏洞的学习过程可以总结为四个环节:漏洞重现、漏洞分析、漏洞利用和漏洞总结。如图21.3.5所示,展示了内核漏洞学习过程中四大环节可能涉及的工作。这四个环节环环相扣,每一个环节都很有难度,都值得去研究。只有通过这四个环节的学习和研究,才能不断地积累内核漏洞的经验,为后续的内核漏洞挖掘打下基础。

探索ring0-内核漏洞概述 和 实验环境配置

​ 漏洞重现环节。需要搭建测试环境,通常为虚拟机环境;另外需要注意有漏洞的内核或驱动文件的版本,如果版本不对是不可能重现的;还需要确认该漏洞暂时还未打补丁;最后,如果该漏洞有公布的POC源码,还需要对POC源码进行编译。在漏洞重构先环节中,如果最终重现失败,不能说明漏洞不存在,如果环境搭建的没有问题,那可以考虑是否POC源码有误,或者该漏洞还依赖于其他条件。因此,建议先进行漏洞分析环节,通过漏洞分析可以加深对漏洞的理解,这样边分析边重现,往往问题就迎刃而解了。从漏洞重现到漏洞分析是一个由表及里的过程。

​ 漏洞分析环节,是整个漏洞学习的核心环节,如果分不清漏洞的前因后果,那么漏洞利用也无从入手。漏洞分析其实是一个刨根究底的过程,也可以说是打破砂锅问到底的过程,只不过是问自己而已。漏洞分析有很多方法,如果有源码的话可以先对源码进行白盒分析;如果没有源码可以对内核或者驱动PE文件反汇编分析;如果漏洞公布中有POC源码的话,还可以对POC源码进行分析(通过阅读POC源码和注释,可以很快地对该漏洞有一个准确的认识);如果该漏洞的的补丁已经发布了,还可以在打补丁后,提取新版本的内核或驱动文件,通过对比进行分析;另外还可以通过给有漏洞的内核或者驱动文件下断点进行调试分析;如果能触发有漏洞的内核或者驱动蓝屏,还可以对蓝屏后的Memory Dump文件进行蓝屏分析。这些方法将在下节中介绍。

​ 漏洞利用环节,是在漏洞分析的基础上,编写出能够利用该漏洞实现特定目标的代码,并进行测试的过程。对于内核漏洞利用而言,主要有5种目标:特权特升、远程溢出、本地溢出、远程DOS和本地DOS。在实际漏洞利用过程中,最终达到的目标不外乎这5种,但是漏洞利用的细节各有不同。

​ 漏洞总结环节,实在完成了漏洞重现、漏洞分析和漏洞利用过程后,回过头来审视造成该漏洞的根本原因,并提出修补方法的过程。如果把以上环节比喻为攻击,那么漏洞总结必须站在攻击与防御的对立面,才能有所题会和感悟,才能寻求到突破。通过漏洞总结,能够将学习过程中获得到的知识升华为一种经验和能力。

​ 以上总结了内核漏洞的学习过程,当积累了一定的知识和经验就可以去尝试内核漏洞挖掘。

环境配置

​ 接下来继续是环境配置,之前驱动开发的时候配好了Win7 64位的调试环境。看了本书的系统应该是xp的,包括后续要复现一下,将Win7 32位的也配置了一下。

https://www.microsoft.com/en-us/download/confirmation.aspx?id=11800 这里下载WDK 7.1

主要是为Windows XP 驱动编译服务的,比较特殊。后续的版本的驱动使用VS编译即可。

https://pan.baidu.com/s/1dFykgH7?fid=74623461367457 这里贴出 Windows XP 32的下载地址

https://www.imsdn.cn/operating-systems/windows-7/ 贴出Win7 32位的下载地址

然后后续Win7的环境配置可以看之前的帖子里提到的,Win Xp的跟着书来就可以了!

明日计划

内核漏洞利用技术 实验做起来

相关文章:

  • 2021-12-07
  • 2021-05-21
  • 2021-06-01
  • 2021-09-10
  • 2021-06-29
  • 2021-08-23
  • 2021-06-10
  • 2021-05-01
猜你喜欢
  • 2022-12-23
  • 2021-07-02
  • 2022-03-03
  • 2022-12-23
  • 2021-05-13
  • 2021-09-10
  • 2021-06-19
相关资源
相似解决方案