东北亚活跃分子APT组织Kimsuky之攻击篇
2021-12-17 19:41:48 Author: blog.nsfocus.net(查看原文) 阅读量:45 收藏

阅读: 7

一、简介

1.1 Kimsuky简介

Kimsuky是被认为来自朝鲜的APT组织。该组织非常善于利用复杂的东北亚地缘政治局势制作诱饵,频繁针对韩国政府及韩美智库等机构发动钓鱼攻击。

本文将介绍Kimsuky使用过的部分文档钓鱼手法及脚本类恶意工具。相关钓鱼事件示例请参见绿盟博客文章——《东北亚活跃分子APT组织KIMSUKY之事件篇》。

二、文档/脚本类攻击法

Kimsuky的诱饵文档类型以word / excel和hwp文档为主,配以多种脚本进行攻击,脚本类型包括vba / vbs、hta、eps、wsf、js和powershell等。

2.1 office文档

Kimsuky多使用word+恶意vba宏进行攻击,这也是大部分APT组织和僵尸网络组织惯用的方式,屡试不爽。Kimsuky使用的vba格式多种多样,因目标与事件不同而不同,有些时候因为只需执行简单的下载任务而显得简陋,有时候又经过一番设计。

例如,2020年3月,Kimsuky投递名为“专家专栏稿件制作表格”的诱饵文档。该文档中, powershell命令被放在了文档的vba项目窗体输入框中,通过vba进行获取命令并执行,最终下载了FlowerPower恶意工具。之后在2020年6月,Kimsuky投递名为“朝鲜加强核战争威慑的措施及韩国的应对”的诱饵邀稿函,让目标就朝鲜第七届中央军事委员会,撰写文章进行评价与展望,其vba也使用了同样的手法。由于关键命令并不位于vba宏里,因此直接对宏进行静态检测将难以发现威胁。

图2.1 vba窗体中的ps命令

Excel 4.0宏攻击在Kimsuky的攻击中也有使用。2020年12月,Kimsuky冒充韩国通信公司业主联合会,向目标投递了名为“非法使用电话号码暂停系统(UNMS)用户状态调查表”的excel文档,便使用了该攻击方式。

图2.2 隐藏表格中的4.0宏及真实表格

总体而言,这类文档大多数只有当用户点击启用内容后,真实表格才会显示出来。 Kimsuky事先将包含实际内容的页面设置为隐藏,只显示一个页面来提示用户启用内容,而用户为查看实际内容只能照做,结果正中攻击者下怀,导致恶意代码的运行。

远程模板注入常见于使用了xml格式的第二代office文档,攻击者在settings中添加模板源,并设置Target字段为远程下恶意文件。这样,当目标用户打开文档时,office将自动执行下载动作并加载远程恶意模板。

例如2020年4月,Kimsuky利用韩国议会选举的热度[1],投递了名为《第21届国民议会选举相关》的诱饵文档。该文档打开后会加载一个包含恶意宏的远程dotm模板,只有当dotm文件成功加载后,office才会提示用户启用宏。这种方法将初始钓鱼文档和包含恶意宏的远程文档分离,起到保护作用,因为初始文档除了加载远程模板外,并没有其他恶意行为。

要加载远程模板路径

2.2 hangul文档

hwp是韩国hansoft开发的hangul办公软件使用的文档,因此一般见于针对韩国的攻击活动中。这种钓鱼攻击主要通过恶意ole内嵌对象、恶意eps及esp配合文档漏洞来进行。

同office文档类似,hwp也包含ole对象,可嵌入恶意内容。例如2020年11月,Kimsuky抓住了韩国方面关心美国总统大选结果的心理,采用了韩国中央日报美洲分社的文章作诱饵,投递了名为“美国大选预测”的文档。该文档会通过内嵌的vbs连接C&C,下载并执行后续的BabyShark组件。

图2.3 hwp内嵌的vbs

hwp文档支持eps(Encapsulated PostScript)脚本,这种脚本是Adobe推出的PostScript脚本(一种用于初版行业的打印机编程语言)的分支,常被攻击者用于执行恶意代码。

图2.4 hwp中的eps

例如,2019年3月,Kimsuky利用韩日在二战赔偿问题上的僵持局面,伪装成韩国外交部投递了名为“20190312日本每日趋势”的hwp诱饵文档,其内容主要涉及韩日争端及扣押日企资产等热点问题。该文档的eps会触发powershell来执行wsf脚本,用以下载另一段javascript脚本,最终下载执行恶意组件。

图2.5 shellcode启动powershell

再如,2020年6月,在被称为新“烟幕活动”的攻击中[2],Kimsuky投递了名为“无人飞机现状及改善方案”的hwp诱饵文档。该文档的eps会解密并加载shellcode,后者将创建计划任务以下载执行BabyShark组件。

