团伙背景
Kimsuky,别名Mystery Baby、Baby Coin、Smoke Screen、Black Banshe等,奇安信内部跟踪编号为APT-Q-2。该APT组织于2013年公开披露,攻击活动最早可追溯至2012年,疑似具有东北亚国家背景。Kimsuky主要攻击目标为韩国,涉及国防、教育、能源、政府、医疗以及智囊团等领域,以机密信息窃取为主。该组织通常使用社会工程学、鱼叉邮件、水坑攻击等手段投递恶意软件,攻击手法多样,拥有针对Windows和Android平台的攻击武器。
事件概述
(2)洛克希德马丁(Lockheed Martin)招聘服务工程师,工作地德国不来梅;
(3)洛克希德马丁(Lockheed Martin)招聘自动化工程师,工作地德国柏林。
攻击者采用不同方式植入同一种木马,该木马与Kimsuky历史攻击样本[4]具有高度相似的代码特征,结合其他线索我们认为此次针对欧洲军工行业人员的攻击活动很可能和Kimsuky有关。
详细分析
MD5 |
VT上传时间 |
文件名 |
说明 |
8346d90508b5d41d151b7098c7a3e868 |
2024-05-15 12:54:27 UTC |
Safety Manager JD (General Dynamics HR Division II).jse |
Dropper,JSE脚本 |
73d2899aade924476e58addf26254c2e |
2024-05-23 16:30:56 UTC |
Job Description (LM HR Division II).pdf .scr |
Dropper,EXE,C++编写 |
aa8936431f7bc0fabb0b9efb6ea153f9 |
2024-05-30 08:25:58 UTC |
Automation Manager JD(LM HR II).scr |
Dropper,EXE,Go编写 |
537806c02659a12c5b21efa51b2322c1 |
2024-05-15 13:05:45 UTC |
zt1fbtn.on5l |
木马,DLL |
8d948bb863ea38ecb46b7e78d1b1abfa |
2024-05-22 10:57:35 UTC |
icon.ini |
木马,DLL |
27d4ff7439694041ef86233c2b804e1f |
2024-05-23 16:34:20 UTC |
desktop.ini |
木马,DLL |
7221403834a6761696060f1aa22da0fb |
2024-05-30 08:46:07 UTC |
desktop.ini |
木马,DLL |
Dropper
JSE脚本
C++ Dropper
资源中出现韩语字符串。
Dropper在同目录下释放同名诱饵PDF,将木马释放到”C:ProgramDatadesktop.ini”,并且释放自删除脚本”%temp%msbuild.bat”。
运行释放的这三个文件,其中木马文件desktop.ini也是使用regsvr32.exe执行。
Go Dropper
获取载荷的URL为:
hxxp://download-attachments.mooo.com/down.php?ctx=bin&id=daniel |
样本中的文件路径字符串出现用户名”niki”。
木马
在短短十几天的时间里,攻击者对投放的木马DLL代码进行了数次调整,包括增加对抗分析的手段(控制流混淆、无效指令膨胀)、修改木马使用的字符串、添加新的木马控制功能。下面以较早出现的木马样本(MD5: 537806c02659a12c5b21efa51b2322c1)为例进行分析。
持久化
sc create CacheDB binPath= “cmd /c regsvr32.exe /s [木马文件路径]” start= auto |
(2)如果未提权,则在注册表HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun下设置名为CacheDB的值,执行命令为”regsvr32.exe /s [木马文件路径]”。
配置数据
配置数据长度为0x122C字节,但解密出的大部分内容为零字节,木马使用的有3部分内容。
偏移 |
保存内容 |
说明 |
0x0 |
C&C URL字符串 |
用于和C2服务器通信 |
0xA28 |
cmd.exe路径字符串 |
用于命令执行 |
0x1228 |
4字节随机数 |
在配置数据解密后才被赋值,用于作为标识受害者的victim_id |
C&C通信
木马通过HTTP POST请求与C2服务器通信,通信消息按格式划分有三类。
(1)建立连接
id=user&pwd=page4&ctx=[victim_id] |
如果响应内容首字节为字母”y”,表明成功建立连接,否则休眠300s后再次发送建立连接的请求。
(2)获取来自C2服务器的数据
此类请求用于获取C2服务器下发的指令和从C2服务器下载文件。获取C2服务器数据的POST请求格式为
id=user&pwd=page1&ctx=[victim_id] |
对于获取到的原始响应数据,木马仍然检查首字节是否为字母”y”,并判断接收数据总长度是否大于1。检查通过之后,木马对剩下的数据先进行Base64解码,再使用RC4解密。
如果C2服务器发送数据是木马指令,则前4字节为指令代码,后面内容为指令的相关参数。
(3)回传数据
木马向C2服务器回传指令执行结果或其他数据时,采用的POST请求格式如下,回传的数据也经过RC4加密和Base64编码。同样木马会检查响应数据的首字母是否为”y”。
id=user&pwd=page2&ctx=[victim_id]&content=[data] |
木马指令
指令代码 |
参数 |
功能 |
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(新增功能) |
网络基础设施
以上样本涉及恶意URL里的域名解析到两个IP上。
恶意URL |
用途 |
IP |
http://download.uberlingen.com/index.php |
木马C&C |
94.131.120.80 |
http://en.uberlingen.com/index.php |
木马C&C |
– |
http://imagedownload.ignorelist.com/index.php |
木马C&C |
67.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&C |
67.217.62.219 |
http://apphelloworld.crabdance.com/index.php |
木马C&C |
– |
溯源关联
攻击归属
除了Dropper的资源数据出现韩文,样本释放的诱饵PDF也带有韩语信息。
此次攻击活动使用的木马与Kimsuky之前针对韩国的恶意软件[4]有多处相似:
(2)异或解密字符串的方式相同,异或的key为第一个字符(ASCII字符串的key为1字节,宽字符串的key为2字节);
(3)与C2通信数据都经过RC4加密处理,且密钥形式一致;
(4)C2通信的内容格式相似。
除此之外,JSE脚本中有一段未使用的PE数据,该数据实际上是释放的木马”zT1fbtn.oN5L”数据复制两次拼接而来,而Kimsuky在之前的攻击活动中也有类似的做法。
Go版本Dropper所带有的用户名”niki”在今年3月有关Kimsuky的攻击分析报告[5]中提及。
综合以上信息,我们认为此次攻击活动很可能和Kimsuky有关。
关联
根据”niki”这个用户名,我们发现了攻击者其他用Go编写的恶意软件,该软件用于实现端口代理的功能。
攻击者使用的IP 94.131.120.80和67.217.62.219还关联其他恶意域名。
其中出现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 |
迪尔防务前身曾是美国军事武器的承包商,根据美欧之间军工制造的合作关系,攻击者对欧洲军工从业人员的攻击很可能是试图从供应链角度获取美国军事武器的资料。
总结
在此次以美国军工企业招聘为诱饵的攻击活动中,攻击者在十几天的时间里使用了不同方式植入木马,并多次调整木马代码,可见攻击者高频的攻击节奏。我们基于代码相似性和其他线索认为此次攻击活动很可能和Kimsuky组织有关。不过采用虚假招聘的社会工程学手段和涉足欧洲这些活动特点也令人联想到另一个来自东北亚地区的APT组织Lazarus。随着网络威胁的演变,同一地域的APT组织互相借用攻击手法或者在攻击活动中融合协作也不再罕见。
防护建议
若需运行,安装来历不明的应用,可先通过奇安信威胁情报文件深度分析平台(https://sandbox.ti.qianxin.com/sandbox/page)进行判别。目前已支持包括Windows、安卓平台在内的多种格式文件深度分析。
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
IOC
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
参考链接
[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/63396/
点击阅读原文至ALPHA 7.0
即刻助力威胁研判
原文始发于微信公众号(奇安信威胁情报中心):疑似Kimsuky(APT-Q-2)以军工招聘为饵攻击欧洲