一个利用CVE-2017-11292的APT样本技术分析(一)

2017 年 11 月 12 日 FreeBuf 兰云科技

1. 引言

最近沸沸扬扬的黑色绿洲(BlackOasis) APT 利用了Adobe Flash 的漏洞CVE-2017-11292。最近,我们发现除了黑色绿洲 APT 外,还有另外一个APT 攻击也利用了CVE-2017-11292这个漏洞。

2. 样本分析

这个APT 样本是一个大小为14K左右的.doc 文件,文件名为”World War3.doc”,这文件名就吓死本宝宝了。双击运行的话,会发现Word 一闪而后退出,同时产生一个新的Word进程。

显示的内容如下。大意是关于朝鲜核武器的评论。

浓浓的APT 攻击味道啊。

解压这个doc文件,发现有个activeX1.bin文件很可疑。

喂到十六进制编辑工具里面瞅瞅,

果然,是个doc文件!

把这个doc文件扫描一下,

发现里面嵌套了2个 3.8K大小的SWF文件, 事实上这两个SWF文件一模一样。估计这里攻击者犯了一个小错误,同一个文件嵌入了2次。

把SWF文件喂到反编译工具里,

代码非常简单,将binaryData里的数据解压缩,然后通过Loader.loadBytes() 加载。解压后数据如下图所示。

哦,卖高得,头上3个字节是C1 3B 69 这是个神马文件格式。Loader.loadBytes()怎么能加载呢?

仔细看一下init代码,发现下面这3行,

原来悟空你又调皮了,偷偷把SWF的文件头给替换了。把’CWS’文件头补回去。再次喂给反编译器,就可以看到第二层的真面目了。关键代码如下图

这段代码非常清晰:

首先去服务器“/p99uvs0.php”下载一个配置文件:配置文件内容如下:

k1=77wn6p1cl1k4&k2=3q1htxrk0ocm6uax&k3=131&k4=177

参数定义如下表:

k1 漏洞利用的 URL
k2 有效载荷(Payload)的URL
k3 漏洞利用模块解密的密钥
k4 有效载荷(Payload)的解密的密钥

获取到配置文件后,将从配置k2中指定的 URL去下载漏洞利用程序。这个漏洞利用程序是经过压缩和加密的。

解密算法较为简单,如下图所示

写个python脚本,可以解密出 漏洞利用程序。

解密后的漏洞利用程序是个混淆过的SWF程序。小样的,你以为你加个花我就认不出你来了?

反混淆后再反编译,发现如下代码:

这段代码,正是CVE-2017-11292的漏洞利用代码。在windbg中下断点,我们可以看到控制转移时发生的一幕。

在地址5e1c699f 处,控制通过call edx指令转移到了shellcode,地址0c0b0008处。

仔细分析该处指令不难发现,这种攻击方法是Hacking Team 使用的破坏

MethodInfo._implGPR() 虚函数指针的方法。这个函数是进入JIT 生成代码的函数,这种攻击的方法好处是可以绕过CFG的保护(这个函数并没有被CFG保护)。

在 0c0b0008 处,即为shellcode的开始。Shellcode代码并不复杂:

1) 首先在内存中找到传入的解密后的的有效载荷。它是个PE文件,在shellcode的后面,可以通过搜索PE文件头的方式定位到。

2) 然后通过ZwAllocateVirtualMemory()分配一块内存

3) 在2)分配的内存中加载PE文件,并将控制转移到PE文件入口点。

在这个攻击中,有效载荷为一个137K左右的后门,具体功能将在后续篇章中继续分析。

3. 样本溯源分析

此APT 攻击应该发生在今年10月份左右。既然是APT 攻击,溯源分析必不可少。那么攻击者来自哪个组织呢。

无论从攻击手法,还是攻击中使用到的一些代码的细节,比如k1,k2,k3,k4的配置,还有解密方式,甚至是有效载荷,种种迹象都表明,这个攻击应该出自APT28 之手。此APT攻击和去年的一个APT28攻击手法极为相似。

