文章总结: Tsundere是一种新型恶意软件,它巧妙结合了Node.js生态和区块链技术,通过以太坊智能合约存储C2服务器地址,使传统IP封禁失效。该恶意软件伪装成游戏工具传播,利用pm2实现持久化,通过WebSocket与C2通信。研究人员发现代码中有俄语痕迹,攻击者禁止攻击俄罗斯和独联体国家。防御建议包括警惕供应链攻击、监控Node.js进程、网络层审计等,这标志着恶意软件正在快速吸收现代Web开发和Web3技术栈。
综合评分: 100
文章分类: 恶意软件,漏洞分析,威胁情报,WEB安全,区块链安全
当恶意软件用上了智能合约,传统的 IP 封禁还有效吗?
原创
Hankzheng
技术修道场
2025年11月25日 08:12
广东
最近在安全圈子里,有个很有意思的新样本引起了我的注意。它叫 Tsundere(日语“傲娇”之意)。
名字听起来挺二次元、挺人畜无害的,对吧?但作为一名在 IT 摸爬滚打十几年的IT人员,我看了一遍它的技术实现,有点叹为观止。
为什么?因为它把 Node.js 生态 和 区块链技术 结合得“太好了”。
通常我们见到的恶意软件,要么是简单的脚本小子作品,要么是复杂的二进制程序。但 Tsundere 不一样,它利用了我们最熟悉的开发工具(Node.js, npm, pm2)来维持生命周期,甚至利用以太坊智能合约来逃避 C2(Command & Control)封锁。
今天,咱们就脱下它的伪装,从技术角度硬核拆解一下这个“傲娇”的僵尸网络。
01 披着游戏外衣的“特洛伊木马”
首先,这玩意儿是怎么进来的?
根据卡巴斯基最新的分析报告,Tsundere 从 2025 年中期开始活跃。它非常狡猾,专门针对游戏玩家。
攻击者把恶意软件伪装成了 《瓦罗兰特》(Valorant)、《彩虹六号:围攻》(Rainbow Six Siege) 和 《反恐精英 2》(CS2) 的相关工具(比如外挂、破解补丁或优化器)。甚至在某些案例中,攻击者利用了合法的 RMM(远程监控管理)工具 作为跳板,下载一个恶意的 MSI 安装包。
一旦你运行了这个 MSI 文件,好戏就开始了。
02 技术拆解一:Node.js 的“邪道”用法
作为技术人员,我们对 Node.js 再熟悉不过了。但 Tsundere 的作者显然也是个全栈高手,他直接把目标机器当成了自己的“生产环境”。
MSI 安装包会在受害者电脑上静默安装 Node.js。紧接着,它会执行一个加载器脚本,并通过 npm install 命令下载三个合法的库:
-
ws
用于 WebSocket 通信(这是它与 C2 甚至的关键)。
-
ethers
以太坊区块链交互库(重点来了,后面细说)。
-
pm2
进程管理工具。
⚠️ 技术痛点分析:PM2 的滥用
这里最让我觉得“绝”的是对 pm2 的使用。做过 Node.js 后端的同学都知道,pm2 是用来守护进程的,保证服务崩溃后自动重启,或者服务器重启后自动拉起服务。
Tsundere 的作者心想:“这不就是完美的 持久化(Persistence) 方案吗?”
恶意代码通过 pm2 注册启动项,写入注册表。这样一来,无论你怎么重启电脑,恶意脚本都会随着系统登录自动运行,而且不仅是运行,它还是被“守护”着的,杀掉进程可能还会自动重启。
03 技术拆解二:把 C2 写在区块链上
这是 Tsundere 最核心、也最难对付的技术亮点。
传统的僵尸网络,C2 服务器的 IP 地址通常是写死在代码里,或者通过 DGA(域名生成算法)生成的。防守方一旦发现,直接在防火墙把 IP 或域名拉黑,这事儿就结了。
但 Tsundere 玩了一手 DApp(去中心化应用) 的逻辑。它的运作流程是这样的:
-
连接区块链:
受感染机器上的恶意脚本利用 ethers 库,连接到以太坊(Ethereum)网络。
-
读取智能合约:
它会去查询一个特定的智能合约(该合约创建于 2024 年 9 月 23 日)。
-
获取 C2 地址:
通过读取合约中的交易数据或状态,解析出当前最新的 C2 WebSocket 服务器地址(例如
ws://193.24.123[.]68:3011)。 -
建立连接:
拿到真实地址后,再发起 WebSocket 连接,接收 JS 代码并执行。
💡 为什么这招很“骚”?
-
● 抗封锁性极强:
你没法封禁以太坊网络,那是公链。防御者无法通过传统的 DNS 劫持或 IP 黑名单来切断它获取 C2 的途径。
-
● 动态切换:
攻击者如果发现原本的 C2 服务器被封了,他只需要向自己的智能合约发送一笔交易,更新一下存储的 IP 地址。全球所有的僵尸网络节点再次读取合约时,就会自动指向新的服务器。
-
● 隐蔽性:
流量看起来就是合法的区块链数据同步,极难在流量审计中被发现。
04 幕后黑手与黑色产业链
谁在运营这个网络?代码不会撒谎。研究人员在源代码的日志记录部分发现了 俄语。
更有趣的是,这个团伙还有“职业操守”。他们在暗网论坛上出售与之关联的 “123 Stealer”(一种窃密木马,订阅费 120 美元/月)时,明确规定:禁止攻击俄罗斯和独联体(CIS)国家。
“Violation of this rule will result in the immediate blocking of your account without explanation.”
(违反此规则将导致账号立即被封,不接受解释。)
这几乎是俄语系黑产团伙的“标准签名”了。
05 工程师的总结与防御建议
看完 Tsundere 的架构,作为技术人员,心情是复杂的。它证明了恶意软件作者正在快速吸收现代 Web 开发和 Web3 的技术栈。
给各位 IT 同行和读者的建议:
-
警惕供应链攻击:
不仅仅是 npm 包投毒,这种通过假冒 MSI 安装 Node.js 环境的手法更加隐蔽。
-
监控 Node.js 进程:
在非开发环境的 Windows 终端上,如果发现不明的
node.exe进程长期驻留,或者发现了 pm2 服务,请务必排查。 -
网络层审计:
虽然无法封禁以太坊,但企业内网应关注非业务相关的 WebSocket 连接,尤其是指向不明 IP 的长连接。
-
别玩盗版游戏:
这是老生常谈了,但在巨大的诱惑面前,很多人还是会心存侥幸。
技术本身无罪,但当技术被用于作恶时,我们作为防御者,必须比攻击者学得更快。
关于这个“区块链+僵尸网络”的架构,大家怎么看?
欢迎在评论区和我聊聊你的看法!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:技术修道场 Hankzheng《当恶意软件用上了智能合约,传统的 IP 封禁还有效吗?》