疑似Kimsuky(APT-Q-2)以军工招聘为饵攻击欧洲
2024-6-20 17:45:14 Author: www.freebuf.com(查看原文) 阅读量:18 收藏

团伙背景

Kimsuky,别名Mystery Baby、Baby Coin、Smoke Screen、Black Banshe等,奇安信内部跟踪编号为APT-Q-2。该APT组织于2013年公开披露,攻击活动最早可追溯至2012年,疑似具有东北亚国家背景。Kimsuky主要攻击目标为韩国,涉及国防、教育、能源、政府、医疗以及智囊团等领域,以机密信息窃取为主。该组织通常使用社会工程学、鱼叉邮件、水坑攻击等手段投递恶意软件,攻击手法多样,拥有针对Windows和Android平台的攻击武器。

事件概述

近期奇安信威胁情报中心发现一批以美国军工企业在德国地区的招聘为诱饵的攻击样本,同时其他安全研究人员也对相关样本进行了公开披露[1~3]。攻击者使用的诱饵内容包括:

(1)通用动力陆地系统(General Dynamics Land Systems)招聘系统安全经理,工作地德国柏林;1718876292_6673f884e8da803368df7.png!small?1718876293626

(2)洛克希德马丁(Lockheed Martin)招聘服务工程师,工作地德国不来梅;

1718876300_6673f88c4d70f0978d121.png!small?1718876301386

(3)洛克希德马丁(Lockheed Martin)招聘自动化工程师,工作地德国柏林。

1718876319_6673f89f1d940bf0c3b37.png!small?1718876320508

攻击者采用不同方式植入同一种木马,该木马与Kimsuky历史攻击样本[4]具有高度相似的代码特征,结合其他线索我们认为此次针对欧洲军工行业人员的攻击活动很可能和Kimsuky有关。

详细分析

相关样本信息如下:

MD5VT上传时间文件名说明
8346d90508b5d41d151b7098c7a3e8682024-05-15 12:54:27 UTCSafety Manager JD (General Dynamics HR Division II).jseDropper,JSE脚本
73d2899aade924476e58addf26254c2e2024-05-23 16:30:56 UTCJob Description (LM HR Division II).pdf .scrDropper,EXE,C++编写
aa8936431f7bc0fabb0b9efb6ea153f92024-05-30 08:25:58 UTCAutomation Manager JD(LM HR II).scrDropper,EXE,Go编写
537806c02659a12c5b21efa51b2322c12024-05-15 13:05:45 UTCzt1fbtn.on5l木马,DLL
8d948bb863ea38ecb46b7e78d1b1abfa2024-05-22 10:57:35 UTCicon.ini木马,DLL
27d4ff7439694041ef86233c2b804e1f2024-05-23 16:34:20 UTCdesktop.ini木马,DLL
7221403834a6761696060f1aa22da0fb2024-05-30 08:46:07 UTCdesktop.ini木马,DLL

攻击样本执行流程如下:1718876349_6673f8bd3e1a3e8f49690.png!small?1718876350006

Dropper

JSE脚本

JSE脚本在"C:\ProgramData"目录下释放诱饵PDF和"vjVr53p.yOOL",然后使用Powershell再次进行Base64解码,得到"zT1fbtn.oN5L",使用regsvr[]32.exe执行。

1718876357_6673f8c5a9362d0699239.png!small?1718876358350

1718876362_6673f8ca8d0d46e3b35bb.png!small?1718876363128

C++ Dropper

样本73d2899aade924476e58addf26254c2e用PDF文档图标伪装,使用双扩展名,且真实扩展名".scr"与伪装扩展名".pdf"之间用大量空格符号分开。携带"Nexaweb, Inc."数字签名,签名时间为2024-05-24 00:03:50 UTC+8。1718876368_6673f8d0dea7ab9c9d0ce.png!small?1718876369441

资源中出现韩语字符串。1718876374_6673f8d63f00be1d75cb7.png!small?1718876374896

Dropper在同目录下释放同名诱饵PDF,将木马释放到"C:\ProgramData\desktop.ini",并且释放自删除脚本"%temp%\msbuild.bat"。1718876379_6673f8db17a762692a237.png!small?1718876380036

