Adobe Flash零日漏洞在野攻击完全分析报告怎么理解

本篇文章给大家分享的是有关Adobe Flash零日漏洞在野攻击完全分析报告怎么理解,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

背景

2018年1月31日,韩国计算机应急响应小组发布了一则关于Adobe Flash Player的 0day 漏洞警告,并称早在2017年11月中旬,就有黑客利用该漏洞实施有针对性的攻击。

2018年2月1日, Adobe官方发布了Adobe Flash Player系列产品的安全通告(APSA18-01),一个最新的AdobeFlash零日漏洞被发现针对韩国地区的人员发起攻击,该0day漏洞编号为CVE-2018-4878。

2018年2月5日,Adobe官方发布漏洞补丁,修复CVE-2018-4878零日漏洞

在CVE-2018-4878零日漏洞的补丁真空期,360安全卫士无需升级就能完美防御此次漏洞攻击。在此期间,360核心安全高级威胁应对团队迅速反应,率先截获了该漏洞的在野攻击并发布分析预警。在官方发布漏洞补丁,零日漏洞得到妥善解决后,本次我们发布在野攻击的完全分析报告,帮助大家从不同角度推知此次高级威胁攻击的全貌。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图1

漏洞文档攻击流程分析

攻击者对相关人员精心策划了社会工程学攻击,通过即时聊天工具和邮箱向相关人员发送包含漏洞及恶意代码的excel诱饵文档,诱骗受害者打开中招。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图2 诱饵文档内容

诱饵文档中包含了一个ActiveX对象,该对象对应的是一个swf文件。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解

图3 包含在文档中的ActiveX对象文件

打开文档后ActiveX对象会自动播放flash内容,允许播放后将从云端实施下一步攻击。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图4

诱饵文档中的flash播放后,下一步将请求远程URL www.dylboiler.co.kr/admincenter/files/boad/4/manager.php

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解

url请求参数包含id(唯一标识符)、fp_vs(flash版本)、os_vs(系统信息)

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图5

诱饵文档中的flash将解密远程URL地址返回的加密文件流,动态执行包含cve-2018-4878漏洞的flash内容。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图6

cve-2018-4878漏洞荷载所在网站是一个正规的韩国公司网站,疑似该网站已经被攻击者入侵并完全控制,攻击者可以在网站上添加任意的恶意代码。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图7

CVE-2018-4878零日漏洞分析

我们对cve-2018-4878漏洞文件流进行分析,发现样本通过操作Flash的com.adobe.tvsdk包中的DRMManager对象进行攻击。

该部分漏洞的关键代码存在于method_3方法中,该方法new了一个class_8的对象,并传给drmManager.initialize,然后将var_16置空。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图8

在class_2的构造函数中 LocalConnection().connect会主动调用gc释放没有的引用的内存,而第二次的LocalConnection().connect调用会产生异常,异常处理过程中又会new一个class_8的对象赋值给var_13。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图9

之后创建了一个定时器,定时器处理函数中,判断var_13.a1成员的值是否被修改。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图10

如果发现值被修改了,则调用flash_24/25方法。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图11

在flash_25方法中又会new 一个class_7的 ByteArray对象赋值给var_17。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图12

var_17是个ByteArray对象,通过修改ByteArray对象的Length可以完成任意内存读写,该处的漏洞利用技巧和hacking team的flash exploit技巧类似,相关代码已经开源就不再详述。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图13

进一步我们对该漏洞进行调试分析,将var_13 = newclass_8();代码注释掉将会触发空指针访问崩溃。

eax=6906d8e9 ebx=00000000 ecx=00000000edx=00000000 esi=08055d28 edi=0685b020eip=6850e148 esp=024fd5c0 ebp=024fd5f0iopl=0         nv up ei pl nz ac po nccs=001b ss=0023  ds=0023  es=0023 fs=003b  gs=0000             efl=00210212Flash42_28_0_0_137!DllUnregisterServer+0x14ecda:6850e148 8b4904          mov     ecx,dword ptr [ecx+4]ds:0023:00000004=????????

回溯发现地址数据来自esi+0c位置 

6850e142 8b4e0c          mov     ecx,dword ptr [esi+0Ch]6850e145 8b4908          mov     ecx,dword ptr [ecx+8]6850e148 8b4904          mov     ecx,dword ptr [ecx+4] 0:005> dd 066e4100066e4100 066e4f60 00000000 00000000 00000000066e4110 00000000 00000000 00000000 00000000