在我们的分析中还发现,CVE-2017-11292这个漏洞利用程序,包含有很多冗余代码。为什么会出现这种情形呢?我们不妨大胆的假设,(这个漏洞利用在攻击时很有可能是 0 day), 这个攻击代码很有可能是从 0 day 军火商那里购买后集成进来的。

那么至于此次攻击究竟针对哪个国家呢? 想想APT28来自于哪个国家,而样本中doc文件中提到的内容,我想聪明的读者心里一定已经有了答案了。

*本文作者:兰云科技银河实验室,转载请注明FreeBuf.COM

登录查看更多
0

相关内容

高级持续性威胁(Advanced Persistent Threat),指隐匿而且持久的电脑入侵过程。
[ICML-Google]先宽后窄:对深度薄网络的有效训练
专知会员服务
34+阅读 · 2020年7月5日
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【元图(Meta-Graph):元学习小样本连接预测】
专知会员服务
64+阅读 · 2020年5月31日
少标签数据学习,54页ppt
专知会员服务
198+阅读 · 2020年5月22日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【伯克利-滴滴出行】深度学习多源领域自适应综述论文
专知会员服务
53+阅读 · 2020年2月28日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
PC微信逆向:两种姿势教你解密数据库文件
黑客技术与网络安全
16+阅读 · 2019年8月30日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
威胁情报驱动:F3EAD 之利用
计算机与网络安全
4+阅读 · 2018年12月28日
比Selenium快100倍的方法爬东方财富网财务报表
程序人生
8+阅读 · 2018年10月31日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
NLP自然语言处理(二)——基础文本分析
乐享数据DataScientists
12+阅读 · 2017年2月7日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
5+阅读 · 2018年12月18日
Joint Monocular 3D Vehicle Detection and Tracking
Arxiv
8+阅读 · 2018年12月2日
ViZDoom Competitions: Playing Doom from Pixels
Arxiv
5+阅读 · 2018年9月10日
Stock Chart Pattern recognition with Deep Learning
Arxiv
6+阅读 · 2018年8月1日
Arxiv
6+阅读 · 2018年7月29日
Arxiv
4+阅读 · 2018年5月24日
Arxiv
3+阅读 · 2017年12月18日
VIP会员
相关VIP内容
[ICML-Google]先宽后窄:对深度薄网络的有效训练
专知会员服务
34+阅读 · 2020年7月5日
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【元图(Meta-Graph):元学习小样本连接预测】
专知会员服务
64+阅读 · 2020年5月31日
少标签数据学习,54页ppt
专知会员服务
198+阅读 · 2020年5月22日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【伯克利-滴滴出行】深度学习多源领域自适应综述论文
专知会员服务
53+阅读 · 2020年2月28日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
相关资讯
PC微信逆向:两种姿势教你解密数据库文件
黑客技术与网络安全
16+阅读 · 2019年8月30日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
威胁情报驱动:F3EAD 之利用
计算机与网络安全
4+阅读 · 2018年12月28日
比Selenium快100倍的方法爬东方财富网财务报表
程序人生
8+阅读 · 2018年10月31日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
NLP自然语言处理(二)——基础文本分析
乐享数据DataScientists
12+阅读 · 2017年2月7日
相关论文
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
5+阅读 · 2018年12月18日
Joint Monocular 3D Vehicle Detection and Tracking
Arxiv
8+阅读 · 2018年12月2日
ViZDoom Competitions: Playing Doom from Pixels
Arxiv
5+阅读 · 2018年9月10日
Stock Chart Pattern recognition with Deep Learning
Arxiv
6+阅读 · 2018年8月1日
Arxiv
6+阅读 · 2018年7月29日
Arxiv
4+阅读 · 2018年5月24日
Arxiv
3+阅读 · 2017年12月18日
Top
微信扫码咨询专知VIP会员