运行释放的这三个文件,其中木马文件desktop.ini也是使用regsvr[]32.exe执行。1718876383_6673f8df513d015f3b4ec.png!small?1718876384381

Go Dropper

样本aa8936431f7bc0fabb0b9efb6ea153f9同样带有"Nexaweb, Inc."数字签名,签名时间为2024-05-28 00:04:54 UTC+8。相比之前的C++ Dropper,Go版本不再从自身释放木马文件,而是从远程服务器获取载荷,然后将其解密为"C:\ProgramData\desktop.ini"。

1718876392_6673f8e8835b35b9ade8d.png!small?1718876393124

获取载荷的URL为:

hxxp://download-attachments.mooo[.]com/down.php?ctx=bin&id=daniel

使用Github上的开源Go模块secur30nly/go-self-delete完成自删除操作,同样调用regsvr[]32.exe执行释放的desktop.ini。1718876399_6673f8efd96032195f495.png!small?1718876400604

样本中的文件路径字符串出现用户名"niki"。

1718876404_6673f8f4b58bb01185d35.png!small?1718876406122

木马

在短短十几天的时间里,攻击者对投放的木马DLL代码进行了数次调整,包括增加对抗分析的手段(控制流混淆、无效指令膨胀)、修改木马使用的字符串、添加新的木马控制功能。下面以较早出现的木马样本(MD5: 537806c02659a12c5b21efa51b2322c1)为例进行分析。

持久化

木马DLL根据进程是否已经提权采用不同的持久化策略:

(1)如果已经提权,则用CreateProcessW执行如下命令,创建名为CacheDB的服务;

sc create CacheDB binPath= "cmd /c regsvr[]32.exe /s [木马文件路径]" start= auto

(2)如果未提权,则在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下设置名为CacheDB的值,执行命令为"regsvr[]32.exe /s [木马文件路径]"。

配置数据

木马获取配置数据时,先查看木马DLL自身是否带有可选数据流(Alternate Data Streams, ADS),示例样本访问的ADS名称为"info"。如果该ADS不存在,则使用RC4算法从.data段内容中解密出配置数据明文信息,解密的key为"RGdcsedfd@#%dg9ser3$#$^@34sdfxl"。最后将配置数据写入木马DLL的ADS,便于之后直接从ADS中获取配置数据。1718876414_6673f8fe8efe7445c5e83.png!small?1718876415244

配置数据长度为0x122C字节,但解密出的大部分内容为零字节,木马使用的有3部分内容。

偏移保存内容说明
0x0C&C URL字符串用于和C2服务器通信
0xA28cmd.exe路径字符串用于命令执行
0x12284字节随机数在配置数据解密后才被赋值,用于作为标识受害者的victim_id

C&C通信

木马的C2通信过程如下。

1718876423_6673f90777539f13686fd.png!small?1718876424114

木马通过HTTP POST请求与C2服务器通信,通信消息按格式划分有三类。

(1)建立连接

在C2通信过程的最开始,木马尝试与C2服务器建立连接,POST请求的内容格式为

id=user&pwd=page4&ctx=[victim_id]

1718876429_6673f90d34ce00fa237aa.png!small?1718876429747

如果响应内容首字节为字母"y",表明成功建立连接,否则休眠300s后再次发送建立连接的请求。

(2)获取来自C2服务器的数据

此类请求用于获取C2服务器下发的指令和从C2服务器下载文件。获取C2服务器数据的POST请求格式为

id=user&pwd=page1&ctx=[victim_id]

1718876434_6673f912886a309f6c188.png!small?1718876436689

对于获取到的原始响应数据,木马仍然检查首字节是否为字母"y",并判断接收数据总长度是否大于1。检查通过之后,木马对剩下的数据先进行Base64解码,再使用RC4解密。

1718876442_6673f91a06773fe0a258b.png!small?1718876443227

如果C2服务器发送数据是木马指令,则前4字节为指令代码,后面内容为指令的相关参数。

(3)回传数据

