CVE-2020-1350 Windows Server DNS漏洞复现


Windows DNS Server远程代码执行漏洞(CVE-2020-1350):未经身份验证的攻击者可通过向目标DNS服务器发送特制数据包从而目标系统上以本地SYSTEM账户权限执行任意代码。该漏洞无需交互、不需要身份认证且Windows DNS Server默认配置可触发。

影响版本

  • windows server 2008 sp2
  • windows server 2008 r2 sp1 x64
  • windows server 2012
  • windows server 2012 r2
  • windows server 2016
  • windows server 2019

实验环境

受害者:Windows Server 2008 R2 sp1,192.168.227.128

恶意服务器:kali,192.168.227.180

复现过程

1. 开启DNS服务器

首先需要配置静态IP。

打开服务器管理器,选择“添加角色”,在下一步中选中dns,然后一直下一步直到安装成功。

2. 运行python脚本

下载POC,POC为python2脚本,使用root权限运行:sudo python sigred_dos.py evil_domain_name

3. 在受害者服务器配置DNS转发器

为了方便后续过程,将本机DNS设置为转发器。具体步骤为:将服务管理器左侧栏角色下的DNS服务器点开,在DNS一栏中找到当前主机名,右键选择属性,点击“转发器”后进行编辑。

4. 受害者查询9.ibrokethe.net

在这里打开wireshark进行抓包。

在受害者服务器使用nslookup命令查询9.evil_domain_name:

nslookup -type=sig 9.ibrokethe.net 127.0.0.1

查看kali,发现收到了一个UDP连接,又收到了一个TCP连接。

抓包结果如下:

由于本地无法解析“ibrokethe.net”,因此会以UDP协议向恶意服务器kali发送DNS查询,也就是kali收到的第一个UDP连接。恶意服务器查到了该域名,就向受害者发送响应包,设置TC位,通知受害者采用TCP重发原来的查询请求,并允许返回的响应报文超过512个字节。这是第二个DNS包。然后进行三次握手,受害者再次以TCP协议发送请求,这就是kali收到的TCP连接。之后,恶意服务器就可以利用TCP传输大于64KB的响应包发给受害者,触发漏洞,造成堆溢出。

然后,就可以进行远程代码执行等操作了。


文章作者: 恰醋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 恰醋 !
评论
  目录