找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2499

积分

0

好友

359

主题
发表于 15 小时前 | 查看: 2| 回复: 0

2026年1月初,Red Asgard威胁研究团队在对一个通过Upwork平台获得的加密货币项目进行例行审查时,发现了三个可疑的项目。这些项目的承包商使用虚假身份,在看似合法的代码仓库中嵌入了恶意软件。

三种攻击向量

该恶意代码仓库包含了三种不同的初始感染机制:

  1. VSCode 自动执行:仓库中包含一个配置为 runOn: folderOpen.vscode/tasks.json 文件。这意味着恶意代码会在开发者使用 VSCode 或 Cursor 编辑器打开项目文件夹的瞬间自动执行。
  2. 通过函数构造器实现后端 RCE:一个名为 errorHandler.js 的文件包含以下内容,通过 Function.constructor 动态创建并执行函数,从而获得完整的 Node.js 访问权限。
    const handler = new (Function.constructor)('require', errCode);
    return handler;
    handlerFunc(require); // Execute with full Node.js access
  3. Cookie 有效载荷传递:这是一个 Vynlence 恶意软件的变体。其中包含一个 getCookie() 函数,该函数会向 C2 服务器发起请求,获取伪装成良性 cookie 的恶意 JavaScript 代码。当 C2 返回 { cookie: "<javascript_code>" } 后,代码同样通过 Function.constructor 被执行。

这三个攻击向量最终都指向了托管在 Vercel 平台上的第一阶段C2服务器。

第一阶段:Vercel 分发服务器

第一阶段服务器用于接收受害者初始呼叫并分发令牌。

Vercel第一阶段C2服务器域名与令牌

第二阶段:专用 C2 服务器集群

在获得有效令牌后,恶意软件会与这些专用的第二阶段C2服务器通信。

第二阶段C2服务器IP、主机名与角色

所有第二阶段服务器均运行 Windows Server 2019/2022 系统,主要服务包括:运行在 1244 端口的 Node.js Express.js 应用、21 端口的 pyftpdlib FTP 服务,以及用于操作员远程访问的 RDP/WinRM。

令牌认证与枚举

在侦察过程中,我们发现了一个可以利用响应时间差异来枚举有效令牌的“时序预言机”。

有效与无效令牌的响应时间差异

有效令牌的响应时间约为 400 毫秒,而无效令牌会导致约 6 秒的超时,这 15 倍的差异清晰地揭示了令牌是否被 C2 服务器主动维护。利用这个方法,我们枚举出了三个活跃的活动令牌:hkMrMq7kmHgMq7dGVhbTE1(后者是 “team15” 的 Base64 编码)。

检测建议:安全团队可以监控对类似 /c/{token} 端点的连续请求,或监测系统化令牌变体的访问模式,以发现此类攻击。

模块化有效载荷链

C2服务器通过不同的令牌认证端点,提供模块化的恶意功能。

C2服务器端点与对应的恶意模块

破解64层代码混淆

bro_*.js 命名的初始载荷包含了极其复杂的 64 层嵌套混淆:

  1. 第1层:采用 Base85 编码,并使用 XOR 密钥 Vw1aGYoP 进行加密。
  2. 第2-64层:每一层都是 zlib 压缩、字符串反转和 Base64 解码的循环组合。
  3. 最终输出:经过全部64层解混淆后,得到一个 175,733 字节的 Python 后门程序。

第一层的 XOR 密钥是最难发现的,必须通过模式分析来破解。一旦突破第一层,后续的63层则是机械化的重复解压和解码过程。

最终的负载揭示了一个功能齐全的后门,其最令人意外的功能是包含了一个伪装成 msedge.exe 的 XMRig 加密货币挖矿程序。这表明攻击者不仅窃取凭证,还在利用受害者的计算资源挖掘门罗币进行变现。

关键密钥汇总

在分析过程中,我们复原了多个用于不同组件的加密或编码密钥。

不同恶意软件组件使用的密钥及其用途

后门功能剖析

经过彻底的去混淆处理,这个 175KB 的 Python 负载展现出了复杂的持久化驻留和反检测能力。

持久化机制

  • 启动文件夹:将自身复制为 Windows Update Script.pyw
  • 计划任务:创建名为 “运行时代理” 的任务。
  • Defender 排除项:通过 PowerShell 命令将自身路径添加到 Windows Defender 的扫描排除列表中。

进程伪装
恶意软件组件伪装成的系统进程名

庞大的 Pastebin 死信箱

该恶意软件内硬编码了 1000 个经过编码的 Pastebin 配置文件 URL,用于“死投递”式通信。这些账户名遵循特定的模式。

https://pastebin.com/u/HolesGarmin3166_OnsitePoet2677
https://pastebin.com/u/CrackEden1251_WaitsRenee9809
https://pastebin.com/u/KerrWhale2274_KnowNtsc6785
... (997 more)

截至2026年1月分析时,对其中100个账户的抽样检查均返回404(未找到),表明这些可能是为未来攻击预留的预备资源或已被弃用。

操作员 RSA 公钥