木马向C2服务器回传指令执行结果或其他数据时,采用的POST请求格式如下,回传的数据也经过RC4加密和Base64编码。同样木马会检查响应数据的首字母是否为"y"。

id=user&pwd=page2&ctx=[victim_id]&content=[data]

1718876448_6673f920b0f1c0e2fb7d5.png!small?1718876449375

木马指令

木马支持的功能如下。

指令代码参数功能
0x64 ("d")cmd命令命令执行,命令执行结果回传给C&C服务器
0x65 ("e")文件路径文件下载,从C&C服务器下载数据,写入指定文件
0x66 ("f")文件路径文件上传,将指定文件上传到C&C服务器
0x67 ("g")cmd命令创建进程
0x69 ("i")文件路径删除文件
0x6a ("j")-截屏,截屏文件上传到C&C服务器
0x6b ("k")-向C2发送木马当前的配置数据
0x6c ("l")配置数据更新木马的配置数据
0x6d ("m")IP地址和端口连接指定主机和端口
0x6e ("n")数字休眠指定小时数
0x6f ("o")两个文件路径将src文件的时间戳复制给dest文件
0x70 ("p")-木马文件自删除,清除持久化痕迹,结束木马进程。文件自删除时释放的脚本为"%temp%\msbuild.bat"
0x72 ("r")cmd命令命令执行,功能与指令0x64相同
0x73 ("s")进程id和DLL文件路径向指定进程中注入特定的DLL(新增功能)

指令0x73在2024-05-13编译的木马(MD5:537806c02659a12c5b21efa51b2322c1)中还未出现,而在2024-05-25编译的木马(MD5:7221403834a6761696060f1aa22da0fb)中使用,可见攻击者对木马代码的更新迭代速度很快。从功能上看,木马支持修改配置信息和执行后续载荷,意味着攻击者在控制受害者设备后很可能会切换网络基础设施,或者植入其他恶意组件进行深入渗透。

网络基础设施

以上样本涉及恶意URL里的域名解析到两个IP上。

恶意URL用途IP
http[:]//download.uberlingen[.]com/index.php木马C&C94.131.120.80
http[:]//en.uberlingen[.]com/index.php木马C&C-
http[:]//imagedownload.ignorelist[.]com/index.php木马C&C67.217.62.219
http[:]//download-attachments.mooo[.]com/down.php?ctx=bin&id=daniel下载木马文件67.217.62.219
http[:]//playboys.chickenkiller[.]com/index.php木马C&C67.217.62.219
http[:]//apphelloworld.crabdance[.]com/index.php木马C&C-

溯源关联

攻击归属

除了Dropper的资源数据出现韩文,样本释放的诱饵PDF也带有韩语信息。

1718876471_6673f93729d50af56cbbe.png!small?1718876471726

此次攻击活动使用的木马与Kimsuky之前针对韩国的恶意软件[4]有多处相似:

(1)均通过FNV hash间接查找API地址;

(2)异或解密字符串的方式相同,异或的key为第一个字符(ASCII字符串的key为1字节,宽字符串的key为2字节);

1718876476_6673f93c711c09b693cd0.png!small?1718876477033

1718876481_6673f94183e4c9fca4b53.png!small?1718876482521

1718876487_6673f94781e89a0f9c739.png!small?1718876488257

(3)与C2通信数据都经过RC4加密处理,且密钥形式一致;

1718876493_6673f94d4c018c4d684b8.png!small?17188764938521718876505_6673f9594d8c798f3d88a.png!small?1718876506478

(4)C2通信的内容格式相似。

1718876511_6673f95f889d0f695792e.png!small?1718876512442

除此之外,JSE脚本中有一段未使用的PE数据,该数据实际上是释放的木马"zT1fbtn.oN5L"数据复制两次拼接而来,而Kimsuky在之前的攻击活动中也有类似的做法。

1718876518_6673f966bfef1ba435e29.png!small?1718876523099

Go版本Dropper所带有的用户名"niki"在今年3月有关Kimsuky的攻击分析报告[5]中提及。

1718876522_6673f96a98adcc0976280.png!small?1718876523099

