欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

重要漏洞预警:Windows DNS客户端里爆出多重堆缓冲区溢出破绽漏洞bug

来源:本站整理 作者:佚名 时间:2017-10-12 TAG: 我要投稿

微软已经在2017年10月份正式修复了漏洞CVE-2017-11779,该漏洞包含Windows DNS客户端中的多个内存崩溃漏洞,运行了Windows 8/Server 2012以及更新版本操作系统的计算机都将会受到该问题的影响,攻击者将能够通过恶意DNS响应来触发这些漏洞。在这个漏洞的帮助下,攻击者将能够在发送DNS请求的应用程序之中实现任意命令执行。

这也就意味着,如果攻击者能够控制你的DNS服务器(例如通过中间人攻击或恶意WiFi热点),那么他们就能够获得你系统的访问权。受该问题影响的不仅仅是你的Web浏览器,因为你的计算机系统会在后台不停地发送DNS查询请求,而攻击者只需要响应用户的查询请求就可以触发这些漏洞并实施攻击了。

研究人员在下面这个视频中对漏洞CVE-2017-11779进行了简单介绍,如果你想了解更多技术细节的话,请继续阅读本文。

漏洞破绽bug概述
在Windows 8/Windows Server 2012体系中,微软给Windows DNS客户端扩大了DNSSEC支撑,相干代码存在于DNSAPI.dll文件中。此中一个引入用来支撑DNSSEC的DNS资本记载(RRs)为NSEC3记载,该信息由Nsec3_RecordRead函数卖力处置。
CVE-2017-11779所包含的漏洞破绽bug均与Nsec3_RecordRead函数无关,因为该函数无奈网安地剖析NSEC3 RRs,并进一步招致了多重写入越界成绩。应用DNSAPI.dll文件的同样平常都是DnsCache办事,该办事的运转依赖于svchost.exe,并能够或许给Windows体系的DNS客户端供给DNS缓存办事。除此之外,另有许多其余必要发送DNS查问哀求的应用程序也会引入该办事。
必要留意的是,因为这种记载是存在网安成绩的,是以它理应是无奈经由进程任何失常的DNS剖析器的。正因如斯,以是只要当目标用户间接从入侵攻击者所节制的办事器中接收DNS相应的情况下,这些漏洞破绽bug才有能够被触发。同样平常来说,这里必要入侵攻击者完成自动的中间人入侵攻击。
本文重要涉及到的是存在漏洞破绽bug的DNS记载-NSEC3,NSEC3记载重要用来赞助DNS剖析器辨认记载名并验证DNSSEC有效性。
漏洞破绽bug先容
当你在看网页、听音乐或许甚么都不做的时刻,你的电脑都邑发送DNS哀求。除此之外,相似检测Windows体系更新的后盾运动异样也会发送这种哀求。绝大多数情况下,应用程序在发送这种哀求时是不会间接查看到相应数据的,因为相应内容必要先达到DNS缓存办事并存储上去以便后续应用,这种特征能够赞助体系削减发送DNS哀求的次数。
DNS是一种明文协定,而且无奈抵抗中间人入侵攻击。恰是因为这种特别性子,以是微软才引入了DNSSEC(域名网安)扩大。这种扩大引入了多种新的DNS记载,并能够或许向DNS客户端和办事器通报更多的信息。DNSSEC的目标是测验考试办理某些现存的网安成绩,但你能够曾经猜到了,它的呈现也带来了新的网安成绩。
微软在Windows8和Server 2012及其之后的操纵体系版本中为DNSSEC添加了客户端功效,随之一路的另有多种新的DNS记载。然则这种功效中有一条存在漏洞破绽bug的DNS记载,即NSEC3。当Windows DNS客户端在处置包含NSEC3记载的DNS相合时,它其实不没有停止必要的数据过滤或洗濯。歹意的NSEC3记载将能够或许触发这种漏洞破绽bug,并招致DNS客户端呈现内存瓦解成绩。假如入侵攻击者技巧充足好的话,他们乃至还能够在目标体系中完成随意率性代码履行。
因为这种记载自己的歹意性,是以它无奈经由进程失常的DNS体系。办事器在接收到这种记载时将会间接抛弃,因为它其实不符合NSEC3记载的标准规范。以是,假如入侵攻击者想要应用该漏洞破绽bug实行入侵攻击的话,他们的地位必须在目标用户和DNS办事器之间(中间人入侵攻击)。比如说,你如今在用咖啡店的WiFi上彀,而后或人想要对你实行入侵攻击,假如他们能够入侵你的路由器,那末他们就能够或许改动你所接收到的DNS相应了。
受影响的体系和若何修复该成绩
从Windows 8/Windows Server 2012到Windows 10/Windows Server 2016的一切版本WIndows操纵体系都邑遭到这些漏洞破绽bug的影响,但Windows 8以前的操纵体系不会受此影响。
假如你的盘算机操纵体系版本是上述体系此中之一的话,咱们倡议用户立即装置微软在2017年10月份宣布的网安更新补钉。
技巧细节
DNSAPI.dll中的这三个堆缓冲区溢出漏洞破绽bug能够经由进程一台歹意DNS办事器或中间人入侵攻击来触发,即发送歹意情势的NSEC3相应记载(RR)来对DNS哀求予以相应。研究人员这次阐发的是DNSAPI.dll v6.3.9600.18512 (x86, Windows 8.1),该成绩也曾经在v10.0.14393.206 (x64, Windows 10)中得到了确认。
缓冲区空间分派
Nsec3_RecordRead函数卖力经由进程挪用DNSAPI!DNS_AllocateRecordEx来为NSEC3相应数据分派目标缓冲区(destbuf),destbuf的分派巨细是由一个16位的受用户节制的数据长度域节制的,即一条DNS资本记载中的通用数据域。经由进程改动数据长度域,入侵攻击者就能够或许节制destbuf的巨细,而后停止越界读写入侵攻击了。
下图为WireShark捕获到的一条NSEC3资本记载,此顶用蓝色部门标记的便是数据长度域:

DNSAPI能够从Dns_ReadRecordStructureFromPacket函数中获得到这个值,而后Nsec3_RecordRead函数将依据这个值来决议缓冲区空间的分派巨细。
堆缓冲区溢出漏洞破绽bug #1-NSEC3 Salt_Length
第一个堆缓冲区溢出漏洞破绽bug位于DNSAPI!Nsec3_RecordRead+0xB9,这里它会将用户供给的8位Salt Length值看成memcpy的拷贝巨细。在咱们阐发的NSEC3资本记载样本中,NSEC3 Salt Length值的地位如下图所示:

假如入侵攻击者能够或许节制NSEC3 Salt Length的巨细,并让其跨越destbuf的巨细,那末入侵攻击者就能够或许应用这个堆缓冲区溢出漏洞破绽bug来完成越界写入操纵了。

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载