在后门中发现了操作员使用的RSA公钥,可用于加密通信。

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvRgxN5vWny1/dAc7s6KM
ZURyqQti1OE11PkaXPY32E39TKau6vD+QntWKNTFI53WmkvY6YbLGf06oiZ99uYd
TkeL/gtKfnaPPOt1mADL9R3nFwyWABw7Q41NgYlu7XHMiTUuh/TRPvOiXL5yKx+4
PnXsN+sE93pk2qNpB+cnJ1/b4re89xuNpD9HQjjsda3PNOD13s7OL7fq+74tY4oc
MQ6BNFOq9J46xd/4jay8n/q33v3PgwwsL6TQR5grUdfblXZ8WZzxXVKEqMtqJtmR
M8zjHoods0PoopOS6IzoYD+anchz5JCKHBrrMXd8g+A2hMq+W5lEkIytbe1dPXsn
CQIDAQAB
-----END PUBLIC KEY-----

SHA256: 40b59567a2b580f1952dadae5dd586895b2316e590b84842f89aed1675f2d707

Z238 二进制协议分析

IP 地址 66.235.168.238(主机名 Z238)上的 22411-22412 端口运行着一个自定义的二进制协议,而非常见的 HTTP。这通常用于更隐蔽或高效的命令与控制通信。

协议结构
Z238自定义二进制协议的数据包结构

已识别的消息类型
协议消息类型与功能对应表

协议破解过程:在捕获到的服务器初始问候数据包中,十六进制转储中出现了重复的 0xcb 模式,这是对空字节(0x00)进行 XOR 编码的明显迹象。使用 XOR 密钥 0xcb 解码后,出现了 MmmM 魔术字节,进而揭示了其使用宽字符(Wide-char)编码的方案。

我们尝试构造了认证数据包,并通过澳大利亚和日本的 VPN 出口节点进行测试。第一个数据包被服务器接受(返回空响应,无错误),但后续的探测立即触发了速率限制。几个小时内,所有用于测试的 VPN IP 地址都被封锁。这明确表明操作员实时检测并响应了我们的探测活动。

操作员的实时防御反应

在主动侦察期间,我们观察到了基础设施的实时动态防御。

操作员对探测行为的反应与对策

这绝非“发射后不管”的静态基础设施,背后有操作员在进行实时监控和干预。

我们尝试将分析中发现的 XOR 加密密钥(如 G01d*8@()作为可能的服务器登录凭证进行复用,但所有尝试均告失败。

尝试复用恶意软件密钥进行服务器登录的结果

结论:攻击者严格区分了用于恶意软件加密的密钥和用于基础设施访问的凭证。这是成熟的作战安全(OPSEC)实践。

数据库访问与基础设施融合

从恶意软件中发现的硬编码 MongoDB 凭证,使我们能够访问一个包含 32 个数据库(总计约 3.2GB)的集群。

通过MongoDB凭证访问的数据库内容

同一个 MongoDB Atlas 集群既承载了C2行动的后端数据,也运行着看似合法的开发项目。这种将攻击基础设施与正常业务混合的策略,为攻击者提供了掩护。一旦被调查,他们可以辩称这些网络活动源于“正常的”开发工作。

用于干扰研究的诱饵端点

C2 服务器上还部署了一些看似功能正常、实则无效的端点,目的很可能是浪费安全研究人员的时间。

C2服务器上设置的诱饵端点及其行为

归因分析:高度置信归因于 Lazarus 集团

综合所有证据,我们以高度置信度评估此次攻击背后的基础设施归属于朝鲜 Lazarus 黑客集团。

归因于Lazarus集团的证据链与权重

从业者视角与启示

“传染性访谈”(Contagious Interview)攻击活动并非新生事物,SentinelOne、Sekoia 等安全机构已有大量记录。本文的独特价值在于,它展示了当你不仅分析恶意软件样本,而是主动对攻击者的活体基础设施进行探测时,会发生什么。

这些攻击者的能力非常专业。他们实施严格的凭证隔离,监控探测流量,将C2设施与合法项目混合部署,并为研究人员设置诱饵。这绝不是业余黑客的行为。

然而,他们也会犯错。例如,硬编码的 MongoDB 凭证、可利用的时序差、具有可预测模式的 XOR 密钥,以及理论上可枚举的 Pastebin 账户命名规则,都留下了蛛丝马迹。

BlockNova(此前被认为是 Lazarus 的前线公司)已在 2025 年 4 月被查封,但我们在 2026 年 1 月所记录的这部分基础设施依然在活跃运作。这揭示了一个残酷的现实:打击行动可能会减慢他们的速度,但很难完全阻止他们。

给企业的安全建议:如果你通过 Upwork、Fiverr 等平台招募加密货币或区块链开发者,那么你的组织很可能处于此类攻击的目标范围内。务必在合作开始前审查承包商提供的代码仓库;在开发环境中禁用 VSCode 的自动运行任务功能;在运行 npm install 之前,仔细审查 package.json 文件中的所有脚本。保持对新型攻击手法的关注,例如在 云栈社区安全/渗透/逆向等板块,常能获取到最新的威胁情报与分析。




上一篇:深入解析Flink Mailbox线程模型:源码实现与执行流程详解
下一篇:谷歌发布UCP通用商务协议:AI Agent购物新标准,重构电商交易链路
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-16 18:16 , Processed in 0.233038 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表