综合以上信息,我们认为此次攻击活动很可能和Kimsuky有关。

关联

根据"niki"这个用户名,我们发现了攻击者其他用Go编写的恶意软件,该软件用于实现端口代理的功能。

1718876527_6673f96fc781b15068f34.png!small?1718876528669

1718876531_6673f973887df0bc5a2a0.png!small?1718876532207

攻击者使用的IP 94.131.120.80和67.217.62.219还关联其他恶意域名。

1718876535_6673f977bdf51b0b6efee.png!small1718876545_6673f9816b32712346af9.png!small?1718876546678

其中出现Kimsuky此前常用的*.r-e.kr和*.o-r.kr系列域名,与攻击者有关的可疑域名如下。

paypal.uberlingen[.]com
online.viewers.r-e[.]kr
share.dihl-defence.o-r[.]kr
www.linkedin.r-e[.]kr
share-defence.uberlingen[.]com

域名share[.]dihl-defence.o-r.kr模仿德国军工企业迪尔防务(Diehl Defence)。该公司总部位于德国城市Uberlingen,而攻击者使用的恶意域名中也出现了带有该城市名称的uberlingen.com。从域名解析时间看,攻击者至少从2024年4月就在为攻击活动做准备。

1718876593_6673f9b1162e123b79090.png!small?1718876596442

迪尔防务前身曾是美国军事武器的承包商,根据美欧之间军工制造的合作关系,攻击者对欧洲军工从业人员的攻击很可能是试图从供应链角度获取美国军事武器的资料。

总结

在此次以美国军工企业招聘为诱饵的攻击活动中,攻击者在十几天的时间里使用了不同方式植入木马,并多次调整木马代码,可见攻击者高频的攻击节奏。我们基于代码相似性和其他线索认为此次攻击活动很可能和Kimsuky组织有关。不过采用虚假招聘的社会工程学手段和涉足欧洲这些活动特点也令人联想到另一个来自东北亚地区的APT组织Lazarus。随着网络威胁的演变,同一地域的APT组织互相借用攻击手法或者在攻击活动中融合协作也不再罕见。

防护建议

奇安信威胁情报中心提醒广大用户,谨防钓鱼攻击,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行标题夸张的未知文件,不安装非正规途径来源的APP。做到及时备份重要文件,更新安装补丁。

IOC

MD5

8346d90508b5d41d151b7098c7a3e868

73d2899aade924476e58addf26254c2e

aa8936431f7bc0fabb0b9efb6ea153f9

537806c02659a12c5b21efa51b2322c1

8d948bb863ea38ecb46b7e78d1b1abfa

27d4ff7439694041ef86233c2b804e1f

7221403834a6761696060f1aa22da0fb

3d4a42d00e7b6947d52d03feac236423

C&C

download.uberlingen[.]com

en.uberlingen[.]com

imagedownload.ignorelist[.]com

download-attachments.mooo[.]com

playboys.chickenkiller[.]com

apphelloworld.crabdance[.]com

paypal.uberlingen[.]com

online.viewers.r-e[.]kr

share.dihl-defence.o-r[.]kr

www.linkedin.r-e[.]kr

share-defence.uberlingen[.]com

URL

http[:]//download.uberlingen[.]com/index.php

http[:]//en.uberlingen[.]com/index.php

http[:]//imagedownload.ignorelist[.]com/index.php

http[:]//download-attachments.mooo[.]com/down.php?ctx=bin&id=daniel

http[:]//playboys.chickenkiller[.]com/index.php

http[:]//apphelloworld.crabdance[.]com/index.php

参考链接

[1].https://x.com/asdasd13asbz/status/1791390914038149339

[2].https://x.com/1ZRR4H/status/1793873968471970214

[3].https://x.com/asdasd13asbz/status/1797564135468859613

[4].https://mp.weixin.qq.com/s/s7bQggtes5YQEtCBeLsOrw

[5].https://asec.ahnlab.com/en/6339


文章来源: https://www.freebuf.com/articles/paper/404047.html
如有侵权请联系:admin#unsafe.sh