图2.6 eps中中加/解密前后的shellcode

类似office文档,hwp也存在可用于任意代码执行的文档类漏洞。例如,Kimsuky在2020年7月投递了名为“朝鲜的灰色地带战略和反制方案”的hwp诱饵文档。“灰色地带战略”指的是美国的“对手”为达到自身目的而进行的不引起美方军事反击的一系列行为。这一概念在当时十分火热,有舆论称应对灰色地带战略将称为美国面临的一大挑战。诱饵文档的eps脚本会触发编号为CVE-2017-8291的GhostButt漏洞,将恶意代码注入进程,最终连接C&C下载后续组件。

此外,hwp文档也是可以进行加密保护的。2019年4月,Kimsuky在“烟幕活动”中投递了以朝俄首脑会谈为诱饵话题的hwp,其eps部分被加密,需要目标输入密码,以此避免杀软检查。

图2.7 shellcode注入行为;打开加密hwp时的密码框

2.3 PDF文档

Kimsuky在今年5~8月转而使用携带漏洞的恶意pdf文档,借用南北议题作为诱饵对韩国政府人员进行攻击[3]。

图2.8 Kimsuky使用的pdf诱饵内容

这些pdf内嵌了隐藏的恶意javascript脚本,通过adob​​e acrobat漏洞cve-2020-9715触发,最终解密pe文件并在内存中加载执行,用来下载后续窃密组件。

图2.9 PDF要触发的javascript

在以往,Kimsuky多使用pdf作为钓鱼网站攻击中的白文档,此次活动说明带漏洞的pdf文档已加入其武器库当中。

三、部分定制类脚本攻击组件

3.1 BabyShark

BabyShark是Kimsuky使用的一个多层次hta+vbs脚本窃密工具,在2018年针对美国的攻击中被发现。这类文档通常针对美国和韩国,包含各类半岛实事话题。

BabyShark有多种加载方式,常见的是通过word vba宏触发。文档携带的vba宏会启动mshta进程去下载并执行远程hta文件,进而执行后续的vbs脚本,以收集系统信息并下载后续恶意窃密组件。此外,少数情况下, pe文件会作为hta文件的下载器。下图所示的pe文件会通过注册表设置命令行默认启动项,当目标启动cmd时,便会下载并执行远程hta文件。

图3.1 pe版hta下载器

BabyShark的一级C&C大多都是被攻陷的普通网站,这是APT组织常见的一种C&C部署方式,目的是防止自身暴露。BabyShark的hta文件会访问这些站点上部署好的资源文件,通常是一个php文件,并由服务器会返回要执行的vbs脚本,如下图所示。

图3.2 hta下载器

如上图所示,hta中使用数字1作为php资源文件的参数,得到第一阶段vbs脚本。这一阶段的vbs脚本通常只进行基本操作,主要涉及:

  1. 启用Office所有宏。
  2. 收集系统版本、用户名、主机名、IP、指定的目录结构、进程列表、最近查看、磁盘等系统信息。
  3. 为下一阶段的hta文件设置计划任务,并关闭当前mshta进程。
图3.3 BabyShark第一阶段vbs脚本

第一阶段的vbs脚本将收集到的信息,或直接上传,或放在本地由后续任务涉及的脚本进行上传。某些变种会将将数据伪装成编码证书进行发送。

vbs脚本最后会为下一阶段的hta文件设置计划任务。而后者再访问php资源文件时,会附加不同的数字参数,以接收下一阶段的vbs脚本。新的vbs脚本同样会下载后续的hta,后者再使用不同的参数访问php文件,如此反复:

hxxp(s)://<domain>/<path>/<resource>.php?<param>=1

hxxp(s)://<domain>/<path>/<resource>.php?<param>=2

hxxp(s)://<domain>/<path>/<resource>.php?<param>=3

这样,通过让C&C的php资源文件接收不同参数来返回不同vbs脚本,扩展了BabyShark的攻击行为,如下图所示:

图3.4 BabyShark攻击链

第二阶段和第三阶段会执行更复杂功能,下载其他关键组件以展开进一步的窃密活动。这种连环套式的通信,使得BabyShark的攻击链层次鲜明,可起到对后续组件的保护作用,并干扰取证。而且某些变种在设置使用mshta下载hta的计划任务时,会令其不立即启动,以对抗某些单个程序运行时间受限的沙箱。

3.2 FlowerPower / BoboStealer

Kimsuky使用钓鱼邮件释放的另一类窃密脚本类工具是FlowerPower / BoboStealer,因其代码中曾出现的flower字符串和域名中出现的bobo字符串而得名。该工具由powershell编写,结构简单,用于收集各类系统信息,并下载远powershell代码并执行。

图3.5 两个FlowerPower对比

