首页
社区
课程
招聘
[讨论]关于MS11-80如何触发
发表于: 2011-10-24 17:00 6366

[讨论]关于MS11-80如何触发

2011-10-24 17:00
6366
不知道有没有朋友手头上有这个漏洞的POC?
自己通过补丁比对看了一下感觉这个漏洞和之前MS11-046的非常像。简单说下,MS11-046是AfdConnect中没有以正确的方式对Irp-UserBuffer的有效性进行检验,攻击者如果将UserBuffer的长度设为0就可以绕过验证。写内存的操作并不直接在AfdConnect中完成,而是在执行一个APC例程AfdConnectApcKernelRoutine时,就会向攻击者指定的UserBuffer写入4字节数据。
这个MS11-080出问题的函数是AfdJoinLeaf,在这个函数里对Irp->UserBuffer的
验证也是非常草率的,绕过地址检验的方式和MS11-046的利用方法相同——将UserBuffer的长度设为0即可。感觉如果能够将控制流导向

PAGE:B2D30F67                 mov     ecx, offset _AfdRestartJoin@
PAGE:B2D30F6C                 mov     eax, ecx
PAGE:B2D30F6E                 test    eax, eax
PAGE:B2D30F70                 mov     eax, [edi+60h]
PAGE:B2D30F73                 jz         loc_B2D3104A
PAGE:B2D30F79                 sub      eax, 24h
PAGE:B2D30F7C                 mov     [eax+1Ch], ecx
PAGE:B2D30F7F                 mov     ecx, [ebp+var_20]
PAGE:B2D30F82                 mov     [eax+20h], ecx
PAGE:B2D30F85                 mov     byte ptr [eax+3], 0E0h
PAGE:B2D30F89                 jmp     loc_B2D31057

就有机会向攻击者指定的UserBuffer中写入4字节数据。因为我发现在AfdRestartJoin函数中会创建一个APC对象,而APC例程同样是AfdConnectApcKernelRoutine。

本人能力有限目前没有分析清楚如何将控制流导向上述位置
贸然发帖希望可以抛砖引玉

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

收藏
免费
支持
分享
最新回复 (6)
雪    币: 992
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
膜拜大神,学习中。。。
2011-10-24 19:25
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不怎么清楚,膜拜下!
2011-10-24 20:51
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
4
不懂内核,真没有办法帮到你
2011-10-24 22:45
0
雪    币: 393
活跃值: (150)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
5
http://hi.baidu.com/huangzhuliang%B5%C4%BF%D5%BC%E4/blog/item/3ab1158e687fdbf7f01f36d2.html
2011-11-15 08:25
0
雪    币: 403
活跃值: (330)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
6
貌似不是一回事~
2011-11-15 12:34
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
7
清早赶来支援cscoder 哈哈
2011-11-16 08:45
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册