|
作者: ping123 [ping123] 论坛用户 | 登录 |
详细: 自RPC被发现存在严重的缓冲溢出漏洞以来,安络也一直在跟踪,并对其进行了深入研究。在此以前已先后发布了两篇安全漏洞公告(Microsoft RPC接口远程溢出缺陷允许执行任意代码、Microsoft Windows 2000 DCOM RPC接口DoS及权限提升缺陷),并也提供了相应的测试代码。 鉴于此漏洞危险程度之高,安络将再次重申,希望引起广大用户的重视。因为此漏洞会影响nt\2k\xp\2003+sp4的所有服务器,建议用户最好查一下是不是所有机器都打上了hotfix 。 LSD 的RPC溢出漏洞(MS03-26)其实包含了2个溢出漏洞,一个是本地的,一个是远程的。他们都是由一个通用接口导致的。 导致问题的调用如下: hr = CoGetInstanceFromFile(pServerInfo,NULL,0,CLSCTX_REMOTE_SERVER,STGM_READWRITE,L"C:\\1234561111111111111111111111111.doc",1,&qi); 这个调用的文件名参数(第5个参数,会引起溢出),当这个文件名超长的时候,会导致客户端的本地溢出(在RPCSS中的GetPathForServer函数里只给了0X220堆栈的空间,但是是用lstrcpyw进行拷贝的),这个我们在这里就不深入研究了(不过这个API先会检查本地文件是否存在,在进行处理,因此由于建不了长文件,所以要利用这个溢出不能直接调用这个API,而是构造好包信息以后直接调用LPC的函数,有兴趣的可以自己去试。),我们来讲解一下远程的溢出。 在客户端给服务器传递这个参数的时候,会自动转化成如下格式:L“\\servername\c$\1234561111111111111111111111111.doc"这样的形式传递给远程服务器,于是在远程服务器的处理中会先取出servername名,但是这里没做检查,给定了0X20(默认问题代码如下: GetPathForServer: .text:761543DA push ebp .text:761543DB mov ebp, esp .text:761543DD sub esp, 20h <-----0x20空间 .text:761543E0 mov eax, [ebp+arg_4] .text:761543E3 push ebx .text:761543E4 push esi .text:761543E5 mov esi, [ebp+hMem] .text:761543E8 push edi .text:761543E9 push 5Ch .text:761543EB pop ebx .text:761543EC mov [eax], esi .text:761543EE cmp [esi], bx .text:761543F1 mov edi, esi .text:761543F3 jnz loc_761544BF .text:761543F9 cmp [esi+2], bx .text:761543FD jnz loc_761544BF .text:76154403 lea eax, [ebp+String1]《-----------写入的地址,只有0X20 .text:76154406 push 0 .text:76154408 push eax .text:76154409 push esi 〈----------------------我们传入的文件名参数 .text:7615440A call GetMachineName 。。。。。。。。。。。。。。。。。。。。。。。。。。 此函数返回的时候,溢出点生效 GetMachineName: .text:7614DB6F mov eax, [ebp+arg_0] .text:7614DB72 mov ecx, [ebp+arg_4] .text:7614DB75 lea edx, [eax+4] .text:7614DB78 mov ax, [eax+4] .text:7614DB7C cmp ax, 5Ch 〈-----------------只判断0X5C .text:7614DB80 jz short loc_7614DB93 .text:7614DB82 sub edx, ecx .text:7614DB84 .text:7614DB84 loc_7614DB84: ; CODE XREF: sub_7614DA19+178 j .text:7614DB84 mov [ecx], ax 〈----------------写入上个只有0X20的空间,超过就溢出 .text:7614DB87 inc ecx .text:7614DB88 inc ecx .text:7614DB89 mov ax, [ecx+edx] .text:7614DB8D cmp ax, 5Ch .text:7614DB91 jnz short loc_7614DB84 .text:7614DB93 解决方案: 下载补丁: Windows NT 4.0 Server: http://microsoft.com/downloads/details.aspx?FamilyId=2CC66F4E-217E-4FA7-BDBF-DF77A0B9303F&displaylang=en Windows NT 4.0 Terminal Server Edition : http://microsoft.com/downloads/details.aspx?FamilyId=6C0F0160-64FA-424C-A3C1-C9FAD2DC65CA&displaylang=en Windows XP 32 bit Edition: http://microsoft.com/downloads/details.aspx?FamilyId=2354406C-C5B6-44AC-9532-3DE40F69C074&displaylang=en Windows XP 64 bit Edition: http://microsoft.com/downloads/details.aspx?FamilyId=1B00F5DF-4A85-488F-80E3-C347ADCC4DF1&displaylang=en Windows Server 2003 32 bit Edition: http://microsoft.com/downloads/details.aspx?FamilyId=F8E0FF3A-9F4C-4061-9009-3A212458E92E&displaylang=en Windows Server 2003 64 bit Edition: http://microsoft.com/downloads/details.aspx?FamilyId=2B566973-C3F0-4EC1-995F-017E35692BC7&displaylang=en 临时解决方案: * 使用防火墙过滤135端口 |
地主 发表时间: 07/26 14:17 |
回复: jamesgj [jamesgj] 论坛用户 | 登录 |
美女,厉害啊。不错!~继续努力!:)DING |
B1层 发表时间: 07/30 15:26 |
回复: jamesgj [jamesgj] 论坛用户 | 登录 |
美女,厉害啊。不错!~继续努力!:)DING |
B2层 发表时间: 07/30 15:26 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号