首页
社区
课程
招聘
[原创]Windows 2000 系统资源管理器的一个漏洞
发表于: 2023-8-3 11:30 13250

[原创]Windows 2000 系统资源管理器的一个漏洞

2023-8-3 11:30
13250

这似乎又是一个0 day漏洞(?)

这个漏洞与pif文件有关,是我在研究pif文件的时候发现的,关于pif文件的一些资料我整理到自己的博客里了:https://qfwfq.top/2023/07/08/some-fact-about-pif/
后面会用到里面的一些内容。

实验环境

Microsoft Windows 2000 5.00.2195 Service Pack 4

用到的软件工具

010Editor

ollydbg

IDA pro

首先,win 2000系统里存在一个文件_default.pif,它的结构如下:

我在这个文件的基础上添加了一个名为WINDOWS VMM 4.0的块,如下图:

把这个文件放在U盘根目录下,插入win 2000系统后,浏览U盘时,资源管理器崩溃闪退。

我们可以确定的是,崩溃的出现是由于我们构造的pif文件里新的内容,而且应该出现在对文件内容的处理的过程中。

而根据pif文件的格式:

可以看到每个数据块都有一个名字,猜测在对这些数据块处理的代码里可能包含这些名字的字符串常量,也许可以由此定位到数据块处理相关代码。

于是在explorer.exe和其调用的动态链接库中搜索这些字符串,最终发现只有系统shell32.dll中存在这些字符串:

然后在ollydbg里追踪崩溃

由于windows系统只允许存在一个explorer.exe进程实例,我们用ollydbg打开新的explorer.exe进程进行动态调试时,系统会自动关闭该进程,从而阻止了调试的继续进行。所以需要通过File ->Attach菜单项将系统当前的explorer.exe进程附加ollydbg中的方式进行调试。

在调用这些字符串常量的函数里下大量断点,通过函数执行后崩溃是否发生判断溢出点的大致位置:

调试过程中的部分断点

最后跟踪到这个函数:

也就是函数sub_7909062B

整个跟踪过程如下:


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

最后于 2023-8-3 18:23 被Qfwfq-编辑 ,原因: 放错了一张图片
收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 722
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
厉害
2023-8-3 18:45
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
20年前这漏洞够得上核武级别,10年前的震网病毒用到一个类似的,用来突破物理隔离的网络。赞一个!
2023-8-4 08:01
0
雪    币: 15170
活跃值: (16832)
能力值: (RANK:730 )
在线值:
发帖
回帖
粉丝
4
棒!
2023-8-4 09:30
0
游客
登录 | 注册 方可回帖
返回
//