例如今年5月,Kimsuky利用朝美恢复对话的热点信息,投递名为“宪法日国际学术论坛”的诱饵文档,下载的便是FlowerPower。

图3.6 用于下载FlowerPower的混淆后的vba宏

首先,FlowerPower将最近访问的文件、关键文件目录、操作系统配置、进程列表和常见目录等系统信息,保存到日志文件中并进行简单加密。之后,FlowerPower开始无休止地接收C&C指令,并且在每一次请求C&C时都会上传之前的日志。

图3.7 FlowerPower流量示例

每次循环,FlowerPower会从C&C下载并解密执行一段powershell代码载荷,功能包括收集本地文档和执行exe可执行文件。下载的载荷,将以powershell 后台任务形式运行,并限制同时运行的任务小于3个。

图3.8 FlowerPower主循环

此外,在执行命令后,PowerShell会再次请求C&C,访问一个名为del.php的资源文件。这可能是指示C&C删除之前提供的下载内容,防止重复下载和执行:

hxxp://<domain>/<path>/del.php?filename=<name>

总体看来,尽管FlowerPower本体代码量并不多,但由于能够接收powershell指令,故具备了远程控制功能。

3.3 Winload

Winload是Kimsuky在2020年6~10月对美行动时使用过的vba / vbs脚本组件。该组件功能简单,上传系统基本信息和软件安装信息,然后释放KGH套件和CSPY间谍程序,以进行后续窃行为。

2020年中旬,Kimsuky使用“朝鲜难民”网站中一篇名为“对脱北者的采访”的文章作为诱饵话题,向韩方关注脱北者的群体投递了同名dotm钓鱼文档。文档中的vba会释放出名为winload的exe文件,后者正是CSPY Downloader。

图3.9 Winload释放exe

而在2020年8月中旬的攻击活动中,Winload通过vba解密出名为winload.x的vbs脚本,来访问C&C并获取后续恶意代码并执行。为避免杀软监视到执行脚本的动作,Winload还特地将Windows组件cscript.exe复制到用户目录下并重命名,再将其执行。此外,Winload通过注册表HKCU\Environment\UserInitMprLogonScript键值来达成驻留操作,使得恶意行为在杀毒软件启动就能得到执行。2020年10月,Kimsuky再度使用Winload发起攻击,下发了KGH浏览器窃密组件和KGH安装程序。Winload的流量示例如下图所示:

3.10 Winload流量示例

3.4 VbaAnti

2021年1月,Kimsuky利用韩方关注拜登胜选后韩美关系下一步发展的心理,投递了名为“拜登政府调查问卷”的诱饵文档。这一系列文档中使用vba宏,疑似下发了Gold Dragon木马。vba宏会详细检查指定杀软进程并上报,甚至会遍历ProgramFiles目录以检查是否包括visual studio、ida这样的开发/安全工具,故我们称该脚本工具为VbaAnti。如果存在指定的安全工具,则VbaAnti将不会有后续行为。

图3.11 vba中检查杀软和安全工具的行为

3.5  Wsf / Javascript Loader

Kimsuky的武器库中,包含一种使用wsf + javascript作为加载器的攻击模式。

2019年1月,Kimsuky向韩国多名报道统一部对朝工作的记者投递钓鱼文档,其附件是一个冒充hwp文档的自解压exe文件。该自解压文件会释放并执行wsf脚本,后者内嵌的js将从连接Google Drive获取C&C,之后连接此C&C来执行远程控制功能,包括执行js、下载组件、上传文件、自更新和修改请求间隔操作。

图3.12 js的远程控制部分
图3.13 js攻击流程

此外,Kimsuky还将wsf / js直接伪装成文档来引诱用户点击,这与将exe伪装成文档是同一种套路。

再如今年4月,Kimsuky向韩外交人员两次投递的名为“苍穹模型性能改造系统开发项目现场确认资料-合作企业分发用”和“2021外交部驻外公馆服役相关情况调查问卷”的“文档”,实际上是wsf / javascript脚本,在打开无害hwp的同时,会释放出AppleSeed组件并执行。之后Kimsuky在5月投递了“朝鲜无核化控制塔建设(计划)”,同样是wsf脚本,通过内嵌的javascript执行类似的恶意代码。

图3.14 wsf+js脚本

四、总结

4.1 总结

Kimsuky有着多样化的武器库,善用钓鱼攻击,长期活动,其手法多样,不拘一格。钓鱼攻击作为一种可绕过外部攻击并直接进入内部网络的方式,显然已经被Kimsuky使用得非常纯熟。

[1] https://blog.alyac.co.kr/2906

[2] https://blog.alyac.co.kr/3033

[3]https://blog.alyac.co.kr/3970

版权声明

本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。


文章来源: http://blog.nsfocus.net/apt-kimsuky-2/
如有侵权请联系:admin#unsafe.sh