深入解析MS08-068:SMB凭据反射漏洞防御机制

本文详细分析了MS08-068安全更新中修复的SMB协议NTLM凭据反射漏洞,探讨了不同Windows系统的受影响程度及缓解措施,包括防火墙配置、UAC权限限制和SMB消息签名等防御方案。

MS08-068: SMB凭据反射防御

今天微软发布了安全更新MS08-068,用于修复SMB协议中的NTLM反射漏洞。该漏洞在大多数操作系统上被评为"重要",但在Vista和Windows Server 2008上评级为"中等"。本文旨在解释为何该问题在Vista和Windows Server 2008上严重性较低,并提供更多细节帮助用户评估自身环境中的风险。

此漏洞允许攻击者将传入的SMB连接重定向回发起连接的机器,然后使用受害者自身的凭据访问受害机器(因此称为"凭据反射")。在典型Windows XP配置中(启用SMB共享且用户属于管理员组),攻击者可轻松接管机器。现有公开工具(包括Metasploit模块)可执行此攻击。

该漏洞的典型攻击向量通过网页浏览器或电子邮件利用HTML。HTML文档中的资源(如IMG标签)可用于引用攻击者机器上的文件,这些文件随后通过SMB协议检索。攻击者机器会提示受害者输入凭据,然后将这些凭据反射回受害者机器以获取访问权限。当攻击者与受害者处于同一网络时,甚至"受信任"网站也可被利用进行此攻击——因为网络数据在受害者接收前可能被修改。

当对Vista或Windows Server 2008机器执行此攻击时会发生什么?虽然Vista和WS08都易受此攻击,且凭据反射可能成功,但以下几个因素减轻了攻击影响:

  1. Vista和Windows Server 2008与早期Windows版本的首要区别是默认未启用文件和打印机共享。用户必须先启用文件和打印机共享(同时会在Windows防火墙中启用例外)才会易受此攻击。

  2. 在非域环境中,即使启用文件和打印机共享且Windows防火墙允许入站连接,默认系统共享(admin$、c$)也无法被管理员用户远程访问(详见KB 951016)。以下是连接Vista机器、以管理员组成员的用户身份验证后仍无法访问admin$和c$的示例:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    C:\> net use \\10.10.10.1\ipc$
    The password or user name is invalid for \\10.10.10.1\ipc$.
    
    Enter the user name for '10.10.10.1': swi
    Enter the password for 10.10.10.1:
    The command completed successfully.
    
    C:> dir \10.10.10.1\admin$
    Access is denied.
    C:> dir \10.10.10.1\c$
    Access is denied.
    
  3. 在域环境中,如果用户使用域账户登录且该账户是本地机器管理员组的成员,则默认系统共享(admin$和c$)可被访问(再次参见KB 951016)。

在此漏洞背景下,具有本地管理员权限的域账户可在反射攻击中成功使用,攻击者将能够连接回受害者并访问admin$和c$共享。但由于UAC和完整性级别,攻击者将以与受害者相同的完整性级别连接回。在大多数情况下,这将是低或中完整性级别(针对未提升权限的程序)。在低和中完整性级别下,攻击者最多对admin$文件夹具有读取权限。这意味着他们无法添加新二进制文件或覆盖系统文件夹中的文件。他们也无法执行需要高完整性的RPC操作(如添加服务)。

然而,攻击者能够写入受害者用户文件夹下的位置,如启动文件夹或桌面。(用户具有写入权限的任何其他文件夹在反射攻击下也易受攻击)。启动文件夹对攻击者而言是有价值的目标。尽管对于非管理员用户,此处放置的文件将以非管理员权限运行。

  1. 当网络配置文件为"公共"时,Windows防火墙将防护此攻击。默认情况下,仅"专用"网络配置文件允许传入SMB连接。使用公共网络(如WiFi热点)的用户很可能使用"公共"配置文件,因此受到保护。

  2. 位于NAT和边缘防火墙后的客户不易受到防火墙外部机器的攻击,因为默认配置中未启用入站SMB。

需要注意的是,虽然上述第二点是实际缓解措施,但机器上可能仍存在非默认共享可供攻击者利用并导致目标受损。如果用户在机器上提供了任何共享,则他们面临的风险增加。

在通用缓解措施方面,公告提到了几个选项。在几乎所有情况下,最大风险来自内部网络上的机器。阻止出站SMB流量仍是个好主意,但如果攻击者已进入边界内(或用户处于不受信任的网络如公共WiFi热点),有以下类别的缓解措施:

  • 禁用文件和打印机共享(假设用户机器上不需要)。
  • 使用Windows防火墙阻止入站SMB连接。
  • 启用IPSec并要求其在入站SMB连接上使用。
  • 启用SMB消息签名。可在选定的"高价值"服务器或所有机器上启用。(注意可能产生显著的性能影响)

- Mark Wodrich, SVRD Blogger

*发布内容"按原样"提供,不提供任何担保,也不授予任何权利。*

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计