首页
社区
课程
招聘
[原创]X64调用门的使用---R3提权R0读写MSR ---支持WIN7 WIN10
2020-4-11 20:51 22231

[原创]X64调用门的使用---R3提权R0读写MSR ---支持WIN7 WIN10

2020-4-11 20:51
22231
X64调用门的使用---R3提权R0读写MSR ---支持WIN7 WIN10的使用,调用门是INTER的,只是系统限制不能用。我们学完内核完全可以无视系统的限制。后期会发更多干货。写个驱动安装调用门就留个大家了。网上都有X86,应该不难。。。。
   打破网上一直说X64不能使用调用门,调用门的用处很隐蔽,可以无需使用系统API无视系统。R3直接可以与R0通信,当然还可以干任何事情。。只要程序有R0的权限。一切皆有可能。。。。。。


小提示,留了一个小小的下断调试坑。有兴趣可以研究一下

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞4
打赏
分享
最新回复 (46)
雪    币: 530
活跃值: (1116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
青丝梦 2020-4-11 21:39
2
0
还是amd爽, 我记得做当时做实验的话, 查了资料,显示 intel x64调用门 要比 amd x64复杂一点。 amd 的话 如果我没记错的话,和x86调用没有太大区别,
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-4-11 21:51
3
0
X64调用门不算复杂。只是win7之后系统很多限制了,自己要处理。你懂原理就容易了
雪    币: 248
活跃值: (3704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2020-4-12 00:10
4
0
有一个问题就是,频繁调用会导致三重故障,CPU直接重启
这个三重故障可以在虚拟机里面看到日志,不知道楼主有没有遇到这个问题
测试的时候,可以在代码调用call fword的地方加上for循环
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-4-12 09:05
5
0
你代码截图看看 。要注意处理gs问题
雪    币: 504
活跃值: (2968)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem 2020-4-12 21:54
6
0
雪    币: 73
活跃值: (868)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hixhi 2020-4-12 22:27
7
0
已收
雪    币: 83
活跃值: (1037)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 2 2020-4-13 07:59
8
0
感谢分享 期待后续帖子
雪    币: 8160
活跃值: (5839)
能力值: ( LV12,RANK:430 )
在线值:
发帖
回帖
粉丝
王cb 8 2020-4-13 08:59
9
0
我用vs2013编译,在win7运行进不了int3断点,直接appcrash,不知道什么原因
雪    币: 248
活跃值: (3704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2020-4-13 10:02
10
0
切换了gs, 并且确实是x64调用门
而不是64位下的x86调用门,见代码:






最后于 2020-4-13 16:29 被luskyc编辑 ,原因:
雪    币: 248
活跃值: (3704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2020-4-13 10:22
11
0
王cb 我用vs2013编译,在win7运行进不了int3断点,直接appcrash,不知道什么原因
直接用我的代码编译x64工程
雪    币: 8160
活跃值: (5839)
能力值: ( LV12,RANK:430 )
在线值:
发帖
回帖
粉丝
王cb 8 2020-4-14 09:52
12
0
代码里面里面InstallCallGate怎么调用的,通过什么触发
雪    币: 3349
活跃值: (3372)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
fengyunabc 1 2020-4-14 20:27
13
0
感谢分享!
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-4-24 09:35
14
0
测试6次使用调用门并下断没问题。。虚拟机三重错。有可能是FS没处理好。。你截图调用前和调用后的堆栈、寄存器的变化。
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-4-24 09:36
15
0
@yy虫子yy 看到使用6次调用门没问题吗
雪    币: 397
活跃值: (1785)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 1 2020-4-24 10:08
16
1
首先要安装门,不管是任务门,调用门,中断门,陷进门,都必须要用驱动,然后现代CPU还要关闭SMEP,内核隔离下,更是各种坑到你怀疑人生。
其次,都有驱动的,还要P的门。
这玩意十几年前还有用,那时候至少R3 可以想办法操纵R0 内存,现在除了装B基本没用。OS自己都不用调用门了,效率太差。
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-4-24 11:00
17
0
驱动安装调用门是要不走系统的api。不让系统监控阻拦。r3和r0直接通信。使用调用门效率是最高的。节省走系统各种调用流程。
雪    币: 248
活跃值: (3704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2020-4-24 12:16
18
0
冰雄 @yy虫子yy 看到使用6次调用门没问题吗
调用6次是没问题
但调用次数多了,或偶尔6次就会触发三重错
所以这就有点诡异,如果你一直没触发三重错,就增加调用次数,然后把代码放在R0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冰雄 2020-4-24 12:23
19
0
其实实际也没有这种需求。有几次足够了。测多少次都不会问题的。关键是你有没有处理好各种寄存器和堆栈平衡
雪    币: 207
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
脚本灬丨小子 2020-6-8 18:07
20
0
yy虫子yy 切换了gs, 并且确实是x64调用门而不是64位下的x86调用门,见代码:
原来64位ring0内嵌汇编可以用这种方法,厉害,不过现在安装了intel的开发包,64位ring3可以__asm但ring0还得用你这种方法
雪    币: 207
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
脚本灬丨小子 2020-6-8 18:22
21
0

@王cb 驱动安装

最后于 2020-6-8 18:23 被脚本灬丨小子编辑 ,原因:
雪    币: 207
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
脚本灬丨小子 2020-6-8 18:33
22
0
yy虫子yy 切换了gs, 并且确实是x64调用门而不是64位下的x86调用门,见代码:
这个汇编代码里 db 48h是干嘛用的?调节栈吗?
雪    币: 248
活跃值: (3704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2020-7-3 02:07
23
0
脚本灬丨小子 这个汇编代码里 db 48h是干嘛用的?调节栈吗?
48h前缀表示64位操作数,66h代表16位
不加前缀默认就是32位操作数
雪    币: 39
活跃值: (4066)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
ookkaa 2020-10-12 10:17
24
0
call fword和call far ptr 在x64环境下编译,都没法成功实现调用门
雪    币: 4659
活跃值: (4186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
~时光荏苒 2020-12-13 14:12
25
1

汇编代码编程这样

运行后 r3程直接挂了,请问是什么情况

游客
登录 | 注册 方可回帖
返回