1_中断提权
1 使用pchunter查看系统中断表(中断描述符表)
1.1 那些中断处理地址内核高2GB ,所以中断处理环境坑定在0环
利用分析:
那我们把自己得处理函数放在这里面,那经过这个表调用就能获得高权限;
注意: 代码 应该把随机基址关闭,并且使用release版本,这样地址稳定一些,debug 即使不开随机基址,可能运行中 子函数的地址会因为重构(当你改变内容的时候,可能编译器判断换个地址更优)而改变。
注意:选择项目属性:工具集 vs-2015xp兼容,并MFC静态编译(因为缺少一个dll,当然你可以根据提示拷贝过去)
代码:
注意:
可以使用windbg 在 IDT 中空闲的位置添加我们自己构造的中断向量:
eq 8003f500 0040ee0000081040
00401040 是目标处理地址
0xee : 0x1 11 0 1110 是 p =1 在物理内存,dpl =3 ,使得当前3环程序能访问 , s =0 代表是系统段描述符, type = e 中断门
还可以使用CE 来修改 IDT添加我们自己构造的中断向量:
然后直接内存修改 高 2g 比如这里输入 我们的目标中断向量地址 0x8003f500,然后就能实现不用双机也行
环境 vs2017;
注意:代码 应该把随机基址关闭,并且使用release版本,这样地址稳定一些,debug 即使不开随机基址,可能运行中 子函数的地址会因为重构(当你改变内容的时候,可能编译器判断换个地址更优)而改变。
效果:
成功使用3环 中断提权,读取了 0环的数据。