背景
近年来,在 LinkedIn 平台上针对区块链工程师的钓鱼事件时有发生,昨天,我们在 X 上注意到@_swader_ 发布的一个帖子。这个遭遇其实是针对区块链工程师招聘钓鱼的一个缩影,接下来我们分析下这个案例。
(https://x.com/_swader_/status/1900116168544817589)
过程
根据 Bruno 的描述,一个自称是项目方的人主动联系到他,然后给他发了一段很长的项目介绍:
内容主要涉及一个区块链 Socifi 游戏和质押智能合约平台的招聘信息。
项目概述
该项目是一个基于 Socifi 游戏的质押智能合约平台。核心功能包括:
• 去中心化交易所
• 游戏
• 多游戏社区功能
• NFT 和代币(Tokens)
• 直播服务
招聘意图
• 寻找开发者加入该项目。
• 已经招聘了后端和智能合约开发人员。
• 推荐 Bruno Skvorc 担任项目经理/前端开发团队负责人。
MVP 设计
• 发送者提供了 Figma 设计链接,指向 MVP v2 版本。
招聘流程
背景调查
在线编程测试
技术面试
刚开始招聘人员含糊其辞,然后开始给 Bruno 打电话,试图传达紧迫感和重要性,并立即提供了 repo 链接:https://bitbucket[.]org/ventionteam/gameplatform/src/main/。
用户和提交代码的时间:
接下来我们分析下恶意代码。
技战法
我们看下代码说明:
那么它的真实功能是不是如此呢?
首先看下 package.json:
并没有发现恶意的第三方模块,看来不是通过恶意 NPM 包进行攻击。我们继续分析,当我们看到 server.js 时,如果不注意,看到第 47 行可能就结束了,毕竟一眼看过去似乎没什么异常。
但是,注意仔细看第 46 行,那是什么?而且有很小的水平滚动条,这表示右边有东西!我们拖过去看下:
这是一个加密的恶意 payload,它的具体作用是什么呢?我们看一下代码:
(上图为部分代码)
这是经过加密的代码,而且不止一层,base64 加密。
运行 npm start 后,会正常运行,那么这个 payload 究竟有什么用?
我们虚拟机运行一下测试(专业操作,请勿模仿)。
发现这个攻击手法各种混淆,解密比较麻烦,我们直接通过 Hook 手法把 C2 链接抓出来:
成功抓到恶意 IP:
216.173.115[.]200
95.179.135[.]133
45.59.163[.]56
45.59.1[.]2
5.135.5[.]48
恶意请求:http://216.173.115[.]200:1244/s/bc7302f71ff3。有趣的是,这个恶意请求竟然绕过了 little snitch 的监控检测。
攻击者会下载文件并执行,两个文件分别是 test.js 和 .npl。
该 .npl 木马主要用于权限维持:
这是 .npl 解码后的内容:
上述代码用于下载一个名为 pay 的 Python 程序,解码后的内容如下:
攻击者使用 Python 执行 .npl 用于维持权限。
test.js 主要用于盗取浏览器数据,如插件钱包数据、浏览器保存的账号密码等:
(test.js 代码部分片段)
解密(片段):
最终根据我们分析,一旦受害者运行代码,payload 将执行以下操作:
1. 收集系统/环境数据(主目录、平台、主机名、用户名等)。
2. 向远程服务器发出 HTTP 请求以获取其他数据或有效 payload。
3. 将获取的有效 payload 写入本地文件系统(通常在主目录中)。
4. 使用 Node 的 child_process.exec 执行这些有效 payload。
5. 继续回连或“回传”系统数据到 C2 服务器。
6. 每隔一段时间重复此活动,保持心跳包,如果初次尝试失败,则尝试多次。
7. 悄悄监控用户行为,为盗取加密资产等行为做准备,如代码中尝试读取特定目录 /Library/Keychains/(macOS 关键存储路径)、窃取 SSH 私钥、盗取浏览器插件数据、浏览器保存的账号密码等。
同时 @blackbigswan 发现相同的用户:
https://github[.]com/DavidDev0219
https://github[.]com/vention-dev
https://github[.]com/FortuneTechWorld
笔者猜测是同一批攻击者,不再做多余分析。
应对建议
攻击者通常会通过 Telegram、Discord、LinkedIn 发送恶意文件,针对这类钓鱼攻击,我们从用户和企业的角度提出以下应对建议:
用户
警惕要求下载或运行 GitHub 等平台代码的可疑招聘信息或兼职,优先通过企业官网、官方邮箱核实发件人身份,避免轻信“限时高薪任务”等诱导话术;
处理外部代码时,应严格审查项目来源及作者背景,拒绝运行未经验证的高风险项目,建议在虚拟机或沙盒环境执行可疑代码以隔离风险;
对 Telegram、Discord 等平台接收的文件保持警惕,禁用自动下载功能并手动扫描文件,警惕以“技术测试”为名的恶意脚本执行请求;
启用多因素认证并定期更换高强度密码,避免跨平台重复使用。
企业
定期组织员工参与钓鱼攻击模拟演练,培训识别仿冒域名及异常请求的能力;
部署邮件安全网关拦截恶意附件;
监控代码仓库敏感信息是否泄露;
建立钓鱼事件应急响应机制,通过技术防护与人员意识相结合的多维策略降低数据泄露与资产损失风险。