WEB开发网
开发学院网络安全安全技术 关于MS08-067的一点细节 阅读

关于MS08-067的一点细节

 2008-10-27 13:30:33 来源:WEB开发网   
核心提示:这个漏洞就不介绍了,已经沸沸扬扬了,关于MS08-067的一点细节,首先milw0rm上那个exp的编译问题,作者在里面放的些小trick很容易fix,可以参考下这里的伪代码http://www.phreedom.org/blog/2008/decompiling-ms08-067/估计很多人在这里绕晕了,我跟了一晚上

这个漏洞就不介绍了,已经沸沸扬扬了。

首先milw0rm上那个exp的编译问题,作者在里面放的些小trick很容易fix,主要麻烦的是midl编译idl文件后,在VC6环境下编译可能出现rcpt库的错误。可能是SDK的版本导致的,云舒用最新的SDK(好像是2008?)编译成功了。

其次是触发问题,什么权限都不需要,空连接后就能触发。

ncacn_np:192.168.152.101[pipesrvsvc] 直接请求就可以了。

问题还是出在 NetpwPathCanonicalize() 的第二个参数,这个漏洞非常奇特。

首先这个参数的长度不能超过 0x207(unicode)

71BB58F6  81FF 07020000  CMP EDI,207
71BB58FC ^ 0F87 F447FFFF  JA NETAPI32.71BAA0F6  // 如果大于了就直接函数返回了
71BB5902 ^ E9 1247FFFF   JMP NETAPI32.71BAA019

然后会走到一个wcscat的地方,这里没有问题,因为空间是足够的

71BAA019  8D85 E8FBFFFF  LEA EAX,DWORD PTR SS:[EBP-418]
71BAA01F  53       PUSH EBX
71BAA020  50       PUSH EAX
71BAA021  FF15 9810BA71  CALL DWORD PTR DS:[<&msvcrt.wcscat>]   ; msvcrt.wcscat

继续往下会把所有的 "/" 替换为 "" 这里也无关紧要

然后就走到出问题的函数

71BAA05A  8D85 E8FBFFFF  LEA EAX,DWORD PTR SS:[EBP-418]

71BAA060  50       PUSH EAX

71BAA061  E8 AB020000   CALL NETAPI32.71BAA311

跟进去后很复杂,可以参考下这里的伪代码

http://www.phreedom.org/blog/2008/decompiling-ms08-067/

估计很多人在这里绕晕了,我跟了一晚上,总算搞明白了一点。

1 2 3  下一页

Tags:关于 MS 一点

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接