文章总结: 文章分析了伪装成OpenClaw安装器的恶意npm包,该包通过伪造CLI界面和Keychain授权提示进行社工攻击,部署RAT木马窃取macOS用户密钥、浏览器数据、加密货币等敏感信息,并实现持久化驻留与远程控制,建议开发者检查包名、使用–ignore-scripts并警惕CLI密码请求。 综合评分: 90 文章分类: 恶意软件,漏洞预警,威胁情报,应急响应,社会工程学

原创
XueMian XueMian
雪面科技
2026年3月10日 12:41 澳大利亚

#
说实话,npm 生态的安全问题已经不是什么新鲜事了,但这次发现的这个恶意包,操作之精细、窃取范围之广,还是让人看完直接「我嘞个豆」。这攻击者怕不是把社会工程学的教材从头到尾背了一遍。
安全研究机构 JFrog 发现了一个名为 的恶意 npm 包。这个包伪装成 OpenClaw(一个合法的多渠道 AI 网关工具)的安装器,实际上干的事情是部署一个远程访问木马(RAT),然后把你 macOS 上能偷的东西偷了个底儿掉。
最离谱的是——截至写这篇文章的时候,这个包还在 npm 上,你现在就能下载到。npm 的审核机制?不存在的,纯纯摆设。
我们来实际看看:
几个关键信息,我帮你划重点:
- deps: none
— 零依赖。一个”安装器”零依赖?合理吗?这不就是此地无银三百两嘛
- 维护者邮箱
— 一眼丁真,鉴定为一次性随机邮箱
- 只有 2 个版本
(1.5.14 和 1.5.15),分别在 2026 年 3 月 3 日和 3 月 6 日发布——来得快去得也快
- 解包大小 70.6 kB,7 个文件
— 麻雀虽小,五脏俱全(恶意功能一个不少)
- bin 字段直接指向 →
— 入口就是恶意脚本
对比一下正版的 OpenClaw 包:
GPT plus 代充 只需 145
看到没?正版包名叫 (by steipete),有 27 个依赖、55 个版本、MIT 协议。而恶意包用了 这个带 scope 的名字来碰瓷,ISC 协议,零依赖。完全不是一个东西。这操作就像有人注册了个”苹果官方旗舰总店”来卖山寨机——名字唬人,内容拉胯。
光看报告不过瘾,我直接从 npm 下载了 tarball(不安装,不触发任何脚本),拆开看看里面到底藏了什么。搞安全研究嘛,不亲手拆一下怎么行。
“
恶意包的原始文件、反混淆脚本和部分解密后的代码我已经放到了 GitHub:xuemian168/openclaw-ai_openclawai,感兴趣的可以自己拉下来研究。
GPT plus 代充 只需 145
注意:没有显式声明 钩子——因为它藏在 文件里(npm 会自动检测 下的生命周期脚本文件)。这波属于是闷声发大财。
看到没?就这么简单粗暴。装完之后再 全局安装一遍自己——这样 字段里的 命令就注册到你的 PATH 了。注意那个 块——即使全局安装失败了,它也不会报错,假装没事继续走。不管你信不信,反正我装完了。
GPT plus 代充 只需 145
这段代码是完全无害的,写得还挺像模像样——有 JSDoc 注释、有 TypeScript 类型定义、README 里还有使用示例。纯粹是为了让你 review 代码时放松警惕。你打开 一看,”嗯,就是个简单的工具库”,然后就不去看 了。这招叫「灯下黑」,属于是把《三十六计》玩明白了。
这才是重头戏。63,567 个字符,全部压缩在一行里,使用了 obfuscator.io 的完整混淆套件:
打开一看——好家伙,跟看天书似的。但天书也有解法。

