APT37,别名Group123、Venus 121、Reaper等,是一个活跃的朝鲜黑客组织,其攻击活动开始于2012年。
APT37的主要攻击目标为朝鲜的地理邻国,包括韩国、日本、俄罗斯、中国等,其中对韩国的攻击活动十分频繁。
朝鲜的黑客组织为数众多,而且普遍活跃,这使得早些年对攻击组织的划分十分困难。2017年以前,APT37的攻击活动大多与Lazarus组织的攻击活动混为一谈,并认为APT37是Lazarus组织的一部分。
近年来,随着APT37的活动增多,其手段和工具特征也越来越明显,与广义上Lazarus组织攻击行为的差异也变得显著。目前,APT37已被确认为针对韩国政企与脱北人员等政治目标,使用RokRat、NavRat、KevDroid、PoorWeb等标志性木马发动攻击的高效黑客团体。
2019年12月,微软宣布通过诉讼手段取得了APT37曾使用的50个域名的控制权。这一事件使得APT37再次来到公众视野中。然而,被易手的域名并不包括韩国区域,因此并不能有效打击APT37在亚洲的攻击活动。该组织依然应被高度关注。
主要事件时间线:
投递与执行手法:
由于攻击目标的特殊性,APT37的攻击活动与其他国家APT组织活动有显著差异,其中一点体现在该组织的投递执行手段上。
鱼叉邮件与hwp诱饵文档
APT37发起的攻击中,有一个显著特征为在投递执行阶段大量使用携带hwp文档的鱼叉邮件。
hwp文件是韩国主流文字处理软件Hangul Office(한글)专用的文档格式,也是政府使用的标准文档格式之一,作为邮件附件的常用文件格式在韩国广为使用。APT37作为以韩国为主要目标的黑客组织,在hwp文档的恶意利用上十分娴熟。
hwp文件构成与doc文档比较相似,包括相同的头结构(0xD0CF…)和由各类型文件组成的内容结构等。
典型hwp文件头
对hwp文档的恶意利用包含两大类,宏利用和模块漏洞利用。
与Microsoft Office软件相同,Hangul Office软件依赖脚本语言处理文档中的宏内容。Hangul Office主要使用的脚本语言是PostScript,在hwp文档中以PS文件的形式保存。
攻击者可以在文档中编写恶意的ps脚本程序,构造诱饵来欺骗用户执行文档中的脚本,达到执行恶意载荷的目的。
Hangul Office软件依赖一些模块来处理hwp文档中的各类型文件,其中典型是使用eps模块来处理文档中的eps图片。由于这些模块的缺陷,攻击者可以构造包含特定文件格式的hwp文档来触发Hangul Office处理模块的漏洞,执行恶意代码。
APT37多次使用鱼叉邮件附带的hwp文档作为入侵手段。
漏洞利用
Eps是使用PostScript语言描述的一种图形文件格式,可以输出高精度的ASCII图像。Hangul Office软件使用eps图像处理模块来处理hwp文档中的eps图像,但因为eps处理模块本身包含多个漏洞,该处理流程容易被黑客利用执行恶意代码。
APT37在近年多次攻击中利用了eps漏洞。
Evil New Year 2018
在17年底18年初的攻击行动Evil New Year 2018中,APT37使用了携带cve-2013-0808漏洞的hwp文档进行攻击。
cve-2013-0808是存在于eps图片查看器gldll32.dll模块中的缓冲区溢出漏洞,通过溢出点代码,esi的值可以被修改,此后程序执行流从esi处获取地址并调用,导致任意代码执行:
如下图所示,Evil New Year 2018使用的hwp文档内部包含一个eps文件,文件内容解压后暴露出shellcode。
该shellcode最终代码被加密,加密逻辑为异或:
该shellcode最终下载指定url下的文件,该文件是伪装成png图像的RokRat木马。
Operation Black Banner
19年4月的攻击行动Operation Black Banner中,APT37使用了搭载疑似CVE-2015-2545漏洞载荷的鱼叉邮件附件。
在名为당일_일정.hwp的hwp文件中,eps模块代码利用漏洞加载shellcode执行。
PostScript代码结构显示其使用的漏洞类似eps编辑器漏洞CVE-2015-2545,为释放后重用漏洞:
最终运行的shellcode从指定网址下载PoorWeb木马程序并运行。
脚本执行
hwp文档使用ps或eps后缀保存PostScript脚本文件。由于PostScript是基于栈的脚本语言,攻击者可以使用PostScript脚本直接在内存中运行可执行文件,并通过混淆的方式绕过安全软件检测。
Operation Korean Sword
2018年8~9月的APT37攻击活动Operation Korean Sword中,APT37使用PostScript脚本投递恶意载荷。在钓鱼邮件附件※ 기 록 부.hwp中,恶意脚本文件BIN0001.eps将内置的恶意PE文件组合并运行,同时创建自启动脚本的持久化机制。
该脚本使用魔术字隐藏、垃圾字节填充等方式逃避安全检测:
该PostScript脚本释放RokRat木马。
Operation Printing Paper
同样的手法出现在2019年5月报道的APT37组织Operation Printing Paper攻击行动中。hwp文件”SamsungVer3.01.03Printer.bin”搭载的恶意eps文件中,PostScript脚本使用与Operation Korean Sword相同的使用魔术字隐藏、垃圾字节填充等手段释放了SamsungPrinter47.vbs、Pemrr01.wta01、Pemrr02.wta01等恶意载荷,最终运行名为SamsungVer3.01.03Printer.com的Dropper木马:
该Dropper木马有一定的对抗手段,包括检查自身是否以%appdata%\\SamsungVer3.01.03Printer.com -normal的命令行启动,检测调试器、检测调试行为、检测进程等。
最终Dropper木马在内存中解密并释放RokRat木马。
其他行动
除上述攻击事件以外,APT37在零散的攻击活动中也大量使用包含恶意PostScript宏的hwp文档进行入侵。
在2019年6月~7月的活动中,APT37分别制作了伪装成朝鲜教会学校申请书和政府文件的hwp文档,通过其中的加密PostScript脚本投递RokRat木马。
冒充韩国社科研究机构여의도연구원:
恶意PostScript脚本使用异或加密:
最终该文档释放RokRat木马。
文件侧载
Hangul Office支持hwp文档的超链接功能,可以在Hangul Office打开hwp文档的同时打开设置好的其他文件。APT37曾使用该方法进行侧载攻击。
Hangul Office设置超链接的界面:
在2019年03月的攻击活动中,APT37构造了附带恶意hwp文件和恶意scr文件的钓鱼邮件。用户打开hwp文件并点击其中超链接时,恶意scr文件将会执行。
该攻击的最终载荷为PoorWeb远控木马。
小结
作为在韩国比word更流行的文档类型,hwp文档成为APT37的常用攻击跳板。虽然没有doc文档类似的公式编辑器漏洞,朝鲜的黑客们依然积极尝试使用各类组件的漏洞构建恶意文档。因为APT37的攻击目标主要集中在脱北人士和韩国政企工作人员,他们构造的诱饵内容也集中在通知、简历、申请书等文件形式上。
鱼叉邮件与其他格式文档
除hwp文档以外,APT37也积极使用包括html、doc等各类常规格式附件作为攻击载体。
html页面
在2018年8月的一次攻击事件Operation Fake News中,APT37制作的鱼叉邮件携带了html类型的附件。
名为mail_93682646.html伪装成了口令验证的页面:
在ie浏览器中允许ActiveX控件运行后,该html将会解码执行内部的恶意JS脚本。
该脚本会显示指定网站上的欺骗信息,并下载googledrive中的最终载荷并在内存中执行:
脚本下载的最终载荷为RokRat。
doc文档
在2018年8月的Operation Rocketman攻击活动中,APT37使用了常见的doc漏洞利用的方式投放恶意载荷。
该攻击中,鱼叉邮件携带了包含CVE-2017-11882漏洞的doc文档,文档名为bitcoin-trans.doc,内容与比特币采矿相关。
根据OLE提取到rtf文件利用CVE-2017-11882公式编辑器漏洞,释放shellcode并从指定网址获取下一步攻击工具。
该漏洞doc文档最终释放PubNub木马。
隐写图片
除常规类型的文件以外,APT37还尝试过使用隐写图像作为跳板执行恶意程序。
在2019年的一次攻击行动中,APT37在鱼叉邮件中加入了扩展名为jpge的文件,并在邮件内容中诱导受害者下载短链接中的程序来打开jpge图像:
两个短链接分别指向一个exe文件和apk文件,分别是恶意载荷加载器和安卓间谍应用。
JPEG_Viewer木马
改exe程序将自身伪装成一个图片查看器用于加载、解密并执行恶意载荷。该加载器会对输入的图片格式进行校验;如果用户尝试用查看器打开一个格式不符的普通图片,则会弹出“错误格式”的窗口。
一个合法的格式如下所示:
恶意载荷共两部分;第一部分为真实的图片载荷。图片载荷被秘钥解密并保存为临时文件后更新至木马的图形界面,其目的是通过展示图片查看功能从而降低用户的警惕性:
第二部分为攻击者投递的恶意载荷。首先在内存中解密恶意载荷,当用户通过图形界面关闭该结束木马进程时,进程将转入后台继续执行,包含恶意载荷的线程随即启动:
该加载器最终在jpge文件中获取RokRat木马并执行。
Android_JPGE_Viewer木马
该安卓木马注册了自定义的广播接收器服务,该服务在用户接电话的同时开启了录音功能,从而实现了来电监听、记录:
木马通过自定义的闹钟回调类完成和C2服务器的交互。每当一次闹钟事件触发后,木马会按顺序执行下列操作:
- 向C2上传肉鸡的MAC地址、型号等指纹信息
- 收集肉鸡的录音文件
- 向C2上传肉鸡的录音文件
- 向C2服务器请求并执行密文远控指令,加密算法为DES
水坑站点
在韩国安全研究团队ESTsecurity披露的情报中,APT37曾在2019年08月制作水坑网站,对脱北人士及脱北援助者进行针对性的攻击。
情报显示,该网站使用WordPress构建,并伪装成向脱北人士进行募捐的网站,引导浏览者安装指定的安卓应用。
该网站声称使用者可以在应用中提交个人信息以申请获取经济援助,但实际上该应用会搜索手机敏感信息,上传给APT37攻击者。
相较鱼叉邮件攻击,水坑式攻击具有更高的攻击目标精准性,可以造成的影响也更大。这类针对脱北人士的攻击从侧面体现了朝鲜对脱逃行为的态度。
(待续)