Windows DNS服务器曝蠕虫级漏洞,安全警报!

技术教程 11评选 0

SigRed漏洞概述

SigRed漏洞具有极高的危害性,它是可蠕虫化的,无需用户交互就能自动传播到易受攻击的设备上。这使得未经身份验证的远程攻击者有机会获取目标服务器的域管理员特权,进而完全掌控组织的IT基础架构。

漏洞运行机制

Windows

利用方式

攻击者能够通过向Windows DNS服务器发送恶意DNS查询来利用SigRed漏洞,进而实现任意代码执行。这样一来,黑客就可以拦截并操纵用户的电子邮件以及网络流量,导致服务不可用,并获取用户的电子邮件信息。

查询逻辑

当DNS服务器无法解析给定域名(例如www.Google.com)的IP地址时,查询会被转发到权威DNS服务器(NS),也就是转发查询。

SigRed首先需要配置一个域的(“deadbeef.fun”)NS资源记录,将其指向恶意名称服务器(“ns1.41414141.club”),然后查询目标DNS服务器的域,以便从名称服务器获取与域或其子域相关的所有后续查询的解析响应。

触发条件

设置完成后,攻击者发送一个大小超过64KB的SIG记录,就会在分配的小缓冲区上引发大约64KB的受控堆缓冲区溢出,触发恶意DNS查询,并在分析转发查询的传入响应的函数中触发整数溢出漏洞(“dns.exe!sigwirelead“)。该漏洞针对负责为资源记录分配内存的函数,一旦生成大于65535的字节数,就会导致整数溢出,分配变小。不过,由于一条DNS消息的UDP限制为512字节(若服务器支持扩展机制则限制为4096字节),TCP限制为65535字节,仅带有长签名的SIG响应不足以触发此漏洞。但攻击者可巧妙利用DNS响应中的DNS名称压缩功能,增大缓冲区大小,从而实现缓冲区溢出。

远程触发

SigRed还能在特定情况下通过浏览器远程触发,例如基于Internet Explorer和非Chromium的Microsoft Edge浏览器。攻击者可利用Windows DNS服务器对连接重用和查询管道功能的支持,在访问其控制下的网站时,将HTTP请求负载内的DNS查询“偷偷转发”到目标DNS服务器。甚至还能实现write What where功能,进一步利用漏洞泄漏内存地址,让对手劫持执行流并执行意外指令。

值得注意的是,DNS客户端(“dnsapi.dll)不易受同一个bug的影响,这引发研究人员对微软为DNS服务器和DNS客户端设置了两个完全不同代码基且未同步漏洞补丁的怀疑。

缓解措施

Windows DNS服务器作为核心网络组件,一旦泄露后果严重,企业需高度重视。尽管微软称目前尚无该漏洞被利用的证据,但建议用户立即安装安全补丁:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350

此外,用户还可将DNS消息的最大长度(通过TCP)设置为“0xFF00”,以消除缓冲区溢出的可能性。

标签:DNS服务器
相关推荐