首页
社区
课程
招聘
[原创]Win7 Wininit.exe任意加载/执行(漏洞)
发表于: 2022-4-7 00:19 10873

[原创]Win7 Wininit.exe任意加载/执行(漏洞)

2022-4-7 00:19
10873

a.Windows关机时,将调用NtShutdownSystem Native API来执行关机动作。


b.在WinXp时代,用户执行"关机"后,将由winlogon.exe调用NtShutdownSystem API;但是到了Win7时代,winlogon.exe不再司此职,而是交由Wininit.exe调用NtShutdownSystem API。 


c.进入win10后,虽然Wininit.exe中仍保留WinInitShutdown及PerformSystemRestore函数,但关机时不会由WinInitShutdown调用NtShutdownSystem Native API。因此该任意加载/执行漏洞不适用于win10。


在Win7上,给nt!NtShutdownSystem下断点后,当用户点击"开始"菜单--"关机"后会得到下列函数调用栈:

上述调用堆栈并没有体现和wininit的联系,我们切换到wininit进程,查看更具体的调用堆栈:

逆向WinInitShutdown实现,发现它会调用内部函数:PerformSystemRestore

 逆向该PerformSystemRestore函数,还原得到如下示意代码(完整代码见附件wininit.idb):

这段函数流程为:


1.检查注册表HKLM\SYSTEM\CurrentControlSet\Control\WinInit下是否有DWORD键RestoreInProgress;


2.如果RestoreInProgress存在,且值为1。则继续搜索是否存在字符串键RestoreModule和RestoreFunction;


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 300
活跃值: (2487)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mark
2022-4-7 08:38
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mark
2022-4-7 08:43
0
雪    币: 8793
活跃值: (5281)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
win10呢?
2022-4-7 09:54
0
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
5
sunsjw win10呢?
win10不行,关机不走wininit.exe。但是这部分代码还在wininit中
2022-4-7 09:58
0
雪    币: 6137
活跃值: (5575)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
6
MARK 感谢分享!
2022-4-7 10:06
0
雪    币: 292
活跃值: (835)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
HKLM的注册表权限需要Administrator才能修改吧...这种应该不算漏洞吧,有Administrator权限想提权直接psexec就可以了呀,这个还要关一下机..
2022-4-7 10:08
1
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
8
Keoyo HKLM的注册表权限需要Administrator才能修改吧...这种应该不算漏洞吧,有Administrator权限想提权直接psexec就可以了呀,这个还要关一下机..
是要管理员权限,不过,有时候这几个注册表项是存在的
2022-4-7 10:22
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享,看了下注册表win7 x64 旗舰版下没见WinInit项? 
2022-4-7 11:09
0
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
10
kakasasa 感谢分享,看了下注册表win7 x64 旗舰版下没见WinInit项?
我x86有,不过貌似可以手动创建
2022-4-7 11:15
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
hyjxiaobia 我x86有,不过貌似可以手动创建
嗯,看来是系统差异,或者本机安全软件之类删除了。
2022-4-7 11:21
0
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
12
kakasasa 嗯,看来是系统差异,或者本机安全软件之类删除了。
有可能,我是纯净系统
2022-4-7 12:00
0
雪    币: 292
活跃值: (835)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
hyjxiaobia 是要管理员权限,不过,有时候这几个注册表项是存在的
有选项修改也需要管理员权限呀,可以右键注册表项然后点权限,就可以看到对注册表项修改的权限,HKLM的注册表项一般情况普通用户只有读取的权限。
2022-4-11 10:36
0
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
14
Keoyo 有选项修改也需要管理员权限呀,可以右键注册表项然后点权限,就可以看到对注册表项修改的权限,HKLM的注册表项一般情况普通用户只有读取的权限。
我比较怀疑,这几个注册表项跟系统恢复有关。当系统恢复的时候,会调用某个dll。撑死等这种机会
2022-4-11 14:35
0
游客
登录 | 注册 方可回帖
返回
//