CVE-2018-4990 漏洞详情分析
原文地址:https://mozhe.cn/news/detail/294
测试版本:AcroRdrDC1700920044_en_US
漏洞模块: Escript.api
漏洞函数
修复函数
问题分析
拷贝对象的时候把DWORD类型的对象地址作为BYTE类型进行了拷贝,堆对象拷贝溢出漏洞。对象偏移在0x50的地方,也就是错误的位置。
Javascript里面喷射的对象代码。
修复方案
定位到问题很好修复。
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保护,所以地址看起来不一样。
ROP指令不进行一一讲解,接下来通过ROP技术构造了一个函数VirtualAlloc分配一段内存。注意看下EAX寄存器的值。
EAX是0x90909090,adobe的javascript的堆喷射器里面也有0x90909090。
使用VirtualAlloc函数申请了一段可读可写可执行的内存,大小为66049字节。为什么呢?因为恶意pdf里面还有个pe文件,shellcode应该带有一个pe加载器,直接在本进程在内存执行pe文件。
接下来返回到了恶意内存中的shellcode继续执行。注意一下,前面4字节是0x90。说明那个是填充的NOP指令。
Shellcode
第一个功能就是在shellcode长度(0x2710字节长度)后面搜索一个4字节的标记0xBFAFBFAF。搜索标记的作用是定位PE头。
接下来用经典的fs:[0x30]技术定位kernel32的基址。
接下来通过解析PE文件搜索GetProcAddress函数的地址,这也是windows经典的shellcode技术。
<p style="font-size:16px;" >使用getprocaddress函数得到loadlibrarya、virtualalloc、virtualfree、virtualprotect、getmodulehandlea的地址
接着是PE加载器的经典功能,拷贝PE头、修复区段、重定位、填充输入表等等。
接着使用VirtualProtect函数改写PE为可读可执行可写。
最后调用PE文件的入口函数,因为PE是dll所以入口是DllMain。
这个dll只有一个功能,使用MessageBoxA弹一个对话框。
Dll的入口函数。
完事收工。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31539653/viewspace-2155273/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31539653/viewspace-2155273/
CVE-2018-4990 漏洞详情分析相关推荐
- Teams零点击可蠕虫跨平台 RCE 漏洞详情公开,微软评为低危且拒绝分配CVE被吐槽...
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Evolution Gaming 公司的安全工程师 Vegeris 发布了位于微软 Teams 中的五个可蠕虫.跨平台的0day或一次 ...
- 工控系统的全球安全现状:全球漏洞实例分析
工控系统的全球安全现状:全球漏洞实例分析 一.摘要 运营技术(OT).网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性.效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来 ...
- 蓝牙App系列漏洞原理分析与漏洞利用
蓝牙App系列漏洞原理分析与漏洞利用 作者: heeeeen 本文系转载,目的是学习,如有侵权,请联系删除 转载出处:http://www.ms509.com/ 蓝牙App漏洞系列分析之一CVE-20 ...
- 绿盟科技发布OpenSSL高危漏洞技术分析与防护方案 G20成员国美国、中国、德国受影响较大...
近日,OpenSSL官方发布了版本更新,修复了多个OpenSSL漏洞,这次更新所修复的漏洞中,有两个危害等级较高的为CVE-2016-6304和CVE-2016-6305.绿盟科技对此漏洞进行了技术分 ...
- 已遭利用的Windows 0day漏洞 CVE-2020-1380分析
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 卡巴斯基发布博客文章,简要分析了微软在8月补丁星期二修复的一个已遭利用 0day CVE-2020-1380.如下内容编译自该文章. ...
- php命令执行漏洞利用,ThinkPHP 5.0 5.1远程命令执行漏洞利用分析
1漏洞利用方式 5.0版本POC(不唯一) 命令执行:? s=index/thinkapp/invokefunction&function=call_user_func_array&v ...
- 绿盟科技 linux漏洞,绿盟科技发布LINUX内核本地提权漏洞技术分析与防护方案
Linux内核的内存子系统在处理写时拷贝(Copy-on-Write,缩写为COW)时存在条件竞争漏洞,导致可以破坏私有只读内存映射.一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,进 ...
- 漏洞复现-webmin漏洞系列分析与利用
webmin漏洞系列分析与利用 Webmin 远程代码执行CVE-2022-0824 编号CVE编号:CVE-2022-0824 影响版本 漏洞简介 复现 拉取漏洞镜像 启动漏洞环境 解决方案 POC ...
- 已遭利用的Windows 0day漏洞 CVE-2020-1380 分析
卡巴斯基发布博客文章,简要分析了微软在8月补丁星期二修复的一个已遭利用 0day CVE-2020-1380.如下内容编译自该文章. 文章指出,2020年5月,卡巴斯基阻止了利用 IE 恶意脚本攻击某 ...
最新文章
- 关于meta的一些知识
- JZOJ 5637. 【NOI2018模拟4.8】一双木棋
- Java-使用反射获取类型信息
- java 调用 rsync_运行rsync时,QProcess不显示任何输出
- 想要轻松入门数据分析,这些知识不得不看!
- JVM的7种垃圾收集器
- p2093 [国家集训队]JZPFAR
- 赶快拿走!分享4款实用的软件,一般人我都不告诉他!
- 电脑插入了U盘却读取不出来的方法
- 2019半年总结——学习与成长
- 【python绘图】seaborn(sns)的主题风格
- 一文读懂中国历代龙纹演变(推荐收藏)
- MySQL 是怎么加行级锁的?为什么一会是 next-key 锁,一会是间隙锁,一会又是记录锁?
- C语言函数递归—经典递归问题
- cs 与 bs 区别
- java jar包资源文件_深入jar包:从jar包中读取资源文件
- 成都目前比较好的软件公司
- 【C语言】- 通讯录实现详解
- 乔布斯去世9年了,他的这篇经典演讲值得我们一读再读
- 单片机双机通信c语言实验心得,80C51单片机双机通信与多机通信的使用方法