近期APT攻击事件频发—安恒信息再次成功检测到APT攻击样本

>>>>

前言

乌克兰电力系统受到APT攻击事件,给国内外企业和用户都敲响了警钟,与此同时,安恒信息在国内也监控到了多次APT攻击。近期,安恒信息APT威胁分析设备在某用户网络中发现了一个APT攻击样本,这是一个由EncapsulatedPostScript(EPS) filter模块(32bit下模块为EPSIMP32.FLT)中一个User-After-Free漏洞所构造的利用样本

该样本可在多种环境下触发成功,使攻击成功率大大增强,且该样本中的ROP技巧使用了一种较新的方法,该方法可以绕过EMET等防护软件的检测,攻击具有极强的指向性和隐蔽性,属于典型的针对性的APT攻击。

>>>>

漏洞成因及利用分析

当EPS在处理字典类型(dict)的copy操作时,会将接受拷贝方的键值对条目全部删除,然后再重新分配一个进行数据拷贝(正常情况下在字典拷贝时只对要拷贝的元素进行操作,而不影响其它元素)。

字典copy操作过程中的delete过程

而EPS在处理forall操作时,当处理类型为字典(dict)时,forall逐个处理字典(dict)中的每个键值对,forall会获得当前键值对的内容以及一个ptrNext指针指向下一个要处理的键值对,并将键(key)和值(value)的内容放到操作栈中,然后处理forall的处理过程(proc),处理完后仍保留ptrNext指针以处理下一个键值对。而如果在forall处理过程(proc)中有字典的拷贝(copy)操作,copy操作会将键值对条目全部删除,而forall的ptrNext指针仍存在着,这时ptrNext就变成一个野指针,只要精心构造指针指向的数据,就可以达到利用效果。

forall处理字典类型时的部分过程

如该样本利用方式为通过该野指针最终构造出一个起始地址为0x0,大小为0x7fffffff的string对象,这样就可以在该空间内作任意的读写作为后期ROP及shellcode等的利用。

>>>>

样本危害和影响

Shellcode的功能主要为释放一个DLL并加载执行。

溢出成功后会释放一个恶意的dll文件。

样本的行为过程

该dll文件在前台打开伪装的原文件名doc,并显示“文件毁损严重无法正常开启”及大量乱码,迷惑用户掩盖入侵痕迹。其实它在后台尝试下载黑客特定的远程后门模块,经过解密和手动内存加载,减少安全软件报警机率及磁盘文件残留。

该后门模块短小精悍,但功能强大。支持IE浏览器注入、HTTP中间人攻击、本地磁盘文件读写操作、键盘记录、屏幕获取、局域网资源操作、网络状态及端口映射、注册表/进程/服务等系统操作、远程shell命令和文件执行、屏幕锁定、重启注销关机、消息框弹窗等黑客指令和模块。

>>>>

结语

该漏洞及利用样本的威胁程度非常高,可以在多种环境下成功利用,并且其构造的ROP链及shellcode能够绕过多款安全性增强工具的检测,所以需要做好防范工作。

原文发布于微信公众号 - 安恒信息(DBAPP2013)

原文发表时间:2016-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏游戏杂谈

Ant+JSDocTookit生成Javascript文档

需要备上下面三样东西 JSDocTookit http://code.google.com/p/jsdoc-toolkit/

1743
来自专栏Crossin的编程教室

Python 抓取网页乱码原因分析

在用 python2 抓取网页的时候,经常会遇到抓下来的内容显示出来是乱码。 发生这种情况的最大可能性就是编码问题:运行环境的字符编码和网页的字符编码不一致。 ...

3616
来自专栏大数据钻研

一个基于Java的开源URL嗅探器

这是一个可以检测并规范化文本中的URL地址的Java库。 ? 今天,我们很高兴做一个分享,因为我所在的 Linkedin 公司 开源了我们做的一个ULR探测工具...

40411
来自专栏腾讯大数据的专栏

腾讯大数据之TDW计算引擎解析——Shuffle

腾讯分布式数据仓库(Tencent distributed Data Warehouse, 简称TDW)基于开源软件Hadoop和Hive进行构建,并且根据公司...

4438
来自专栏FreeBuf

Gadget构造:从JIT-ROP到对抗XnR

写在前面 简单地说,本文介绍了两种构造gadget的思路。(在浏览器支持JIT的情况下) 演进:关于JIT-ROP 我们知道,最初DEP的出现是为了对抗的栈溢...

3554
来自专栏游戏杂谈

php正则表达式的分组捕获

经过测试,发现php正则表达式获取分组捕获是从$0开始,而平时工作中JavaScript中的正则是$1..$9

1313
来自专栏用户2442861的专栏

从零开始山寨Caffe·陆:IO系统(一)

http://www.cnblogs.com/neopenx/p/5248102.html

862
来自专栏葡萄城控件技术团队

Html5 FileReader 对文件进行Base64编码

以Base64进行编码的数据Url开始越来越广泛的被应用起来,原来做Base64转换要自己写一个小程序来转,其实Html5的FileReader的readAsD...

2868
来自专栏游戏杂谈

url空格转码的问题

最开始我使用的是chrome,发现有脚本报错了,以为是服务器维护了,但再一想,不对啊,刚刚明明是好的,再返回首页,正常。再输入搜索信息,又遇到了这个界面。然后我...

1386
来自专栏walterlv - 吕毅的博客

语义耦合(Semantic Coupling)

发布于 2018-02-05 10:38 更新于 2018-06...

541

扫码关注云+社区

领取腾讯云代金券