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

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

内容简介: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。


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

查看所有标签

猜你喜欢:

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

LINUX与UNIX Shell编程指南

LINUX与UNIX Shell编程指南

David Tansley / 徐炎、张春萌 / 机械工业出版社 / 2000-6 / 38.00元

本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。一起来看看 《LINUX与UNIX Shell编程指南》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换