MS10-054漏洞分析:SMB服务器更新的可利用性细节

本文详细分析了微软MS10-054安全更新中修复的SMB服务器漏洞(CVE-2010-2550),探讨了其远程代码执行的可能性及缓解因素,包括内核池保护机制和攻击数据不可控等限制条件。

本月微软发布了针对Windows SMB服务器组件中三个漏洞的更新。其中两个漏洞是远程拒绝服务(DoS)攻击,而另一个(CVE-2010-2550)则存在远程代码执行(RCE)的潜在风险。本文将详细分析CVE-2010-2550的可利用性,并解释为何可靠的RCE攻击风险较低。

如公告所述,Windows Vista、Windows 7、Windows Server 2003、Windows Server 2008和Windows 2008 R2系统默认情况下不会受到未认证攻击者的影响。(只有在禁用基于密码的共享时,这些系统才会变得脆弱。)因此,在大多数常见场景中,攻击者需要先通过认证。

漏洞细节

要利用CVE-2010-2550,攻击者必须对目标系统上的SMB共享具有读取权限。这意味着攻击者需要经过认证,或者目标允许匿名访问网络共享(这仅在Windows XP上是默认配置,后续平台默认需要认证)。

通过向目标发送特制的SMB请求,具有读取权限的攻击者可能导致内核池块溢出。这是由于攻击者提供的长度值被用作分配调用中的大小参数。如果攻击者指定了一个较小的尺寸值,系统随后向此缓冲区写入数据时,将损坏相邻的池块。用于覆盖的数据来自目标机器上的磁盘或文件系统。

可利用性细节

假设攻击者能够触发漏洞,以下因素使得可靠利用变得困难:

  • Windows 7和Windows 2008 R2系统在内核中设有缓解措施防止池溢出利用(如本文所述:http://blogs.technet.com/b/srd/archive/2009/05/26/safe-unlinking-in-the-kernel-pool.aspx)
  • 将被写入内核池块的数据不受攻击者控制,而是来自目标机器的磁盘或文件系统。在远程攻击场景中,找到包含有用值且位置恰当的数据将非常困难。本地攻击者拥有更多控制权,可能通过特定方式分配系统内存,利用池中的损坏指针实现本地权限提升(EOP)。
  • 失败的利用尝试将导致系统崩溃(bugcheck),因此攻击者每次启动只有一次利用机会。

基于这些原因,我们认为构建针对此漏洞的可靠RCE利用将非常困难,远程DoS攻击的可能性更大。本地EOP利用是可能的。但利用此漏洞传播蠕虫的风险非常低。

感谢以下人员对此问题的辛勤工作: [原感谢名单…]

可利用性评估

网络协议 评级 风险评估
SMB
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计