总结
-
利用 VirusTotal 的搜索功能,我们获取并分析了经常被攻击者用作早期恶意软件的 LNK 文件,并确认其中一些文件与朝鲜支持的黑客组织 Konni 有关。
-
攻击者利用 Dropbox 和 Google Drive 以及 C&C 服务器来传播恶意软件。
-
最后执行的恶意软件是 AsyncRAT。虽然 Konni 组织过去使用的 AsyncRAT 已将 C&C 服务器信息(ip、端口)硬编码,但这次发现的 AsyncRAT 已被更改,因此 ip 和端口被作为执行参数传递。
-
分析过程中发现,所识别的 C&C 服务器自去年以来就被用作攻击基础设施。
1. 概述
在分析使用 VirusTotal 搜索功能收集的 LNK 文件时发现,其中一些文件与朝鲜支持的黑客组织 Konni 有关。 Konni 采用了与 Kimsuky 类似的策略,并且该组织在多次活动中与 Kimsuky 有许多相似之处。
所分析的恶意软件不仅利用 C&C 服务器,还利用 Dropbox 和 Google Drive 等常规云服务来分发其他恶意软件,并且其特点是在每个阶段对恶意软件应用混淆处理。具体来说,我们能够利用 LNK 文件的元数据和上传到 VirusTotal 的文件名来获取其他恶意软件,通过分析这些恶意软件,我们发现了另一个 C&C 服务器。
此外,发现的 C&C 服务器曾被用于用韩语编写的网络钓鱼电子邮件攻击,我们一直在持续监控。这为进一步明确先前检测到的威胁与攻击者活动之间的联系提供了重要线索。
2.恶意软件分析
2.1 概述
2.2. 20250211_03837.dock.lnk
通过拆分和连接字符串来混淆执行 LNK 文件时运行的命令。该命令的主要动作是将LNK文件中包含的PowerShell脚本保存%programdata%d.ps1为文件并执行。%programdata%b21111还会创建写入了“0”数据的未使用文件。
使用 LECmd 确认的命令信息
2.3. d.ps1
PowerShell 脚本位于 LNK 文件的末尾,其偏移量不会影响 LNK 结构。 PowerShell脚本中的变量值采用base64编码,并使用字符串切片进行混淆。
已应用混淆的 d.ps1
脚本最底部的这部分& $opemcb5 $km02;是核心操作,它将一个base64编码的数组作为参数传递给$opemcb5函数,按顺序解码后通过Invoke-Expression执行。下图可以看到可读性得到提高的$opemcb5函数。
具有改进可读性的 $opemcb5 函数
通过Invoke-Expression执行的代码一共有四个动作,顺序如下:
-
删除 d.sp1 文件
-
从 Dropbox 下载并运行其他恶意软件
-
创建运行空间池以异步运行 PowerShellCreate a Runspace Pool to run PowerShellsynchronous
-
与 C&C 服务器通信以下载并执行其他恶意软件
从 Dropbox 下载的恶意软件包含在压缩文件中,分别用 JavaScript 和 PowerShell 脚本编写。 JavaScript恶意软件在任务计划程序和自动运行注册表中注册以持续运行,而PowerShell脚本恶意软件则通过Invoke-Expression执行。
任务计划程序信息
-
姓名:AGMicrosoftEdgeUpdateExpanding[7923498737]
-
操作:每 2 分钟"wscript /e:javascript /b C:ProgramData83972.tmp"执行一次命令
自动运行注册表信息
-
注册表路径:HKCUSoftwareMicrosoftWindowsCurrentVersionRunGUpdate2
-
执行命令:C:WindowsSystem32wscript.exe /b /e:javascript C:ProgramData83972.tmp
Dropbox 访问和持久性例程
由于端口已关闭,因此无法进一步分析与 C&C 服务器的通信过程,但它与从 Dropbox 下载和执行其他恶意软件的方式非常相似。这似乎是为了与 Dropbox 和 C&C 服务器一起执行恶意操作。首先206.206.127[.]152:7628,连接到,下载压缩文件,然后注册任务计划程序和自动运行注册表。
任务计划程序信息
-
姓名:AMicrosoftEdgeUpdateExpanding[3829710973]
-
操作:每 2 分钟"wscript /e:javascript /b C:ProgramData38243.tmp"执行一次命令
自动运行注册表信息
-
注册表路径:HKCUSoftwareMicrosoftWindowsCurrentVersionRunSUpdate
-
执行命令:C:windowssystem32wscript.exe /b /e:javascript C:ProgramDataN9371.js
连接 C&C 服务器并确保持久性的例程
之后206.206.127[.]152:7032,连接并下载其他文件并使用 PowerShell 运行它们。
Powershell脚本下载及执行例程
2.4. 83972.tmp
83972.tmp 是从 Dropbox 下载的,是一个用 JavaScript 编写的恶意代码,%ProgramData%G3892.tmp用于执行该文件。存储执行命令的数组中的数据被混淆,[숫자]X[난독화된 데이터]其格式如下:在这个格式中,前面的数字是用来检查混淆是否解密的值,X是为了区分数字和混淆数据的值。反混淆过程如下:
1.解析混淆数据(不包括数字和“X”)。
2.将混淆数据的前两个字节向后发送。
-
例如)abcdef → cdefab
3.交换第一个字节和最后一个字节。
-
例如)cdefab → bdefac
4.重新格式化[숫자]X[난독화된 데이터]。
5.将数组的最后一个元素移动到第一个元素。
之后,我们将第 4 个和第 9 个元素中的数字相乘,除以 5,然后将结果与第二个参数进行比较,以检查解耦是否完成。
反混淆过程
一旦反混淆完成,数组的元素就会被组合起来,然后使用 eval 执行。 eval执行的命令如下:
try {var function1 = new ActiveXObject("WScript.Shell");var winConf= "p"+"ower"+"shell -ep byp"+"ass -com" + "mand $fn='C:\\ProgramData\\G3892.tmp';$d = Get-C" +"ontent $fn; Inv" + "oke-Exp" +"ress" + "ion $d;"; function1.Run(winConf, 0);} catch (err) {}
2.5. G3892.tmp
G3892.tmp 是一个用 PowerShell 脚本编写的恶意软件。与上一步中的 PowerShell 脚本一样,变量值采用 base64 编码,并应用了使用字符串切片的混淆。通过 Invoke-Expression 执行代码是相同的。
应用了混淆的 G3892.tmp
通过 Invoke-Expression 执行的代码使用 Google Drive API 在攻击者的 Google Drive 上创建感染日志并下载和执行其他恶意软件。首先,发出一个访问令牌,允许攻击者使用 OAuth 2.0 身份验证访问 Google Drive,并且此过程所需的所有信息都是硬编码的。
访问令牌发放例程
感染日志[$objName]__[년_월_일_시_분_초]_Result_log.txt作为名为 的文件上传到 Google Drive,其中包含时间戳信息。实际攻击者从Google Drive中获取的文件和文件内容如下图所示。
攻击者的 Google Drive 中的文件列表
一旦感染日志上传,它就会在攻击者的 Google Drive 中搜索特定文件、下载并执行它们。搜索文件时适用以下条件:
-
仅查找文件名中包含 $objName 的文件
-
仅搜索文件名和内容不包含字符串“result”的文件
-
文件夹被排除
如果搜索的文件存在,则会从 Google Drive 中下载并删除该文件。下载的文件%ProgramData%tmps4.ps1保存为并通过 PowerShell 执行。使用 PowerShell 执行文件的过程与执行从 C&C 服务器下载的文件的过程相同。此外,Google Drive 下载后删除其他文件的方式表明攻击者可能已经实现了一项功能,以检测何时生成感染日志并使用轮询或 webhook 等机制自动上传其他文件。
恶意软件下载和执行程序
2.6. tmps4.ps1
tmps4.ps1中变量值经过base64编码,解码后通过Invoke-Expression执行代码。运行的代码执行从 Google Drive 下载文件并执行的操作。
代码中,Mocndis函数从给定的URL下载文件或者从本地路径读取文件,并进行一定的处理,然后在内存区域执行。
Mocndis 函数 Gzip 解压缩例程
执行文件之前,修改下载文件的第10个字节为0x1f,解压Gzip,并在内存区域执行文件,即可调用start方法。运行时指定IP和端口作为参数。
Mocndis 函数恶意软件执行例程和 Mocndis 执行参数
然而,当我在该 LNK 文件首次在 Twitter 上分享并将样本首次上传到 VirusTotal 三个小时后访问 Google Drive 时,该文件已无法下载以供进一步分析。然而,第二天我再次登录时,却可以正常下载文件。这可能是因为攻击者正在监视恶意软件的暴露情况,并暂时删除文件以避免引起安全研究人员的注意,从而看起来好像攻击已经停止。
从 Google Drive 下载的文件是 AsyncRAT 恶意软件的变种。使用Google Drive API确认的文件信息如下。
{"name": "rt_10_dummy_0206.tmp","mimeType": "application/octet-stream","size": "11917","createdTime": "2025-02-06T14:28:40.707Z","owners": [ {"kind": "drive#user","displayName": "andreytony001","emailAddress": "[email protected]","permissionId": "17628116675428814843","photoLink": "<https://lh3.googleusercontent.com/a-/ALV-UjU7c10Rb7y7XU9dR2xlxcjqWmLDym-Ty65ExsrPiiJyhgY9WA=s64>","me": false } ]}
2.7.异步RAT
我们的分析结果证实,AsyncRAT 与GSC 的“ Konni 威胁世界扩展分析报告”中提到的 AsyncRAT 具有相同的功能。然而,Konni 使用的现有 AsyncRAT 已将 C&C 服务器信息(IP 和端口)硬编码,而此次确认的 AsyncRAT 在运行时将 IP 和端口设置为参数。
C&C信息解析例程
通过参考开源的AsyncRAT源代码,我们发现攻击者任意更改了方法和类名。我们确认test_ptk类与MsgPack类具有相同的结构,并且makebytearray方法与Encode2Bytes方法具有相同的功能。
(左)AsyncRAT 变体 test_pkt 类 (右)开源 AsyncRAT MsgPack 类
(左)AsyncRAT 变体 makebytearray 方法(右)开源 AsyncRAT Encode2Bytes 方法
如果与 C&C 服务器通信成功,则“Packet: ClientInfo”数据将以 MsgPack 格式序列化、压缩并发送到服务器。根据从服务器收到的数据采取的行动如下:
命令代码 | 行为 |
---|---|
别针 | 它存在于代码中,但不执行任何操作。 |
附加项 | 如果收到的数据中有barray值,则发送Packet:giveme,barname:[barray值]给服务器。 |
保存的插件 | 如果接收到的数据中有barray值,则用Assembly.Load方法执行barray数据。 |
命令代码例程
其余暂无确认行为,从命令代码行为判断,很有可能在连接C&C服务器成功后,收到“addin”命令代码并不断向服务器发送“Packet:giveme”数据,告知服务器已被感染,进而执行额外的恶意行为。
3. 获取并分析其他恶意软件
3.1. Konni相关性分析
此次确认的 AsyncRAT 与 GSC 的《Konni 威胁世界观扩展分析报告》https://www.genians.co.kr/blog/threat_intelligence/konni_universe 中提到的 AsyncRAT 结构相同,且报告中提到的 AsyncRAT C&C 服务器有被用作其他恶意软件的 C&C 服务器的历史,其端点和参数结构与 Konni 的命令系统类似。
本报告中分析了 AsyncRAT
GSC 报告中提到 AsyncRAT
Konni 过去使用的 AsynRAT C&C 服务器()最早在159.100.13[.]216securonix 的“ CLOUD#REVERSER 的分析与检测”https://www.securonix.com/blog/analysis-and-detection-of-cloudreverser-an-attack-involving-threat-actors-compromising-systems-using-a-sophisticated-cloud-based-malware/ 报告中被提及,而该报告中描述的最终 PowerShell 脚本行为与本报告中分析的 PowerShell 脚本行为完全匹配。
在本报告中,分析 tmps4.ps1
securonix 报告中提到 Powershell 脚本
此外,GSC有迹象表明159.100.13[.]216该域被用作 AsyncRAT 恶意软件的 C&C 服务器,并透露该域与 Konni 的命令结构有相似之处。域中标识的命令层次结构如下:duplikyservjc[.]cloudduplikyservjc[.]cloud
-
duplikyservjc[.]cloud/dn.php?name=[%计算机名称%]&prefix=tt
事实上,dn.php?name=[%computer name%]该模式已在多份报告中被提及,并用于下载其他恶意软件。
1.Konni 攻击活动通过恶意文档进行传播
dn.php?name=[%computer name%]&prefix=tt
2.Securonix 威胁实验室初始覆盖咨询
dn.php?name=[%computer name%]&prefix=mm
3.伪装成个人信息泄露的钓鱼电子邮件的分发(Konni)
dn.php?name=[%computer name%]&prefix=tt
duplikyservjc[.]cloud通过分析使用 dn.php 作为 C&C 服务器的恶意软件,我们确认 dn.php 端点与之前一样被用于下载其他恶意软件。以下是相关样本的 VirusTotal 链接:
-
https://www.virustotal.com/gui/file/2ad3120e1b03317d8d588d0cc097cc4c084700dc98913aa452ae8d0d1830e327
duplikyservjc[.]cloud/dn.php?name=[%计算机名称%]&prefix=tt 通信例程
本报告中提到的C&C服务器206.206.127[.]152尚未被证实被用于其他攻击,目前已确认被用于使用LNK文件的AsyncRAT恶意软件分发攻击。此外,AsyncRAT确认的PDB信息如下:
-
E:_BackupRAT_workAsyncRat_0930rat_Clientrat_proobjDebugLv_0206.pdb
3.2.使用 LNK 元数据获取其他恶意软件
LNK 文件包含各种元数据,例如 DriveSeriaNumber、MachineID、MAc 地址等。通常,攻击者会删除这些信息以使相关性分析变得困难,但本报告中分析的 LNK 文件的元数据完好无损。
SHA256:
268640934dd1f0cfe3a3653221858851a33cbf49a71adfb4d54a04641df11547
本报告中分析的LNK文件元数据
另外,LINKTARGET_IDLIST包含可执行目标文件的信息,以及创建LNK文件的系统的MFT Record Number和Sequence Number信息。您可以使用 LEcmd 检查这一点。
可以使用 LECmd 验证的 MFT 记录号和序列号信息
使用上传到 VirusTotal 的 LNK 文件元数据和文件名模式,我们能够获得另外 10 个恶意软件样本。下面是包含本报告中分析的 LNK 文件的表格。
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
获取的其他恶意软件 LNK 文件元数据
3.3.通过分析获取的恶意软件来确认 C&C 基础设施相关性
此外,对所获取的恶意软件的分析表明,具有相同元数据的恶意软件对所有其他元数据也具有相同的元数据。这表明该恶意软件可能是在相同的环境中创建的。此外,本报告分析的最后一个恶意软件 AsyncRAT 所通信的 C&C 服务器地址已在其他恶意软件中得到证实。下表中的所有恶意软件在执行时都会从同一个C&C服务器下载压缩文件,解压,然后执行vbs文件。这些信息使206.206.127[.]152我们能够确定它自去年以来就被用作攻击基础设施
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
恶意软件的 C&C 地址为 206.206.127[.]152
另外,我们确认206.206.127.152已被列入AhnLab《 2024年12月APT攻击趋势报告(国内) 》的IOC列表中。该信息并未公开披露,似乎是该公司收购的恶意软件中证实的 C&C 信息,这表明使用 206.206.127[.]152 作为 C&C 服务器的恶意软件被用于针对韩国的攻击。
以 2024 开头的恶意软件和以 2025 开头的恶意软件(20240625_47531.docx.lnk 除外)执行的操作不同。
-
以 2024 开头的恶意软件:从 C&C 服务器下载压缩文件
-
从 2025 年开始的恶意软件:从 Dropbox、C&C 服务器下载压缩文件
发现文件名以 2025 开头的四个恶意软件样本中有三个使用了相同的 Google Drive 和 C&C 服务器。对于 Google Drive,刷新令牌不同,但文件夹 ID、客户端 ID 和客户端密钥相同。
具体来说,20250114_27263.docx.lnk 文件的机器 ID 与其余文件不同,但它使用与 20250201_388165727.eml.lnk、20250206_68013.docx.lnk 文件相同的 Google Drive。这提供了重要证据,证明这些攻击是在不同的环境中发生的,但由同一个攻击者实施。
结论
在本报告中,我们分析了 Konni 组织利用 LNK 文件的最新攻击案例。攻击者采用将 LNK 文件伪装成文档文件的策略来诱导初始感染,然后利用 Google Drive 和 Dropbox 等云服务来分发其他恶意软件。此外,最终执行的 AsyncRAT 已更改为通过接收 C&C 服务器信息作为执行参数来运行。这比现有的将 C&C 服务器信息硬编码到恶意软件中的方法更加灵活,任何人只需设置单独的服务器就可以利用恶意软件。这种方法掩盖了攻击者的身份和攻击基础设施之间的联系,使得追踪变得困难。
此外,我们还利用LNK文件元数据特性获取了其他恶意软件,并确认AsyncRAT C&C服务器被用于网络钓鱼电子邮件攻击。虽然 LNK 文件元数据可以被攻击者修改,但另外获得的恶意软件包含常见的 C&C 服务器和 Google Drive API 信息,并且 TTP 也以相同的方式执行。根据这些证据,可以断定这几起袭击是由同一袭击组织实施的。
这些攻击仍在被发现,攻击者正在尝试各种技术来绕过产品检测。事实上,VirusTotal 已经发现了几个以各种方式执行额外有效载荷的测试 LNK 样本。这表明攻击者不断尝试新方法来逃避检测并找到更有效的感染技术。本报告分析的攻击方法至今仍在使用。 EnkiWhiteHat 威胁研究团队将持续监控和追踪这些威胁,为创建更安全的网络空间做出贡献。
IOC
268640934dd1f0cfe3a3653221858851a33cbf49a71adfb4d54a04641df11547- 20250211_03837.docx.lnk5967513540ad610ddbbc124f2437cf58dd10341da7d8d016932e74c3241dfa2a-d.ps147abd1682a88f7aadd3fe57583a7edba9cae2d7cf6632df19fbe687544dac632-gs.zip9af27198deefa87bb1d3868abb295f0136c18e74b5231772351c359ccd740323- 83972.tmp694af547d321771e69c48cf3c04411fc1de1b5d4a465815c54fff44d3d8da790-G3892.tmp68621690299e676b7562aca350a4ab87b898919c140b11bac7282d9c07d53838-tmps4.ps17a21d0e9793a4f115d395c6e99927d54840a75f9f5501d77eca52c2e35069006-rt_10_dummy_0206.tmp(异步RAT)
9c9df2d90602c915005811aabf444653f55024080c61845029f75da758b27320f3aee5924279dd1883efbb04c89166368e954b7e81483507dc032561bb2cf6e1aaecb10ca453bec3bb95bedac6d773a593ea984509845eb7b15d8894d4b385adba52ab256079f80fdf9c47bf5fc215fed99ed1659c976ca692f4493e08e4b301dfeec1052063d6dc69cc6d23ca0cd262cd06899554f5ebd528d5d72935204bf211ac6151182db3b41f9022b4e4b8a388e982f7fece3a34596bd84c11ec2a4ebd52b8e4da732d06000e29d7609668021be8cc99fccd9fb4a04f93f1c25d11bdd6f4c4f68f8b27279b00b718b02392d5dfe1766c342a189a51e0e2a6f6412e1ce011afe5cc28666c39d3dc3e9d51f780e55ce57e29424861b94002fb3370474f7ee6e3a8fb352641bb5b6f6db1479490d942852d77d9ca30b2f0931f28e2691983811d221a1340e64aa1736d9d4e8f80820a5a02fab3d0c9e454f3ed35cd717b81aacb5aca178f6444a82bca1febb282a2859c5a43208ad1cdd39977dc3521f0f6
原文始发于微信公众号(Ots安全):Konni 的最新 AsyncRAT 攻击:利用 LNK 文件的感染技术
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论