我写了个安全的反混淆脚本,在 VM 沙箱里只执行字符串解码器部分(不运行恶意逻辑),成功解码了 860 个加密字符串。以下是从中提取到的关键信息:
假安装界面的 UI 字符串
GPT plus 代充 只需 145
代码里有完整的 函数,用 和 字符绘制进度条,还会随机延迟让动画看起来更真实。连你的 Node.js 版本号都是实时读取的,让界面看起来完全可信。不得不说,这UI做得比很多正经开源项目还走心——可惜走的是歪路。属于是「你不说我还以为是正规军」。
AppleScript 社工弹窗
通过 调用 macOS 原生的 AppleScript 弹出对话框。标题写的是 “Authorization Required”,看起来就像系统弹窗。输错密码还会提示重试——跟真的 Keychain 授权一模一样。这不就是钓鱼界的「以假乱真」吗?连重试逻辑都给你安排上了,服务态度比某些正经App还好。
FDA(完整磁盘访问)诱导
GPT plus 代充 只需 145
如果没有 FDA 权限,脚本会弹出一个对话框,手把手教你给 Terminal 开权限:
- 自动打开系统偏好设置的隐私页面()
- 告诉你点哪个开关
- 提醒你重启终端
你说离谱不离谱?攻击者直接给你写了个「保姆级教程」,生怕你不会操作。这波属于甲方给乙方写操作手册——只不过甲方是黑客,乙方是受害者。
加密载荷投递
跨平台支持(也攻击 Windows)
GPT plus 代充 只需 145
没错,这个恶意软件还有 Windows 分支——通过 PowerShell 的 验证 Windows 域凭据。不止是 macOS 用户中招。真·雨露均沾,一个都不放过。
可疑标识符
(复杂考古学家)这个标识符属实有点中二了——不知道攻击者是觉得自己在”考古”别人的数据呢,还是纯粹取名废。
这个恶意包的攻击流程设计得相当”用心”,分好几个阶段,环环相扣。说实话,这完成度放在正经项目里都算高的。
安装后, 触发全局安装。全局安装后 字段生效, 命令指向 。以后在终端敲 ,执行的就是恶意脚本。
一行 就完成了 PATH 劫持。简单,粗暴,但有效。「大道至简」说的就是这个(不是)。
是第一阶段 dropper(投放器),它的表现堪称「演技炸裂」:
- 展示一个逼真的假 CLI 安装界面
— 有真实的进度条动画,实时读取你的 Node.js 版本号
- 弹出一个伪造的 iCloud Keychain 授权提示
— 通过 调用原生 AppleScript 对话框
细思极恐——如果你是个 macOS 开发者,看到安装完某个工具后弹出 Keychain 授权,你大概率会下意识地输入密码。你的系统密码就这样被偷了。 堪称「最强钓鱼UI」,比某些银行App的界面还像官方的。
在你被假界面骗得团团转的同时,脚本在后台悄悄干活:
- 从 C2 服务器 拉取一个加密的第二阶段 JavaScript 载荷
- 使用 进行 AES-256 解密
- 写入临时文件后作为分离的子进程在后台运行
- 通过 删除临时文件 — 清理痕迹
更骚的操作:如果脚本发现没有 Full Disk Access(完整磁盘访问权限),它会通过 弹出一个 AppleScript 对话框,直接打开 ,手把手教你怎么给 Terminal 授权 FDA。
给攻击者授权完整磁盘访问权限意味着什么?意味着你的 Apple Notes、iMessage、Safari 历史记录、Mail 数据全都暴露了。你亲手帮攻击者拆了自家的防盗门。
第二阶段载荷有大约 11,700 行代码,是一个成熟的信息窃取器 + RAT 框架。恶意软件内部自称 “GhostLoader”——中二但确实能打。
它窃取的数据范围简直触目惊心,属于「我全都要」系列:
| 类别 | 具体内容 | | — | — | | macOS Keychain | 本地 + 所有 iCloud Keychain 数据库 | | 浏览器数据 | 所有 Chromium 系浏览器的密码、Cookie、信用卡、自动填充(Chrome、Edge、Brave、Vivaldi、Opera、Yandex、Comet) | | 加密货币 | 桌面钱包应用、浏览器扩展、助记词(seed phrases) | | SSH 密钥 | 下的所有密钥 | | 云服务凭据 | AWS、Azure、GCP、Kubernetes、Docker、GitHub | | AI 配置 | AI Agent 的配置文件(没错,连你的 AI 配置都不放过) | | FDA 保护数据 | Apple Notes、iMessage 历史、Safari 浏览记录、Mail 账户配置、Apple 账户信息 |
看完这个表格只能说:哥们你是来装 npm 包的还是来搬家的?
收集完所有数据后,恶意软件会:
- 将所有数据打包为 压缩包
- 通过三个渠道同时外泄:
- 直接发送到 C2 服务器
- 通过 Telegram Bot API 发送
- 上传到 GoFile.io
三管齐下,确保数据一定能送出去。「鸡蛋不放一个篮子里」——这攻击者风控意识还挺强的(笑哭)。
数据偷完了?不不不,它还没完。恶意软件会进入持久化守护模式,属于「赖着不走」系列:
- 每 3 秒监控一次剪贴板
— 自动匹配 9 种预定义模式:
- 私钥、WIF 密钥、SOL 私钥、RSA 私钥
- BTC 地址、ETH 地址
- AWS Key、OpenAI Key、Strike Key
- 实时监控 iMessage 聊天
- 追踪运行中的进程
你以为它偷完就跑了?太天真了。它在你电脑里蹲着,等你复制粘贴加密货币地址的那一刻——「谢谢,收到」。
RAT 支持从 C2 服务器接收的命令包括:
- 执行任意 Shell 命令
- 在受害者浏览器中打开 URL
- 下载额外载荷
- 上传文件
- 启动/停止 SOCKS5 代理
- 克隆浏览器配置文件并以 headless 模式运行
- 自毁 + 自更新
其中浏览器克隆功能特别危险 — 它启动一个无头 Chromium 实例,使用受害者现有的浏览器配置(包括 Cookie、登录状态、历史记录)。攻击者不需要知道你的密码,就能获得一个已完全认证的浏览器会话。这意味着他可以直接以你的身份操作你登录的所有网站。
这功能直接就是:「我不是在用你的电脑,我就是你。」 赛博夺舍了属于是。
这个案例给我们几个重要教训:
- 永远检查包名
— ≠ ,仔细看清楚你要装的到底是什么。「买家秀和卖家秀的区别」
- 关注 postinstall 钩子
— 安装包时加 可以跳过所有生命周期脚本。不信任就不执行,「防人之心不可无」
- 别随便输密码
— 任何 CLI 工具要你输系统密码都应该警觉。CLI 弹密码框?先问自己三遍「这合理吗」
- 检查维护者信息
— 一次性邮箱、极少的版本数、零依赖的”安装器”都是红旗。红旗还能再多点吗?「集齐七面召唤神龙」
- 用 做基本检查
— 在安装陌生包之前看看它的元数据
GPT plus 代充 只需 145
JFrog 的安全研究员 Meitar Palas 总结得很到位:
“
“@openclaw-ai/openclawai 将社会工程学、加密载荷投递、广泛数据收集和持久化 RAT 组合进了一个单独的 npm 包中。精心制作的假 CLI 安装器和 Keychain 提示足以骗过谨慎的开发者,一旦获取系统密码,就能解锁 macOS Keychain 解密和浏览器凭据提取——这些原本是被系统级保护拦住的。”
说到底,这个包最可怕的地方不是技术多高超,而是社工做得太到位了。进度条、版本号、Keychain弹窗、FDA教程——每一步都在利用开发者的「惯性信任」。下次 之前,多看一眼,少踩一坑。毕竟在 npm 生态里,「遇事不决先 npm view」才是保命技能。
References
Palas, M. (2026, March 7). Malicious npm package posing as OpenClaw installer deploys RAT, steals macOS credentials. JFrog Blog. https://jfrog.com/blog/malicious-npm-package-posing-as-openclaw-installer/
npm. (2026). @openclaw-ai/openclawai. npm Registry. https://www.npmjs.com/package/@openclaw-ai/openclawai# 一个伪装成 OpenClaw 安装器的恶意 npm 包:部署 RAT 后门,窃取 macOS 全部凭据
说实话,npm 生态的安全问题已经不是什么新鲜事了,但这次发现的这个恶意包,操作之精细、窃取范围之广,还是让人看完直接「我嘞个豆」。这攻击者怕不是把社会工程学的教材从头到尾背了一遍。
安全研究机构 JFrog 发现了一个名为 的恶意 npm 包。这个包伪装成 OpenClaw(一个合法的多渠道 AI 网关工具)的安装器,实际上干的事情是部署一个远程访问木马(RAT),然后把你 macOS 上能偷的东西偷了个底儿掉。
最离谱的是——截至写这篇文章的时候,这个包还在 npm 上,你现在就能下载到。npm 的审核机制?不存在的,纯纯摆设。
我们来实际看看:
几个关键信息,我帮你划重点:
- deps: none
— 零依赖。一个”安装器”零依赖?合理吗?这不就是此地无银三百两嘛
- 维护者邮箱
— 一眼丁真,鉴定为一次性随机邮箱
- 只有 2 个版本
(1.5.14 和 1.5.15),分别在 2026 年 3 月 3 日和 3 月 6 日发布——来得快去得也快
- 解包大小 70.6 kB,7 个文件
— 麻雀虽小,五脏俱全(恶意功能一个不少)
- bin 字段直接指向 →
— 入口就是恶意脚本
对比一下正版的 OpenClaw 包:
GPT plus 代充 只需 145
看到没?正版包名叫 (by steipete),有 27 个依赖、55 个版本、MIT 协议。而恶意包用了 这个带 scope 的名字来碰瓷,ISC 协议,零依赖。完全不是一个东西。这操作就像有人注册了个”苹果官方旗舰总店”来卖山寨机——名字唬人,内容拉胯。
光看报告不过瘾,我直接从 npm 下载了 tarball(不安装,不触发任何脚本),拆开看看里面到底藏了什么。搞安全研究嘛,不亲手拆一下怎么行。
GPT plus 代充 只需 145
注意:没有显式声明 钩子——因为它藏在 文件里(npm 会自动检测 下的生命周期脚本文件)。这波属于是闷声发大财。
看到没?就这么简单粗暴。装完之后再 全局安装一遍自己——这样 字段里的 命令就注册到你的 PATH 了。注意那个 块——即使全局安装失败了,它也不会报错,假装没事继续走。不管你信不信,反正我装完了。
GPT plus 代充 只需 145
这段代码是完全无害的,写得还挺像模像样——有 JSDoc 注释、有 TypeScript 类型定义、README 里还有使用示例。纯粹是为了让你 review 代码时放松警惕。你打开 一看,”嗯,就是个简单的工具库”,然后就不去看 了。这招叫「灯下黑」,属于是把《三十六计》玩明白了。
这才是重头戏。63,567 个字符,全部压缩在一行里,使用了 obfuscator.io 的完整混淆套件:
打开一看——好家伙,跟看天书似的。但天书也有解法。
我写了个安全的反混淆脚本,在 VM 沙箱里只执行字符串解码器部分(不运行恶意逻辑),成功解码了 860 个加密字符串。以下是从中提取到的关键信息:
假安装界面的 UI 字符串
GPT plus 代充 只需 145
代码里有完整的 函数,用 和 字符绘制进度条,还会随机延迟让动画看起来更真实。连你的 Node.js 版本号都是实时读取的,让界面看起来完全可信。不得不说,这UI做得比很多正经开源项目还走心——可惜走的是歪路。属于是「你不说我还以为是正规军」。
AppleScript 社工弹窗
通过 调用 macOS 原生的 AppleScript 弹出对话框。标题写的是 “Authorization Required”,看起来就像系统弹窗。输错密码还会提示重试——跟真的 Keychain 授权一模一样。这不就是钓鱼界的「以假乱真」吗?连重试逻辑都给你安排上了,服务态度比某些正经App还好。
FDA(完整磁盘访问)诱导
GPT plus 代充 只需 145
如果没有 FDA 权限,脚本会弹出一个对话框,手把手教你给 Terminal 开权限:
- 自动打开系统偏好设置的隐私页面()
- 告诉你点哪个开关
- 提醒你重启终端
你说离谱不离谱?攻击者直接给你写了个「保姆级教程」,生怕你不会操作。这波属于甲方给乙方写操作手册——只不过甲方是黑客,乙方是受害者。
加密载荷投递
跨平台支持(也攻击 Windows)
GPT plus 代充 只需 145
没错,这个恶意软件还有 Windows 分支——通过 PowerShell 的 验证 Windows 域凭据。不止是 macOS 用户中招。真·雨露均沾,一个都不放过。
可疑标识符
(复杂考古学家)这个标识符属实有点中二了——不知道攻击者是觉得自己在”考古”别人的数据呢,还是纯粹取名废。
这个恶意包的攻击流程设计得相当”用心”,分好几个阶段,环环相扣。说实话,这完成度放在正经项目里都算高的。
安装后, 触发全局安装。全局安装后 字段生效, 命令指向 。以后在终端敲 ,执行的就是恶意脚本。
一行 就完成了 PATH 劫持。简单,粗暴,但有效。「大道至简」说的就是这个(不是)。
是第一阶段 dropper(投放器),它的表现堪称「演技炸裂」:
- 展示一个逼真的假 CLI 安装界面
— 有真实的进度条动画,实时读取你的 Node.js 版本号
- 弹出一个伪造的 iCloud Keychain 授权提示
— 通过 调用原生 AppleScript 对话框
细思极恐——如果你是个 macOS 开发者,看到安装完某个工具后弹出 Keychain 授权,你大概率会下意识地输入密码。你的系统密码就这样被偷了。 堪称「最强钓鱼UI」,比某些银行App的界面还像官方的。
在你被假界面骗得团团转的同时,脚本在后台悄悄干活:
- 从 C2 服务器 拉取一个加密的第二阶段 JavaScript 载荷
- 使用 进行 AES-256 解密
- 写入临时文件后作为分离的子进程在后台运行
- 通过 删除临时文件 — 清理痕迹
更骚的操作:如果脚本发现没有 Full Disk Access(完整磁盘访问权限),它会通过 弹出一个 AppleScript 对话框,直接打开 ,手把手教你怎么给 Terminal 授权 FDA。
给攻击者授权完整磁盘访问权限意味着什么?意味着你的 Apple Notes、iMessage、Safari 历史记录、Mail 数据全都暴露了。你亲手帮攻击者拆了自家的防盗门。
第二阶段载荷有大约 11,700 行代码,是一个成熟的信息窃取器 + RAT 框架。恶意软件内部自称 “GhostLoader”——中二但确实能打。
它窃取的数据范围简直触目惊心,属于「我全都要」系列:
| 类别 | 具体内容 | | — | — | | macOS Keychain | 本地 + 所有 iCloud Keychain 数据库 | | 浏览器数据 | 所有 Chromium 系浏览器的密码、Cookie、信用卡、自动填充(Chrome、Edge、Brave、Vivaldi、Opera、Yandex、Comet) | | 加密货币 | 桌面钱包应用、浏览器扩展、助记词(seed phrases) | | SSH 密钥 | 下的所有密钥 | | 云服务凭据 | AWS、Azure、GCP、Kubernetes、Docker、GitHub | | AI 配置 | AI Agent 的配置文件(没错,连你的 AI 配置都不放过) | | FDA 保护数据 | Apple Notes、iMessage 历史、Safari 浏览记录、Mail 账户配置、Apple 账户信息 |
看完这个表格只能说:哥们你是来装 npm 包的还是来搬家的?
收集完所有数据后,恶意软件会:
- 将所有数据打包为 压缩包
- 通过三个渠道同时外泄:
- 直接发送到 C2 服务器
- 通过 Telegram Bot API 发送
- 上传到 GoFile.io
三管齐下,确保数据一定能送出去。「鸡蛋不放一个篮子里」——这攻击者风控意识还挺强的(笑哭)。
数据偷完了?不不不,它还没完。恶意软件会进入持久化守护模式,属于「赖着不走」系列:
- 每 3 秒监控一次剪贴板
— 自动匹配 9 种预定义模式:
- 私钥、WIF 密钥、SOL 私钥、RSA 私钥
- BTC 地址、ETH 地址
- AWS Key、OpenAI Key、Strike Key
- 实时监控 iMessage 聊天
- 追踪运行中的进程
你以为它偷完就跑了?太天真了。它在你电脑里蹲着,等你复制粘贴加密货币地址的那一刻——「谢谢,收到」。
RAT 支持从 C2 服务器接收的命令包括:
- 执行任意 Shell 命令
- 在受害者浏览器中打开 URL
- 下载额外载荷
- 上传文件
- 启动/停止 SOCKS5 代理
- 克隆浏览器配置文件并以 headless 模式运行
- 自毁 + 自更新
其中浏览器克隆功能特别危险 — 它启动一个无头 Chromium 实例,使用受害者现有的浏览器配置(包括 Cookie、登录状态、历史记录)。攻击者不需要知道你的密码,就能获得一个已完全认证的浏览器会话。这意味着他可以直接以你的身份操作你登录的所有网站。
这功能直接就是:「我不是在用你的电脑,我就是你。」 赛博夺舍了属于是。
这个案例给我们几个重要教训:
- 永远检查包名
— ≠ ,仔细看清楚你要装的到底是什么。「买家秀和卖家秀的区别」
- 关注 postinstall 钩子
— 安装包时加 可以跳过所有生命周期脚本。不信任就不执行,「防人之心不可无」
- 别随便输密码
— 任何 CLI 工具要你输系统密码都应该警觉。CLI 弹密码框?先问自己三遍「这合理吗」
- 检查维护者信息
— 一次性邮箱、极少的版本数、零依赖的”安装器”都是红旗。红旗还能再多点吗?「集齐七面召唤神龙」
- 用 做基本检查
— 在安装陌生包之前看看它的元数据
GPT plus 代充 只需 145
JFrog 的安全研究员 Meitar Palas 总结得很到位:
“
“@openclaw-ai/openclawai 将社会工程学、加密载荷投递、广泛数据收集和持久化 RAT 组合进了一个单独的 npm 包中。精心制作的假 CLI 安装器和 Keychain 提示足以骗过谨慎的开发者,一旦获取系统密码,就能解锁 macOS Keychain 解密和浏览器凭据提取——这些原本是被系统级保护拦住的。”
说到底,这个包最可怕的地方不是技术多高超,而是社工做得太到位了。进度条、版本号、Keychain弹窗、FDA教程——每一步都在利用开发者的「惯性信任」。下次 之前,多看一眼,少踩一坑。毕竟在 npm 生态里,「遇事不决先 npm view」才是保命技能。
References
npm. (2026). @openclaw-ai/openclawai. npm Registry. https://www.npmjs.com/package/@openclaw-ai/openclawai
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:雪面科技 XueMian
XueMian《OpenClaw 火了,骇客也来蹭热度:伪装安装器偷光你的 macOS》
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/234073.html