2018年韩国0DAY漏洞实例

来源: 作者:阿己 发布时间:2021-01-20 15:55:50

  2018年1月31日,韩国CERT发布公告称发现Flash 0day漏洞的野外利用,攻击者执行针对性的攻击;2月1日Adobe发布安全公告,确认Adobe Flash Player 28.0.0.137 及早期版本存在远程代码执行漏洞(CVE-2018-4878);2月2日,Cisco Talos团队发布了事件涉及攻击样本的简要分析;2月7日,Adobe发布了CVE-2018-4878漏洞的安全补丁。本文基于Talos文章中给出的样本及360安全卫士团队输出的报告,对相关样本做进一步的解析以丰富相应的技术细节,但是不涉及CVE-2018-4878漏洞的分析。 Flash 0day CVE-2018-487漏洞利用代码被嵌入到Office文档中,样本使用Excel文档为载体,内嵌了一个动画用于加载其中恶意的Flash组件:

  该诱饵文件中包含一个ActiveX对象,打开文件后会加载其中的Flash内容,并且该activeX1.bin不能直接通过AS3打开;将FWS前面的数据删除后,AS3即可正常反编译。此SWF本身是一个loader,运行前初始化了一个URLrequest实例,实例设置了对应的完成事件,通过该实例和远端服务器通信获取Exploit的解密秘钥后,调用Decrypt解密对应的Exploit代码:

  构造的发送初始数据的URL请求如下所示,具体包含Flash版本、唯一标示ID以及系统版本。

  攻击者通过这些基础信息确定目标系统是否在漏洞的影响范围内,这也是Flash漏洞利用中的常规操作,即Exploit本身不轻易落地,只有当本地环境确认后,再从C&C服务器返回对应的Exploit及对应的解密密钥。

  提交的数据包样例如下所示:

  在此之后,通过该请求返回的密钥解密得到Exploit执行:

  因为提供解密Exploit密钥的网站连接已经被移除,所以目前无法得到Exploit代码本身,因此本文是对Cisco Talos团队所提供的CVE-2018-4878漏洞利用完成以后的落地Payload进行分析,相应的文件Hash为:d2881e56e66aeaebef7efaa60a58ef9b

  该样本从资源JOK获取数据并注入到一个自启的wscript进程中执行

  注入的数据开头是一段加载代码,主要功能是重定位以及通过XOR解密之后的第二段Shellcode,通过加密Shellcode第一个字节与0x90 XOR操作获得解密密钥;Shellcode2首先获取Kernel32基址,之后通过90909090标记找到后续需要解密的PE文件地址,通过加密PE第一个字节与0x4D做XOR操作获取PE的解密Key,并解密出最后的PE文件,对应PE文件解密:

  之后该恶意PE文件被重新拷贝到一段申请的内存中修复导入表并执行

  被Shellcode加载到内存中执行的恶意代码是一个EXE程序,为ROKRAT家族后门远控。该样本会通过网盘上传数据,网盘的API Key会内置在样本数据里,下图为提取到的字符串的信息,样本会通过API调用4个国外主流的网盘,包括yandex、box、pcloud、dropbox。

  从文件中获取到Key的代码,上传到网盘的文件名格式为pho_[随机生成的8字节hex值(机器标识)]_[上传次数递加],构造文件名代码。

  使用得到的Key请求pcloud可以获取网盘的注册人信息

  使用listfolder API获取根目录的文件列表如下:

  然后通过API获取指定文件的下载链接,通过把上述返回结果中的hosts和path字段拼接起来得到路径下载文件,中间的16进制数据是随机生成的8字节Hex值,下载得到的部分文件列表。
 

  分析这些文件得到的数据格式,文件前部的数据为机器的型号和机器名信息以及执行起恶意代码的宿主路径:

  图片为电脑的截屏,如下是其中的一个例子:



 

  Linux的创始人LinusTorvalds曾说:我们需要尽量避免漏洞,但不可能完全消除。

  技术本身会不断地更新迭代,作为Web攻击的其中一员0DAY的发展也是不可避免的:既然漏洞不可避免,那么建立一个安全有效的漏洞防御体系就至关重要。