执行流程日益复杂:KimSuky LNK 攻击的新变化
近期,在 Kimsuky 组织传播的恶意 LNK 文件中,观察到了一系列显著变化。虽然其以 Python(派森) 为基础的后门或下载器恶意代码的整体攻击框架与以往相似,但在实际执行过程中,则引入了更加复杂的多层执行结构,这一点尤为引人关注。
此外,还确认攻击者滥用正常的云服务来传递恶意载荷,并通过 Python-based 恶意代码尝试规避安全产品的检测。这类攻击方式使得仅凭 LNK 文件的外观或简单的执行命令已难以判断其恶意性,用户安全防范的重要性也因此进一步提升。
本文将重点分析 Kimsuky 组织最新的 LNK 文件传播方式变化、攻击中采用的核心技术特点,并对整体攻击流程进行分阶段解析。

|
分类 |
过去的传播方式 |
近期传播方式 |
|
初始执行 |
LNK → PowerShell → BAT |
LNK → PowerShell → 创建诱饵·XML·PS1·VBS |
|
中间阶段 |
单独执行BAT |
XML → VBS → PS1 → BAT |
|
下载文件 |
下载 ZIP、诱饵文件 |
下载 ZIP 文件 |
|
ZIP 文件内部结构 |
Python 脚本、Python 解释器、XML 计划任务文件 |
Python脚本、Python解释器、XML调度程序文件 |
|
最终执行 |
通过 XML 执行 Python 脚本 → 下载并执行 Python 后门 |
通过 XML 执行 Python 后门 |
|
特征 |
相对简单的执行结构 |
中间步骤多重化及执行流程分离 |
【表 1】过去与近期传播方式的变化
1. 过去的 LNK 传播方式
1-1. 初始执行
传统的 LNK 文件通过 PowerShell 脚本从外部 URL 下载 BAT 文件的方式运行。
- URL:hxxps://qugesr[.]online/m/bDw
【图 1】恶意 BAT 脚本文件
1-2. 中间阶段
下载的 BAT 文件会进一步下载 ZIP 文件和诱饵文件。随后,它会分别下载分割的 ZIP 文件片段,并将其合并创建一个压缩文件。
该压缩文件包含 Python 脚本、Python 解释器以及 XML 任务计划程序文件(sch.db),并基于该 XML 文件注册任务计划程序(Microsoft_Upgrade{10-9903-09-821392134})。随后,任务计划程序将运行 Python 脚本,最终下载并运行基于 Python 的后门程序。
|
URL |
分类 |
|
hxxps://qugesr.online/dwparts_view/view.php?in=comm.part000 |
ZIP_1 |
|
hxxps://qugesr.online/dwparts_view/view.php?in=comm.part001 |
ZIP_2 |
|
hxxps://qugesr.online/dwparts_view/view.php?in=normal |
诱饵文件 |
【表 2】 附加文件下载
【图 2】 正常诱饵文件
2. 近期 LNK 传播方式
2-1. 初始执行
近期传播的 LNK 文件,如“履历表(朴成民).hwp.lnk”以及“数据备份与恢复流程制定指南(参考).lnk”与以往传播案例相同,均通过执行 PowerShell 脚本开始攻击流程,并在 C:\windirr 路径下创建具有隐藏(Hidden)及系统(System)属性的文件夹。
此行为被推测为一种隐匿手段,旨在避免该路径在用户常规文件浏览过程中被轻易发现。随后,会在该文件夹中生成并执行 LNK 文件所携带的相关文件。
在生成的文件中,包含用于误导用户的正常诱饵(Decoy)文件,同时还会创建一个沿用 LNK 文件名的 HWP 文档,以降低用户的警惕性并增强其可信度。
|
|
|
|
履历表(朴成民).hwp.lnk 的诱饵文件 |
数据备份与恢复流程制定指南(参考).lnk 的 诱饵文件 |
【图 3】正常诱饵文件
|
生成的文件 |
功能 |
|
sch_ha.db |
XML 作业调度程序文件 |
|
11.vbs |
pp.ps1 可执行文件 |
|
pp.ps1 |
下载附加文件 |
【表 3】各文件的功能
2-2. 中间阶段
攻击者基于 XML 文件创建一个任务计划程序 (Task Scheduler)。该任务计划程序名称被设定为 GoogleUpdateTaskMachineCGI__{56C6A980-91A1-4DB2-9812-5158E7E97388},以伪装成正常的 Google 更新相关任务。
在 XML 文件中定义了任务计划程序的具体行为:自 2025-08-26 15:17 起,每隔 17 分钟持续执行以下命令:wscript.exe /b “C:\windirr\11.vbs
当任务计划程序触发并执行 11.vbs 文件后,随后会进一步执行 C:\windirr\pp.ps1 文件,从而将攻击阶段推进至下一阶段。

