win10x64Kernel


win10x64内核中断门提权

0x0 SMEP SMAP

首先来说一下改变,win10新增了SMEP和SMAP

SMEP:禁止内核执行用户空间的代码(3环代码)

SMAP:禁止内核CPU访问用户空间

所以就算提权到0环也是无法运行读取的,所以应该怎么办呢?!

0x1 解决SMEP和SMAP

1

首先查intel文档,找到SMAP和SMEP 可以看见就是CR4的20位和21位

解决方法显而易见了,改变CR4这两个的标志位。

0x2 第一种办法

4

第一种就是直接改变CR4 改成 250ef8 就过了 SMEP

改成050ef8 直接删除3就解决了

0x3 第二种方法

研究win10 dll是怎么运行的

5

可以看见这个stac这指令 我百度是没搜到解释,直接写stac也是识别不出来的

它的作用就是过SMAP

解决方法就是直接用硬编码 0F, 01, CB

0x4 构造中断门

2

查看一下 idt表 我是改了 21断点

0x5 代码

6

mov rax,[这里的值是 gdtr 地址] 提权读取gdt表

3

然后成功提权获得值

0x6总结

主要最近要比赛复现学习,不太想花太多时间详细写,坑还是挺多的,如何构造中断门啊,原理是什么啊,stac的原理,还有visual studio2019 怎么编译asm代码。就把关键位置记录了一下。


文章作者: Blue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Blue !
评论
  目录