内容简介: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处写一个逗号字符。该逗号是特定域名之间的分隔符。
代码分析
源代码如下:
上面的代码段从输入缓存中复制了一个域名到输出缓存中,一次一个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服务:
目标虚拟机应当安装没有安装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就会奔溃。
总结
微软已于2019年1月修复了该漏洞。该漏洞只影响Windows 10和Windows Server 2019,但不影响之前版本的操作系统。这表明DHCP可能在最新的操作系统版本中进行了重写。因此,DHCP的新实现中也可能会发现更多新的一些bug。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 开源邮箱客户端Thunderbird 60.3修复多个高危漏洞
- MySQL客户端jdbc反序列化漏洞payload
- 渗透测试及漏洞挖掘技巧干货分享——客户端JavaScript静态分析
- 使用Sboxr自动发现和利用DOM(客户端)XSS漏洞
- 挖洞经验 | 从存储型XSS到RCE的Steam客户端漏洞
- Razer Synapse 3 Windows客户端本地提权漏洞分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
LINUX与UNIX Shell编程指南
David Tansley / 徐炎、张春萌 / 机械工业出版社 / 2000-6 / 38.00元
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。一起来看看 《LINUX与UNIX Shell编程指南》 这本书的介绍吧!