由于这里我们已经把var_13创建代码注释了,说明还有其他对象被错误的释放了,LocalConnection().connect会主动调用gc释放没有的引用的内存,所以这里我们再把这部分注释,并在 6850e1428b4e0c          mov     ecx,dword ptr [esi+0Ch] 处设置断点,观察被释放的数据内容。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图14

断点命中后,可以发现数据其实是class_8对象的内容,也就是var_16的内存。

eax=67c1d8e9 ebx=00000000 ecx=0607b2e0edx=00000000 esi=04785d28 edi=0626b020eip=670be148 esp=022fcfc0 ebp=022fcff0iopl=0         nv up ei pl nz ac po nccs=001b ss=0023  ds=0023  es=0023 fs=003b  gs=0000             efl=00200212Flash42_28_0_0_137!DllUnregisterServer+0x14ecda:670be148 8b4904          mov     ecx,dword ptr [ecx+4]ds:0023:0607b2e4=060ba4c0 0:005> dd 0618e1000618e100 67c51a88 00000002 0607b2e0 07d980400618e110 00001111 00002222 00003333 000044440618e120 00005555 00006666 00007777 000088880618e130 00009999 0000aaaa 00001111 00002222

最终分析确认cve-2018-4878零日漏洞是drmManager.initialize没有正确的处理所持有的对象导致UAF漏洞。

Shellcode攻击流程分析

接下来,漏洞触发执行的shellcode会通过进程名,判断用户是否安装了AhnLab、ViRobot APT Shield和360三款中韩常用的安全软件,以采取不同的方案进行攻击。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图15

l  三款安全软件,任意一款存在的环境

直接调用wininet系列函数下载http://www.1588-2040.co.kr/conf/product_old.jpg所对应的恶意荷载执行。

l  未安装三款安全软件,或可能存在其他未知安全软件的环境

创建cmd进程,针对cmd进程通过远程线程注入代码的方式下载http://www.1588-2040.co.kr/conf/product.jpg所对应的恶意荷载执行。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图16

l  两款韩国安全软件共存的环境

Shellcode将会直接退出,不做任何操作。

Shellcode所下载的恶意荷载地址所在网站,同样是一个正规的韩国公司网站,疑似该网站也已被攻击者入侵并完全控制,用于放置最终的恶意荷载。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图17

恶意荷载分析

最终执行的恶意荷载会分为两个阶段的程序,第一个阶段是Dropper荷载释放程序,第二个阶段是利用网络云盘进行C&C控制的后门程序。

荷载释放程序(Dropper)

程序从资源中加载名为JOK的资源,资源的内容为实际执行的Shellcode,程序新启动wscript.exe,通过远程线程的方式将shellcode注入到wscript进程中执行,最终Shellcode会从内存中解密释放PE文件,自行加载节区重定位在内存中执行最终的后门程序。

 Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图18

