为什么学?
如果你想在操作系统上为所欲为,为所欲为,为所欲为重要事情说三遍,那么学习内核漏洞利用,就是你最好的选择。或者你有下列想法,那么通过举一反三,也是可以做到的。
1.获取NT权限,既系统最高权限。
2.制作Rootkit(隐藏进程,网络流量等等),维持系统权限。
3.把杀毒给停了。
4.截获聊天信息。
5.想开发远程Exploit。
怎么学?
该系列文章会通过漏洞复现,漏洞原理,利用代码,修复方式或防护措施四个步骤来学习漏洞知识。在此将会介绍一个HEVD驱动(HackSysExtremeVulnerableDriver)程序来学习内核下的漏洞利用开发和原理。HEVD驱动是一个存在漏洞的驱动程序,我们可以通过这个驱动一站式学习一系列的漏洞触发原因以及修复方式,其中利用程序如图所示。是不是很丰富。那么接下来开始我们的学习吧!
该系列由如下内容组成:
1.内核漏洞利用轻松学系列之-环境配置
2.内核漏洞利用轻松学系列之-操作系统知识
3.内核漏洞利用轻松学系列之-驱动入门知识
4.内核漏洞利用轻松学系列之-Stack Overflow 栈溢出漏洞
5.内核漏洞利用轻松学系列之-Stack Overflow GS 栈溢出漏洞
5.内核漏洞利用轻松学系列之-Double Fetch 双重获取漏洞(竞争条件)
6.内核漏洞利用轻松学系列之-Use After Free 释放重用
7.内核漏洞利用轻松学系列之-Type Confusion 类型混淆
8.内核漏洞利用轻松学系列之-Integer Overflow 整数溢出
9.内核漏洞利用轻松学系列之-Pool Overflow 池溢出
10.内核漏洞利用轻松学系列之-Null Pointer Dereference 空指针解引用
11.内核漏洞利用轻松学系列之-Arbitrary Memory Overwrite 任意写
12.内核漏洞利用轻松学系列之-Insecure Kernel File Access
13.内核漏洞利用轻松学系列之-Uninitialized Heap Variable 未初始化堆变量
14.内核漏洞利用轻松学系列之-Uninitialized Stack Variable 未初始化栈变量
15.内核漏洞利用轻松学系列之-32位到64位利用代码转换
16.内核漏洞利用轻松学系列之-防护技术总结
资源:
● HackSysExtremeVulnerableDriver (hacksysteam) – 此处
● VirtualKD- 此处
● VirtualKD-Redux(Wmware15.5需要用)- 此处
● OSR驱动加载器 – 此处
● WINDBG – 此处
● VMWARE15.5 + WINDOWS WIN7 SP1 32 – Vmware此处 Windows WIN7 sp1 此处
● VMWARE15.5 + WIN10 + VISUAL STUDIO2019 + WDK 10 作为编译环境HEVD驱动 – WDK Windows WIN10
环境搭建
1.安装Vmware15.5。
2.在Vmware上安装Windows win7 sp1 32,注意是32位。
3.在win7 sp1上将VirtualKD的target拷贝到目标,运行vminstall.exe安装VirtualKD,安装完毕后出现下图所示。
4.在Vmware上安装Windows10 + WDK 10 + SDK,注意,WDK必须和SDK兼容,否则安装WDK会提示找不到兼容的SDK,我的SDK和WDK都为10.0.19041.0。从Windows Vista开始,所有64位版本的Windows都需要驱动程序代码为驱动程序加载数字签名。
5.物理机器上安装Windbg。
6.物理机器打开VirtualKD,会看到下图所示。
7.在物理机器的VirtualKD程序界面上打开debugger path选择好刚安装的Windbg程序。注意Windbg和操作系统位数要一致。
8.重启Win7 sp1,系统会卡在系统登录界面,接下来在物理机器的VirtualKD点击Run Debugger。物理机会打开Windbg并且连接到Win7 sp1。
8.在WIN10上编译HEVD.sys。打开项目目录\Driver\HEVD\Windows\HEVD.sln,编译前,需要设置项目属性:
8.1 右键-属性-C/C++ – 警告等级 设置为等级3(/W3)
8.2 将警告视为错误 改为 否(/WX-)
8.3 代码生成 -安全检查 改为 禁用安全检查(/GS-)
8.4 链接器 – 将连接器警告视为错误 改为 否(/WX:NO)
9.将编译好的HEVD.sys拷贝到WIN7 SP1,打开OSR驱动加载器,分别点击Register和start Service。
10.Windbg中使用lm查看成功加载的HEVD驱动。
11.在WIN10上编译Exploit\HackSysEVDExploit.sln。编译前需要设置项目属性:C/C++ -> Code generation -> Runtime Library改为Multi-threaded Debug (/MTd),这么做是将等待链接库一起打包到程序中。不会因为系统缺少依赖库而提示。
实战开始
1.在目标运行HackSysEVDExploit.exe -u -c cmd.exe
成功拿到NT最高权限。是不是很刺激!那么我们继续阅读接下来的章节把!开始你的内核Exp之旅!