本文将分析 LinkedIn 招聘钓鱼案例并提供有效的应对建议。
原文标题:《慢雾:LinkedIn 招聘钓鱼分析》
作者:23pds & Thinking
编辑:Liz
近年来,在 LinkedIn 平台上针对区块链工程师的钓鱼事件时有发生,昨天,我们在 X 上注意到 @_swader_ 发布的一个帖子。这个遭遇其实是针对区块链工程师招聘钓鱼的一个缩影,接下来我们分析下这个案例。
根据 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 发送恶意文件,针对这类钓鱼攻击,我们从用户和企业的角度提出以下应对建议:
用户
企业
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。