微软Windows NT 4.0无效的LPC请求导致拒绝服务
发布日期:2000-10-05
更新日期:2000-10-05
受影响系统:Microsoft Windows NT 4.0
Microsoft Windows NT Terminal Server
+ Microsoft Windows NT 4.0
不受影响系统:Microsoft Windows NT 2000
描述:
LPC(本地过程调用)是一种消息传递服务,它允许本地机器上的线程和进程之间互相通信,与此相对应,RPC(远过程调用)则发生在不同的主机之间。Windows NT 4.0中的LPC实现没有正确地处理那些杂乱的或者使用了无效参数的LPC请求。
如果服务器收到来自客户端的一个LPC请求,服务器通常采取的步骤是调用NtAcceptConnectPort( )和NtCompleteConnectPort( )来完成连接。如果服务器不是调用NtAcceptConnectPort( )而是调用NtReplyPort( ),客户端将会因为一个内核异常而崩溃。
此外,如果客户端连接到\DbgSsApiPort或者\DbgUiApiPort并发送随机数据,则客户端将会崩溃。
在上述两种情况下,为了恢复正常功能必须重启系统。
这个漏洞只能用在用户可以交互登录的机器上,因此不可能从远程利用这个漏洞。
NT的LPC实现中还存在其它的漏洞,在微软安全公告(MS00-070)和Bindview的安全报告中有详细描述。
<* 来源:BindView's Razor Team(
info@razor.bindview.com) *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Bindview的Razor小组提供了一个概念证明式的工具来演示微软NT的LPC实现中存在的漏洞。
http://www.securityfocus.com/data/vulnerabilities/exploits/porttool.zip
1、执行下述命令将会导致蓝屏死机,为了恢复正常功能必须重启机器(NtReplyPort漏洞):
start porttool -s2 \BaseNamedObjects\Foo
porttool -c \BaseNamedObjects\Foo
2、执行下述命令将会导致蓝屏死机,为了恢复正常功能必须重启机器(\DbgSsApiPort或\DbgUiApiPort漏洞):
porttool -c \DbgSsApiPort
或
porttool -c \DbgUiApiPort
建议:
微软已经发布如下补丁用来消除这个漏洞以及在微软安全公告(MS00-070)中讨论的其它LPC漏洞:
Microsoft Windows NT 4.0:
Microsoft patch Q266433i
http://download.microsoft.com/download/winntsp/Patch/q266433/NT4/EN-US/Q266433i.EXE
浏览次数:5892
严重程度:0(网友投票)