WindowsDNS服务器暴露的“蠕虫级”漏洞已存在17年在易受攻击的设备上,它允许未经身份验证的远程攻击者获得目标服务器的域管理员权限,并完全控制组织的IT基础设施。漏洞运行机制攻击者可以利用SigRed漏洞,通过向WindowsDNS服务器发送恶意DNS查询,实现任意代码执行,使黑客能够拦截和操纵用户的邮件和网络流量,使服务不可用,收割用户的邮件。邮件。当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还可以在某些情况下通过浏览器远程触发,例如InternetExplorer和非基于Chromium的MicrosoftEdge浏览器。攻击者可以使用WindowsDNS服务器支持连接重用和查询管道功能来访问其HTTP请求有效载荷内的DNS查询,当网站在其控制下时,这些查询将“偷偷转发”到目标DNS服务器。甚至,可以实现writewhatwhere函数,进一步利用该漏洞泄露内存地址,从而让对手劫持执行流程,使其执行意想不到的指令。令人惊讶的是,DNS客户端(“dnsapi.dll”)不容易受到相同错误的影响,这导致研究人员怀疑“Microsoft为DNS服务器和DNS客户端提供了两个完全不同的代码库,并且没有在漏洞补丁在它们之间同步。》缓解措施WindowsDNS服务器是核心网络组件,一旦DNS服务器泄露,就是一个非常严重的安全问题,在大多数情况下,让攻击者离毁掉整个组织只有一步之遥。企业必须引起重视.虽然微软表示没有证据表明该漏洞已被利用,但建议用户立即安装安全补丁:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1350此外,用户还可以将DNS消息的最大长度(通过TCP)设置为“0xFF00”,以消除缓冲区溢出的可能性。
