新贵Messenger:一个被低估的“聊天”漏洞
入侵难度:★★★(中等)
存在范围:★★★★★(很高)
危险指数:★★★★★(很高)
使用几率:★★★★★(很高)
好用指数:85%
编辑部评审意见:
新近曝出的漏洞自然好用,只可惜我的Messenger发送器以后恐怕再也无法与同C段的MM畅聊了……
Messenger漏洞简介
在Windows NT/2000/XP/2003操作系统中,默认开放了一项名为Messenger(消息队列服务)的服务。该服务最初设计用于NT服务器之间传递系统管理员或“警报器”服务生成的系统消息。然而,该服务存在一个严重的缓冲区堆溢出漏洞——系统在向缓冲区保存消息数据之前,未能正确验证消息的长度。攻击者可以利用这一缺陷进行远程溢出攻击,实施拒绝服务(DoS)攻击,导致目标计算机停止响应并自动重启;更严重的情况下,甚至能够执行任意恶意代码。具体来说,漏洞出现在消息队列服务程序的search-by-name函数中,当攻击者向该函数提交超长字符串时,便会触发堆溢出。
攻击工具
- 扫描工具: RetinaMSGSVC.exe(来自国外著名安全公司eEye的MS03-043 Messenger漏洞扫描器)
- 溢出工具: msgr.exe
简单攻击
- 首先,打开RetinaMSGSVC.exe,对目标IP进行扫描。
- 然后,使用msgr.exe对目标执行溢出操作,成功后会在目标主机的9191端口绑定一个shell,便于后续远程控制。命令格式示例:
msgr.exe 192.168.0.2 0 - 最后,使用telnet命令连接目标主机。命令格式示例:
telnet 192.168.0.2 9191
至此,入侵过程完成!
如何防御
Messenger消息通过NetBIOS或RPC提交给消息服务,因此可以通过封闭NetBIOS端口(137-139)以及使用防火墙过滤UDP广播包来阻止此类消息的传播。在边界防火墙或个人防火墙上,应禁止不可信主机访问NetBIOS和RPC端口:135, 137, 138, 139(TCP/UDP)。如果不需要使用Messenger服务,可直接将其禁用:依次打开“开始”菜单 → “控制面板” → “计算机管理工具”,双击“服务”,找到并双击“Messenger”,点击“停止”,并在“启动类型”下拉框中选择“已禁用”。
此外,微软官方也提供了安全补丁用以修复该漏洞。不同操作系统需要下载并安装对应的补丁,用户可通过微软安全公告页面,选择并下载适用于自身系统的安全更新。
