CVE-2019-0726:Win10 DHCP客户端RCE漏洞

栏目: 编程工具 · 发布时间: 6年前

内容简介:2019年1月,微软发布补丁修复了Windows系统中DHCP客户端的一个漏洞。攻击者可以发送伪造的DHCP响应来在受影响的系统上获取代码。引发该漏洞的根本原因在于可能导致DHCP客户端服务分配长度为0的堆缓存的恶意Domain Search选项。因为该缓存的长度为0,所以写入该缓冲区就会导致越界。漏洞分析Trend Micro研究人员Saran Neti发现了该漏洞的一个新变种。在新变种中,恶意Domain Search选项是以0长度的域名长度开始的,编码为\x00,表明长度为0,恶意Domain Sea

2019年1月,微软发布补丁修复了Windows系统中DHCP客户端的一个漏洞。攻击者可以发送伪造的DHCP响应来在受影响的系统上获取代码。引发该漏洞的根本原因在于可能导致DHCP客户端服务分配长度为0的堆缓存的恶意Domain Search选项。因为该缓存的长度为0,所以写入该缓冲区就会导致越界。

漏洞分析

Trend Micro研究人员Saran Neti发现了该漏洞的一个新变种。在新变种中,恶意Domain Search选项是以0长度的域名长度开始的,编码为\x00,表明长度为0,恶意Domain Search选项示例如,\x00\x07example\x03com\x00\x00。编码了2个域名字符串,第一个长度为0,第二个值为example.com。DHCP客户端代码无法正确处理。在分析选项数据时,会在输出缓存的0xffffffff处写一个逗号字符。该逗号是特定域名之间的分隔符。

代码分析

源代码如下:

CVE-2019-0726:Win10 DHCP客户端RCE漏洞

上面的代码段从输入缓存中复制了一个域名到输出缓存中,一次一个label,比如www.microsoft.com会分成www,microsoft和com三次复制。而且在输出缓存中写一个period符号作为每个label的分隔符。最后,如果发现label长度为0,就表明该域名是完整的,代码会分支到00007fff`b0793d6f。

该问题会在上面代码的最后一行出现。在完整地复制域名到输出缓存后,代码会用逗号覆写最后的period,以准备复制其他的域名。在00007fff`b0793d85处,减1的目的是计算输出缓存中最近写入的字节的索引,这应该是最后一个period。但代码并不认为这可能是含有0 label的域名。在这种情况下,没有period被写入缓存中。如果这样的域名出现在源的开始部分, [rsi]中的index就会是0。减1会导致整数下溢,产生0xffffffff。因此,在00007fff`b0793d87处,逗号字符会被写入缓存开始的0xffffffff处。

PoC

为了证明该漏洞,需要用目标Windows虚拟机和攻击者虚拟机创建一个独立的网络。可以选择 Linux 作为攻击者虚拟机,安装ISC DHCP软件并分配一个与独立网络相连的接口上的IP地址。

可以用下面的配置来开始ISC DHCP服务:

CVE-2019-0726:Win10 DHCP客户端RCE漏洞

表示的是独立网络的接口。

目标虚拟机应当安装没有安装3月份补丁的Windows 10 version 1803,研究人员测试的是v 17134.523 x64(含有2019年1月补丁)。

研究人员建议开始的时候将目标Windows虚拟机断开网络。启动虚拟机后,使用Global Flags启用svchost.exe上的Page Heap。然后,使用Process Explorer来定位含有 dhcpcore.dll的进程,并kill掉。这会产生一个启用了Page Heap的新的DHCP客户端svchost.exe进程。以管理员身份运行WinDBG或其他调试器。最后,给Windows虚拟机联网。当目标虚拟机通过DHCP请求新的IP地址时,DHCP客户端svchost.exe就会奔溃。

CVE-2019-0726:Win10 DHCP客户端RCE漏洞

总结

微软已于2019年1月修复了该漏洞。该漏洞只影响Windows 10和Windows Server 2019,但不影响之前版本的操作系统。这表明DHCP可能在最新的操作系统版本中进行了重写。因此,DHCP的新实现中也可能会发现更多新的一些bug。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Practical Django Projects, Second Edition

Practical Django Projects, Second Edition

James Bennett / Apress / 2009 / 44.99

Build a django content management system, blog, and social networking site with James Bennett as he introduces version 1.1 of the popular Django framework. You’ll work through the development of ea......一起来看看 《Practical Django Projects, Second Edition》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具