首页
社区
课程
招聘
[原创]CVE-2010-2734提权漏洞分析(附POC)
发表于: 2010-10-19 16:21 70180

[原创]CVE-2010-2734提权漏洞分析(附POC)

2010-10-19 16:21
70180

这个漏洞是在分析Stuxnet途中发现的,但是应为当时微软没有发布补丁,所以没有第一时间贴出来,上周补丁已出,所以发出来和大家分享一下。

1 漏洞描述
这是一个提权漏洞,是没有正确处理Keyboard Layout文件导致的
CVE描述(CVE-2010-2743):
527K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3y4$3k6g2)9J5k6h3#2A6N6s2u0W2i4K6u0W2L8%4u0Y4i4K6u0r3j5$3N6A6i4K6u0V1j5X3W2F1i4K6u0r3j5%4k6W2L8X3q4E0k6g2)9J5k6h3y4Y4K9g2)9K6c8X3&6S2L8h3g2Q4x3@1c8o6g2V1g2Q4x3X3b7J5x3o6p5H3i4K6u0V1x3U0M7@1x3H3`.`.
微软公告(MS10-073) Microsoft Windows Win32K Keyboard Layout (981957)
655K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3#2A6j5%4u0G2M7$3!0X3N6q4)9J5k6h3y4G2L8g2)9J5c8Y4c8W2j5$3S2F1k6i4c8Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5c8X3u0#2L8r3I4W2N6r3W2F1i4K6u0r3L8i4x3I4x3q4)9J5k6o6l9%4x3H3`.`.
我最早看到相关描述是在Symantec的Blog里:
81fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4&6L8h3q4F1N6r3g2U0i4K6u0W2j5$3!0E0i4K6u0r3j5$3!0F1L8X3g2U0N6q4)9J5c8X3u0D9L8$3N6K6i4K6u0r3M7%4c8#2P5r3&6W2N6q4)9J5k6s2g2K6K9h3&6Y4i4K6u0V1N6r3S2J5k6h3g2Q4x3X3c8S2k6r3c8A6N6r3W2G2L8X3q4D9i4K6u0V1P5X3g2J5L8#2)9J5k6r3c8S2P5g2)9J5k6s2k6#2L8r3&6W2M7X3q4T1K9h3I4A6N6r3W2W2M7H3`.`.

2 keyboard layout文件
Keyboard Layout文件在注册表HKLM\SYSTEM\CURRENT CONTROL SET\CONTROL\KEYBOARD LAYOUTS下可以找到, 它们都是PE文件



Win32k! ReadLayoutFile函数负加载Keyboard layout文件,该函数会将layout文件中的信息读入内存中, 其中一个步骤是设置win32K.sys! gpKbdNlsTbl, 指向当前的NLSTable (这里的名字是我自己给的,不是官方名字)
Struct NLSTable{
…..
+0x4  dwNumEntries
+0x8  pNLSData
}
pNLSData是一个buffer, 每一个成员大小为0x84字节,所以总大小为dwNumEntries*0x84,里面的数据都来自keyboard layout文件。下面是一个keyboard layout文件的示例:这里dwNumEntries为一,pNLSData的起始为0x1C2



3 漏洞触发
当用户敲击键盘的某个键时,Win32k.sys里的xxxKENLSProcs会被调用,传入按键的扫描码,然后程序会查找前面的NLSTable里的每个成员(前面提到过,每个成员大小为0x84自节), 直到找到某个成员,该成员的第一个字节等于传入的扫描码,然后取该成员的第二个字节作为index来调用_aNLSVKFProc(一个函数数组)中的函数:



这里的问题在于,_aNLSVKFProc中只有三个有效的函数,因此我们可以构造一个特殊的keyboard layout文件,让这个函数call越界



比如,我们设计NLSTable里的一个成员,他的头俩个字节是 00 05, 然后发送一个扫描码为0的按键消息,于是_aNLSVKFProc[5] 会被调用,在我的机子上是0x60636261
接下来大家都知道怎么做了

keyboard layout.zip


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 216
活跃值: (93)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
沙发!!!!!!
2010-10-19 17:47
0
雪    币: 1407
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持一下 国庆期间也根据vb2010公布的paper分析了一下
2010-10-19 17:50
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Thanks very much, I am looking for it
2010-10-30 10:32
0
游客
登录 | 注册 方可回帖
返回