CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

申博_安全预警 申博 59次浏览 未收录 0个评论

简介

2019年7月,微软修复了Jet Database Engine(Jet数据库引擎)中的43个bug,个中10个具有CVE编号。之前研究人员剖析了CVE-2018-8423破绽发生的泉源,在剖析该破绽的补丁时,研究人员发明有一种绕过该破绽的要领,研究人员将该破绽报告给微软,微软于2019年1月的补丁中修复了该来的,该破绽CVE编号为CVE-2019-0576。研究人员发起用户更新体系到最新版本。

本文将引见CVE-2019-0576破绽的泉源。为应用该破绽,攻击者须要运用社会工程技术使受害者翻开一个JS文件,JS文件会运用ADODB衔接对象来接见歹意Jet数据库文件。一旦歹意Jet数据库文件被接见,就会在msrd3x40.dll中挪用有破绽的函数,致使该破绽被应用。

背景

研究人员在之前的文章https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/jet-database-engine-flaw-may-lead-to-exploitation-analyzing-cve-2018-8423/中剖析了怎样运用歹意Jet数据库文件来触发CVE-2018-8423破绽。假如index number太大,顺序就会在以下位置奔溃:

ecx含有歹意index number。应用了微软CVE-2018-8423补丁后能够看到,翻开歹意文件后,就会发生毛病,而且奔溃

补丁剖析

研究人员决议进一步剖析该题目是怎样打补丁的。剖析msrd3x40!TblPage::CreateIndexes函数后,研究人员发明会搜检IndexNumber是不是大于0xFF(十进制的256),以下所示:

ecx中含有歹意值为00002300的index值,而且是大于0xFF。剖析代码,研究人员发明个中有一个jump指令。假如检察jump指令,就能够看到以下位置:

能够看到个中挪用了msrd3x40!Err::SetError函数,也就是说假如index值大于0xFF,歹意文件就不会被剖析,顺序就会给出毛病音讯Unrecognized database format并停止。

补丁中的题目

剖析该补丁,能够看出假如index值大于0xFF,顺序就会中断。研究人员准备用index值“00 00 00 20”测试一下,发明函数msrd3x40!Table::FindIndexFromName中发生了奔溃,以下所示:

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

题目泉源

我们晓得假如index值小于0xFF,函数msrd3x40!Table::FindIndexFromName就会奔溃,进一步剖析发明奔溃发生在以下位置:

看起来彷佛顺序尝试接见位置[ebx+eax*4+574h],然则不可接见,也就是说发生了越界读题目。

这里的奔溃与CVE-2018-8423中的异常类似,只不过CVE-2018-8423中的是越界写。检察eax发明个中含有0055b7a8,给它乘以4,就变成了一个异常大的数。

检察文件:

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

从下图能够看出,值00 00 00 20对应的index名为ParentIDName:

剖析奔溃点的调试器,能够看出ebx+574h指向的是一个内存位置,eax含有乘以4的index值。下面盘算:

1. 激发奔溃的eax值是什么?现在已晓得应当小于0xFF,然则最小值是多少呢?

2. 激发该破绽的根本原因是什么?

用于网络钓鱼、恶意软件和诈骗:针对攻击者滥用新注册域名的研究与分析

一、执行摘要 众所周知,新注册域名(NRD)一直以来都受到攻击者的青睐,被广泛使用于恶意攻击之中。根据学术界和行业的研究报告,已经以统计学方式证明了新注册域名确实存在风险,同时揭示了攻击者如何恶意使用新注册域名,具体包括网络钓鱼、恶意软件和诈骗。因此,最佳安全实践要求我们阻止并密切监测企业流量中的新注册域名。尽管有一些证据指向这个观点,但目前还没有研究人员针对真实样本中新

在msrd3x40!Table::FindIndexFromName处设置断点,修正index值为0000001f,能够看出edx中含有指向index name为ParentIdName的指针:

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

继承调试发明来自[ebp]的eax值和来自[ebx+5F4h]的ebp值,以下所示:

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

ebx+5F4以下所示:

能够看出ebx+5F4含有文件中的一切index的index number。本例的文件中含有两个index,分别是“00 00 00 01”和“00 00 00 1f”。仔细搜检内存能够看到index的最大值为0x20,也就是32:

最先位置为: 00718d54

每一个index值为4字节,所以0x20*4 + 00718d54 = 00718DD4

然后检察ebx+574+4,能够看到个中含有指向index name的指针:

因而,完全的内存构造应当是如许的:

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

在位置EBX+574处只要0x80(128)字节来坚持index name指针。每一个指针都坚持在index number位置,比方index number 1会保存在EBX+574+1*4,index number 2会保存在EBX+574+2*4,以此类推。

假如给定的index值大于31,顺序就会覆写之前0x80字节的数据,是从位置EBX+5F4最先的,也是歹意文件的index number。本例中,假如用00 00 00 20替代00 00 00 1f,EBX+5F4位置处的index number就会被覆写,以下所示:

顺序尝试在msrd3x40!Table::FindIndexFromName中实行该指令:

Mov ecx, dword ptr [ebx+eax*4+574h]

eax中含有的index number应当是00 00 00 01,但它被内存地址0055b7a8覆写了,该内存地址乘以4,就变成了一个大数,然后加上574h。假如内存区域中不存在,顺序尝试从内存中读取,就涌现了接见违规毛病。

所以,前面的题目就有了答案:

1. 小于0xFF大于 0x31 会形成奔溃,假如来自[ebx+eax*4+574h]的内存位置不可接见。

2. 破绽的泉源在于index number被内存位置覆写了,激发无效的内存接见。

微软怎样修复?

研究人员决议继承剖析微软宣布的补丁以相识是怎样修复该破绽的。从剖析中能够看出,大于0x20(32)的值会激发奔溃,所以补丁就对此举行搜检。微软在补丁中加入了该搜检,以下所示:

CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析

如上图所示,eax中含有index值,并与0x20举行对照。假如大于或即是0x20,顺序就会跳转到72fe1c00。剖析该位置,能够看到:

如上图所示,它挪用了destructor,然后挪用了msrd3x40!Err::SetError函数。顺序会显现音讯Unrecognized database format,然后停止。

结论

研究人员于2018年10月将该破绽报告给了微软,微软于2019年1月修复了该来的。破绽CVE编号为CVE-2019-0576,研究人员发起用户更新Windows到最新版本,并实时装置厂商补丁。

本文翻译自:https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/analyzing-and-identifying-issues-with-the-microsoft-patch-for-cve-2018-8423/


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明CVE-2019-0576:CVE-2018-8423补丁绕过题目剖析
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址