【图 4】已注册的任务计划程序
pp.ps1 文件在创建 C:\Users\Public\Documents\tmp.ini 文件后,会将【表 2】中所列的信息写入该文件。攻击者将 Dropbox 服务作为信息传输用的 C2 通信通道,并以“<userdomain>_<日期>_info.ini”的文件名格式上传所窃取的信息。
此外,攻击者还会从其 Dropbox 账户中下载名为“zzz09_test.db_sent”的文件,并将其保存至“C:\Users\Public\Music\hh.bat”路径下,随后通过执行以下命令来运行该文件:cmd.exe /c C:\Users\Public\Music\hh.bat
|
窃取信息的信息 |
|
userdomain、username、当前正在运行的进程列表、OSVersion、公网IP信息、杀毒软件信息 |
【表 4】窃取的信息
【图 5】pp.ps1 代码片段
hh.bat 文件需从下方 URL 分别下载两个分割的 ZIP 文件片段,合并后创建位于 %TEMP%\G9081234.zip 路径下的单个 ZIP 文件。随后将该 ZIP 文件解压至 C:\winii 路径。 压缩文件内部包含 XML 任务计划程序文件(norton.db)和 Python 后门文件(beauty.py)。
|
URL |
存储路径 |
|
hxxps://quickcon.store/man/logo.php?au=beauty.part000 |
C:\winii\part000 |
|
hxxps://quickcon.store/man/logo.php?au=beauty.part001 |
C:\winii\part001 |
【表 5】附加文件下载

【图 6】hh.bat 代码片段
最终的 Python 后门文件通过 XML 任务计划程序文件执行。hh.bat 文件以“GoogleExtension{02-2032121-098}”为名称注册一个任务计划程序,用于执行 C:\winii\beauty.py 文件,并通过该任务计划程序最终启动 Python 后门程序。
3. Python 恶意代码
确认本次攻击中使用的基于 Python 的恶意代码主要分为两种类型:一种是从外部服务器下载附加有效载荷的下载器(Downloader),另一种则是用于远程接收并执行攻击者命令的后门程序(Backdoor)。
3-1. 后门程序
后门程序会首先向 C2 服务器 45.95.186[.]232:8080 发送包含“HAPPY”字符串的数据包。推测其目的在于向攻击者通知系统已成功感染。随后,后门通过基于魔术字节(0x99 0x0A 0xBD 0x99)的固定大小(4096 字节)自定义协议进行通信,并根据接收到的命令代码执行以下功能:
- 执行 Shell 命令
- 查询驱动器列表
- 上传与下载文件
- 删除文件(删除前以随机数据进行覆盖)
- 执行文件(.exe、.bat、.vbs)
在实际分析过程中,已观察到该后门执行了查询驱动器信息、网络设置(使用 ipconfig)以及正在运行的进程信息(使用 tasklist)等行为。

【图 7】根据攻击者命令进行的功能分支
|
命令 |
功能 |
|
0100 |
查询驱动器容量 |
|
0010 |
执行 Shell 命令 |
|
0110 |
查看目录列表 |
|
0120/0121 |
上传文件 |
|
0130/0131 |
下载文件 |
|
0140 |
删除文件 |
|
0150 |
运行 BAT、VBS、EXE 文件 |
|
1110 |
退出 |
【表 6】命令对应的功能
|
时间 |
命令 |
含义 |
|
2026-02-12 13:00 |
感染 |
|
|
2026-02-12 13:08 |
0100 |
查看磁盘空间 |
|
2026-02-12 13:09 |
0010 |
ipconfig |
|
2026-02-12 13:10 |
0100 |
查看磁盘空间 |
|
2026-02-12 13:10 |
0010 |
任务列表 |
|
2026-02-12 13:11 |
0010 |
ipconfig |
|
2026-02-12 13:11 |
0010 |
dir /s C:\ |
【表 7】攻击者发送的命令
3-2. 下载器
下载器会连接到攻击者控制的服务器,将 VBS 和 BAT 文件保存到 %TEMP% 路径下,随后设置 CREATE_NO_WINDOW(0x08000000) 标志,在无控制台窗口的后台模式执行上述文件。
在执行完成并等待 180 秒后,下载器会删除这两个文件,以清除执行痕迹并降低被检测的可能性。

【图 8】Python 下载代码片段
4. Kimsuky 攻击组织特征
4-1. 基于 XML 文件的任务计划程序注册
经分析发现,Kimsuky 组织过去传播 RAT 恶意代码时所使用的任务计划程序名称,与此次后门传播过程中使用的任务计划程序名称之间存在高度相似性。
|
Kimsuky 组织此前使用的任务计划程序任务名称 |
GoogleUpdateTaskMachineUA{1C791230-CA8D-6D04-AC55-F706378A30E} |
|
本次案例中Kimsuky 组织使用的任务计划程序任务名称 |
GoogleUpdateTaskMachineCGI__{56C6A980-91A1-4DB2-9812-5158E7E97388} |
【表 8】任务计划程序任务名称的相似性
4-2. 相似的 XML 文件名
分析发现,在过往的攻击活动中,Kimsuky 组织曾使用 sch_*.db 格式的 XML 文件注册任务计划程序。
|
Kimsuky 组织过去使用的 XML 文件名 |
sch_0514.db |
|
此次案例中 Kimsuky 组织使用的 XML 文件名 |
sch.db, sch_ha.db |
【表 9】XML 文件名的相似性
4-3. 使用与过去攻击中相同的诱饵文件
分析发现,Kimsuky 组织在过往的攻击中使用的诱饵文件,也被再次用于此次 LNK 文件的攻击过程中。

【图 9】Kimsuky 组织过去使用的正常诱饵文件
5. 结论
此外,攻击过程中还确认将 Dropbox 等正常的云服务用于信息传输与恶意文件下载路径,并通过 Python 恶意代码尝试规避安全产品的检测。这些变化表明,攻击者在维持攻击流程整体框架不变的前提下,持续对具体实现方式进行调整,以达到规避检测的目的,体现出其战术层面的灵活性与持续演化特征。
伪装成文档文件的 LNK 文件仅凭外观难以判断其是否具有恶意行为。因此,用户在日常使用过程中,应始终对来源不明的文件保持高度警惕,切勿随意执行,以降低安全风险。