Telnet 服务器中未检查缓冲区可能导致执行任意代码
发布时间: 2002 年 2 月 2 日 |更新时间:2003 年 5 月 9 日
版本: 1.1
最初发布: 2002 年 2 月 7 日
更新时间: 2003 年 5 月 9 日
总结
谁应阅读此公告: 使用 Microsoft® Windows® 2000 或 Microsoft Interix 2.2 的系统管理员
漏洞的影响: 拒绝服务,可能运行攻击者选择的代码
最大严重性分级: 中等
建议: 系统管理员应将修补程序应用于提供受影响的 Telnet 服务的所有系统。
受影响的软件:
- Microsoft Windows 2000 中的 Telnet 服务
- Microsoft Interix 2.2 中的 Telnet 守护程序
常规信息
技术详细信息
技术说明:
Telnet 协议提供远程 shell 功能。 Microsoft 通过在多个产品中提供 Telnet 服务器来实现 Telnet 协议。 其中两种产品的实现(Windows 2000 和 Interix 2.2)包含处理 telnet 协议选项的代码中的未检查缓冲区。
攻击者可以使用此漏洞来执行缓冲区溢出攻击。 成功的攻击可能导致 Telnet 服务器失败,在某些情况下,攻击者可能允许攻击者在系统上执行她选择的代码。 此类代码将使用 Telnet 服务的安全上下文执行,但此上下文因产品而异。 在 Windows 2000 中,Telnet 服务始终作为系统运行;在 Interix 实现中,管理员选择要在其中作为安装过程的一部分运行的安全上下文。
缓解因素:
- 默认情况下,在 Windows 2000 中安装 Telnet 服务时,它不会默认运行。 因此,仅当管理员启动服务时,Windows 2000 系统才会受到攻击
- 远程利用此漏洞需要攻击者能够连接到 Telnet 服务器。 最佳做法建议禁止在不受控制的网络上允许 Telnet 访问。
- 安装 Interix 2.2 时,默认情况下不会安装 Interix 2.2 中的 Telnet 守护程序。 管理员必须选择安装和配置此功能。
- Interix 中的 Telnet 守护程序默认未指定安全上下文。 管理员在配置或运行守护程序时指定安全上下文。 最佳做法建议 Telnet 守护程序在最低特权上下文中运行,这意味着它只具有必要的权限,并且不再具有这些权限。
严重性分级:
Internet 服务器 | Intranet 服务器 | 客户端系统 | |
---|---|---|---|
Microsoft Windows 2000 中的 Telnet 服务 | 适中 | 适中 | 适中 |
Microsoft Interix 2.2 中的 Telnet 守护程序 | 低 | 低 | 低 |
上述 评估 基于受漏洞影响的系统类型、其典型部署模式以及利用漏洞对它们的影响。 对于 Windows 2000 Telnet 服务,该服务默认未运行,使默认安装不易受攻击。 对于 Interix Telnet 守护程序,默认情况下不会安装此功能,并且需要管理员的特定安全设置。 遵循最低特权的最佳做法应限制漏洞的范围。
漏洞标识符:CAN-2002-00020
测试的版本:
Microsoft 测试了 Windows XP、Windows 2000、UNIX 2.0 和 Interix 2.2 的服务,以评估它们是否受此漏洞的影响。 未测试 Windows NT 4.0,因为它未随 Telnet 服务器一起提供。 以前的版本不再受支持,可能或可能不会受到此漏洞的影响。
常见问题解答
漏洞的范围是什么?
这是影响两个 Microsoft 产品的缓冲区溢出 漏洞:Windows 2000 中的 Telnet 服务以及 Microsoft Interix 2.2 中的 Telnet 守护程序(telnetd)。 通过向 telnet 服务器发送格式不正确的请求,攻击者可能会生成两个结果之一。 在更简单的情况下,这可能会导致 telnet 服务器失败。 在更复杂的情况下,这可能允许攻击者在系统上执行其选择的代码。
最佳做法强烈建议仅应在完全受信任的网络上使用 Telnet。 不应通过 Internet 使用 Telnet,并且应在企业防火墙中阻止 Telnet 连接。 Windows 2000 和 Interix 都不受默认条件下此漏洞的影响。
导致漏洞的原因是什么?
漏洞是由于处理 Telnet 协议选项的代码中的未检查缓冲区造成的。 通过提交特殊特定的格式不正确的数据包,恶意用户可能会溢出缓冲区。
什么是 Telnet?
Telnet 是一种行业标准协议,允许用户在 telnet 服务器上建立远程终端会话。 由于这是终端会话,因此只有命令行接口。 Telnet 主要用于通过命令提示符进行简单的远程管理。
多个 Microsoft 产品包含 Telnet 协议的实现。 但是,此处的漏洞仅影响这两个实现 -- Microsoft Interix 和 Windows 2000 中的两个实现。
什么是 Microsoft Interix?
Microsoft Interix 是一种产品,允许客户在 Windows 系统上运行 UNIX 应用程序。 提供此功能可扩展对 UNIX 应用程序、守护程序和脚本的支持,方法是在 Windows 2000 中的标准 POSIX 子系统之外提供增强的 UNIX 环境子系统。 它允许客户在 Windows NT 和 Windows 2000 上运行 UNIX 应用程序、守护程序和脚本。
什么是守护程序?
在 UNIX 中,Telnet 等网络服务称为守护程序。 通常,服务的实际程序在末尾以“-d”命名,以指示它是守护程序。
由于 Interix 中的 Telnet 服务器实际上是一个 UNIX 程序,而不是 Win-32 程序,因此它被称为守护程序,以确保准确性。 在这种情况下,有问题的程序是 /bin/telnetd 和 /usr/sbin/in.telnetd。
攻击者对此漏洞有何影响?
攻击者可能会尝试使用大量数据溢出缓冲区。 如果攻击者提供了足够数量的随机数据,她可能会导致 Telnet 服务器失败。 如果攻击者提供了精心制作的数据,她可能会导致她选择在 Telnet 服务器的进程空间中运行的代码。
如果攻击者成功加载了恶意代码,则会在其中执行哪些安全上下文?
代码将在与 Telnet 服务相同的上下文中运行。 特定上下文取决于产品。
对于 Windows 2000 Telnet 服务,代码将在 SYSTEM 上下文中执行。 这将允许攻击者使用与操作系统相同的权限执行命令。 这意味着代码可以采取任何操作,包括重新格式化硬盘驱动器、生成具有 SYSTEM 特权的远程命令外壳、安装程序或关闭系统。
对于 Interix 中的 Telnet 守护程序,执行代码的上下文取决于管理员在配置 telnetd 时所做的选择。 管理员指定在启动 telnetd 或将其配置为自动启动时 telnetd 操作的上下文。 因此,通过成功利用此漏洞加载的任何代码都将在管理员决定运行 telnetd 的上下文中执行。 例如,如果 telnetd 配置为在 SYSTEM 上下文中运行,则恶意代码将在该上下文中执行,并能够充当操作系统的一部分。 或者,如果管理员将 telnetd 配置为在特殊受限帐户的上下文中运行,则恶意代码将仅在该上下文中执行。
攻击者如何使用此漏洞来装载攻击?
攻击者可以通过向 Telnet 服务发送格式不正确的数据包来尝试针对此漏洞发起攻击。 任何可以连接到 Telnet 服务的人都可能能够尝试利用此漏洞。
攻击者是否可以通过 Internet 利用此漏洞?
如果可通过 Internet 访问 Telnet 服务器,攻击者可以使用此漏洞尝试对服务器发动攻击。 但是,大多数公司防火墙将阻止防火墙中的 Telnet 访问作为最佳做法。 此外,大多数公司都禁止其 DMZ 中的 Telnet 作为最佳做法。 这些步骤将消除 Internet 上此漏洞的暴露。
修补程序的作用是什么?
修补程序通过设置适当的数据输入检查来消除漏洞。
谁应该应用修补程序?
在 Interix 中运行 Windows 2000 Telnet 服务或 Telnet 守护程序(telnetd)的任何人员。
我在 Services for UNIX 2.0 中使用 Telnet 服务器,是否需要应用修补程序?
否,UNIX 2.0 服务中的 Telnet 服务器不包含此缺陷。
我安装了适用于 Windows 2000 但未运行的 Telnet 服务,是否应应用修补程序?
如果已安装 Telnet 但未使用该服务,应首先考虑删除该服务作为最佳做法。 如果不打算删除该服务,则应应用修补程序。
我正在运行 Windows 2000 专业版,我是否容易受到攻击?
安装了适用于 Windows 2000 的 Telnet 服务,但默认情况下未在 Windows 2000 Professional 上运行。 运行 Windows 2000 Professional 的客户应应用修补程序来保护自己(如果已启用该服务)。
修补程序可用性
下载此修补程序的位置
Microsoft Windows 2000 中的 Telnet 服务:
Microsoft Interix 2.2:
有关此修补程序的其他信息
安装平台:
Windows 2000:
此修补程序可以安装在运行 Windows 2000 Service Pack 1 或 Windows 2000 Service Pack 2 的系统上
Interix 2.2:
此修补程序可以安装在运行 Microsoft Interix 2.2 Gold 的系统上
包含在将来的 Service Pack 中:
适用于此问题的 Telnet Service for Windows 2000 修补程序将包含在 Windows 2000 Service Pack 3 中
需要重新启动: 否
取代的修补程序:MS01-039
验证修补程序安装:
Interix 2.2:
验证 in.telnetd 二进制文件的版本是否为 2.2.428.1
适用于 Windows 2000 的 Telnet 服务:
验证Tlntsvr.exe的版本是否为 5.0.33668.1
注意:
无
本地化:
此修补程序的本地化版本正在开发中。 完成后,它们将出现在“获取其他安全修补程序”中讨论的位置。
获取其他安全修补程序:
可从以下位置获取其他安全问题的修补程序:
- 安全修补程序可从 Microsoft 下载中心获取,可通过执行关键字 (keyword)搜索“security_patch”来轻松找到。
- WindowsUpdate 网站提供了使用者平台的修补程序。
其他信息:
支持:
- Microsoft 知识库文章Q307298讨论此问题,此公告发布后大约 24 小时可用。 可以在 Microsoft Online 支持网站上找到知识库文章。
- Microsoft 产品支持服务提供技术支持。 与安全修补程序关联的支持调用不收取任何费用。
安全资源:Microsoft TechNet 安全网站提供有关 Microsoft 产品安全性的其他信息。
免责声明:
Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。
修改:
- V1.0(2002 年 2 月 2 日):公告已创建。
- V1.1(2003 年 5 月 9 日):更新了指向Windows 更新的下载链接。
构建于 2014-04-18T13:49:36Z-07:00</https:>