值得注意的是,此次程序的PDB路径,与2017年11月思科报告的Group 123 组织的ROKRAT木马(http://blog.talosintelligence.com/2018/01/korea-in-crosshairs.html?m=1)存在关联。

l d:/HighSchool/version13/2ndBD/T+M/T+M/Result/DocPrint.pdbl D:/HighSchool/version13/First-Dragon(VS2015)/Sample/Release/DogCall.pdb

同时,程序的执行流程和技术细节也与思科报告中的dropper程序一致,疑似是同一系列的ROKRAT木马程序。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图19

网盘后门程序(Cloud Drive RAT)

该程序使用公共网盘作为C&C服务器,用来存储截屏信息或者进行插件下载;相对于传统的CC服务器,使用公共网盘提高了流量识别的难度,因为网盘类网址均为可信的白域名。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图20

使用的云盘信息如下:

程序中出现的URL   对应网盘  
api.box.com   Box
content.dropboxapi.com   DropBox
api.pcloud.com   pCloud
cloud-api.yandex.net   Yandex

程序主要流程分析

程序首先生成了一个8字节的随机字符串,用来作为本次通讯的标识,该字符串在随后的上传和CC命令执行都有涉及

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图21

随后对操作系统版本和当前执行和环境进行检查

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图22

收集计算机、用户名、BIOS信息

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图23

尝试加载下列DLL,尝试获取VMwareTools版本号和BIOS版本信息,进而判断是不是处于沙箱环境或者调试中

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图24

l  沙箱环境列表

Dll名称   对应沙箱或调试环境  
SbieDll.dll   Sandboxie  
dbghelp.dll   Microsoft debugging tools
api_log.dll   GFI SandBox
dir_watch.dll   GFI SandBox

在判断沙箱环境之后,程序开始创建工作线程,执行相应的功能。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图25

该后门程序使用公共云盘进行数据中转,程序中内置了4种云盘,分别是box,dropbox,pcloud, yandex,此次截获的样本使用的为pcloud网盘。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图26

程序通过GDI API来实现截取受害机器屏幕的功能,并将图片保存在temp目录下,命名方式为随机产生的表示序号+当前截图的序号

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图27

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图28

随后,程序会读取图片数据,并删除temp目录下的图片,将之前收集到的环境信息和图片数据一起上传到云盘中。

 Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图29

 l  上传的数据格式

偏移地址   长度   信息  
0   8 随机生成的标识数据
10   2 系统版本信息
12   64 受害机器名
76   64 用户名
140   256 当前进程路径
396   128 BIOS信息
524   1 沙箱环境信息
525   1 判断是否Windows目录可写
526   40 Vmtools版本信息
566   39 主板,BIOS型号
605   7 字符disable
1119   4 截屏图片的大小
1123   不固定 图片数据

程序会循环向网盘请求名为 def_ + 随机标示的文件,通过对该文件进行解析,获取云端的C&C指令进行攻击。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图30

l  云控C&C命令列表

指令序号   功能  
1   从指定的网址中获取数据到内存中,作为Shellcode内存执行
2   从指定的网址中获取数据到内存中,作为Shellcode内存执行
3   获取新的网盘Token,下载文件ADI.bin,作为Shellcode内存执行
4   获取新的网盘Token,下载文件DDI.bin,作为Shellcode内存执行
5   从指定的网址中获取数据到内存中,保存文件%temp%/setup.exe执行
6   从指定的网址中获取数据到内存中,保存文件%temp%/setup.exe执行
7   获取新的网盘Token,下载文件ADX.enc,保存文件%temp%/setup.exe执行
8   获取新的网盘Token,下载文件DDX.enc,保存文件%temp%/setup.exe执行
9   获取新的网盘Token,下载文件ERSP.enc,保存文件%temp%/setup.exe执行

在完成命令解析后,程序还会调用网盘的删除API将对应的指令文件删除

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图31

我们推测在实际的攻击过程中,攻击者会收集截图等信息后,选取其中有价值的目标,再上传定制的指令文件到网盘中进行攻击。

攻击信息溯源

通过对程序的逆向分析,我们发现了网盘的Token权限并没有被严格限制,通过该Token可以获得网盘的注册信息和保存在网盘中的内容,从中我们定位到了攻击者的网盘注册邮箱为cheseolum@naver.com,注册时间为2017年12月11日,与韩国响应中心公告的11月开始攻击的时间相近。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图32

在1月31日攻击正式对外曝光后,仍然有大量新的中招者向该云盘上传信息,在获取到的截屏信息中,我们发现了大量的病毒检测沙箱和样本分析人员。从截屏信息中判断,大部分分析人员在根据https://github.com/brianwrf/CVE-2017-4878-Samples 中的样本在进行病毒分析。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图33

在截图排查中,我们还意外发现了疑似国内安全从业者的电脑桌面截屏,可能是其在下载分析样本时不慎中招。

Adobe Flash零日漏洞在野攻击完全分析报告怎么理解
图34

通过分析我们可以发现此次攻击是通过精心策划的,攻击周期长达三个月以上,攻击者通过入侵两个正规公司网站放置恶意荷载,使用正常的云盘服务作为C&C基础设施,不计成本利用零日漏洞,开发精巧的攻击方案。在攻击过程中所使用的大量资源,都表明这不是个人和一般团队能够实施的,这是一起典型的APT攻击。随着漏洞信息逐渐公开,相关单位和普通用户都需提高安全防范意识,及时更新Flash版本,并开启安全软件防御可能出现的漏洞威胁。

以上就是Adobe Flash零日漏洞在野攻击完全分析报告怎么理解,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/safety/222046.html

(0)
上一篇 2022年1月4日 12:54
下一篇 2022年1月4日 12:55

相关推荐

发表回复

登录后才能评论