如何进行CVE-2018-4990漏洞分析-创新互联

这篇文章给大家介绍如何进行CVE-2018-4990 漏洞分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、重庆App定制开发成都手机网站制作、微信网站制作、软件开发、雅安服务器托管等实行标准化操作,让客户可以直观的预知到从创新互联建站可以获得的服务效果。

测试版本:AcroRdrDC1700920044_en_US

漏洞模块: Escript.api

漏洞函数


如何进行CVE-2018-4990 漏洞分析

修复函数

如何进行CVE-2018-4990 漏洞分析

问题分析

拷贝对象的时候把DWORD类型的对象地址作为BYTE类型进行了拷贝,堆对象拷贝溢出漏洞。对象偏移在0x50的地方,也就是错误的位置。

如何进行CVE-2018-4990 漏洞分析

Javascript里面喷射的对象代码。
如何进行CVE-2018-4990 漏洞分析

修复方案

定位到问题很好修复。

ROP技术

使用EScript.api模块作为ROP执行地址,基址为69260000,ROP表如下.

0D130064 692E2803 EScript.692E2803

0D130068 692E2803 EScript.692E2803

0D13006C 692E2802 EScript.692E2802

0D130070 693F7084 <&KERNEL32.VirtualAlloc>

0D130074 69271784 EScript.69271784

0D130078 693EAF26 EScript.693EAF26

0D13007C 69278000 EScript.69278000

0D130080 69283AAA EScript.69283AAA

0D130084 6936F282 EScript.6936F282

0D130088 00010201

0D13008C 692E2802 EScript.692E2802

0D130090 692695C4 EScript.692695C4

0D130094 77842FB6 kernel32.VirtualAlloc

0D130098 69283AAA EScript.69283AAA

第一条ROP指令RETN在692E2803,为一条RETN指令。因为有ASLR保护,所以地址看起来不一样。

如何进行CVE-2018-4990 漏洞分析

ROP指令不进行一一讲解,接下来通过ROP技术构造了一个函数VirtualAlloc分配一段内存。注意看下EAX寄存器的值。


如何进行CVE-2018-4990 漏洞分析

EAX是0x90909090,adobe的javascript的堆喷射器里面也有0x90909090。


如何进行CVE-2018-4990 漏洞分析

使用VirtualAlloc函数申请了一段可读可写可执行的内存,大小为66049字节。为什么呢?因为恶意pdf里面还有个pe文件,shellcode应该带有一个pe加载器,直接在本进程在内存执行pe文件。


如何进行CVE-2018-4990 漏洞分析

接下来返回到了恶意内存中的shellcode继续执行。注意一下,前面4字节是0x90。说明那个是填充的NOP指令。


如何进行CVE-2018-4990 漏洞分析

Shellcode

第一个功能就是在shellcode长度(0x2710字节长度)后面搜索一个4字节的标记0xBFAFBFAF。搜索标记的作用是定位PE头。

如何进行CVE-2018-4990 漏洞分析

接下来用经典的fs:[0x30]技术定位kernel32的基址。


如何进行CVE-2018-4990 漏洞分析

接下来通过解析PE文件搜索GetProcAddress函数的地址,这也是windows经典的shellcode技术。


如何进行CVE-2018-4990 漏洞分析
<p  >使用getprocaddress函数得到loadlibrarya、virtualalloc、virtualfree、virtualprotect、getmodulehandlea的地址
如何进行CVE-2018-4990 漏洞分析

如何进行CVE-2018-4990 漏洞分析

接着是PE加载器的经典功能,拷贝PE头、修复区段、重定位、填充输入表等等。


如何进行CVE-2018-4990 漏洞分析

接着使用VirtualProtect函数改写PE为可读可执行可写。


如何进行CVE-2018-4990 漏洞分析

最后调用PE文件的入口函数,因为PE是dll所以入口是DllMain。


如何进行CVE-2018-4990 漏洞分析

这个dll只有一个功能,使用MessageBoxA弹一个对话框。


如何进行CVE-2018-4990 漏洞分析

Dll的入口函数。


如何进行CVE-2018-4990 漏洞分析

关于如何进行CVE-2018-4990 漏洞分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

网站题目:如何进行CVE-2018-4990漏洞分析-创新互联
转载注明:https://www.cdcxhl.com/article30/dpgcpo.html

成都网站建设公司_创新互联,为您提供软件开发自适应网站微信公众号全网营销推广建站公司关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发