目录
概述
[email protected] 于 2026-05-01 通过 loltestpad 账户发布至 npm,该账户同期还发布了 ixpresso-core(完整 Windows 远程访问木马)、godsplan 和 eyevox(均为 4 月发布的工具),npm 在 48 小时内将这三个包移除。exiouss 是 godsplan 的重建版本,使用新名称发布,但描述和内部项目名称保持不变。它新增了一个 4 月版本所没有的功能:bin/chrome_cookies.ps1,一个完整的 PowerShell 脚本,用于解密并窃取 Chrome、Edge 和 Brave 中 openai.com 和 chatgpt.com 的会话 Cookie。该脚本尚未接入主流程,但已存在且可正常运行。
影响范围:
- 该包捆绑了完整的 ChatGPT 和 OpenAI 会话 Cookie 窃取工具,针对 Chrome、Edge 和 Brave,通过 Windows DPAPI 和 AES-256-GCM 解密实现
- 攻击者针对的是安装此工具来作弊监考考试的学生群体,这部分用户很可能持有有效的 ChatGPT Plus 订阅
loltestpad账户在两次活动中共发布四个包,从 Windows RAT 迭代到带有休眠凭证窃取功能的作弊工具
妥协指标(IoC):
| 指标 | 值 |
|---|---|
| 包名 | [email protected] |
| npm 维护者 | loltestpad |
| 维护者邮箱 | [email protected] |
| 隐蔽进程 | SearchApp.exe |
| 持久化路径 | %LOCALAPPDATA%\Microsoft\Windows\Diagnostics\ |
| 启动日志 | %LOCALAPPDATA%\Microsoft\Windows\Diagnostics\boot.log |
| 终止开关文件 | %LOCALAPPDATA%\Microsoft\Windows\Diagnostics\.kill_watchdog |
uia_extract.exe SHA256 | e2fda5aa8397799669f29258f69e803cf05d322c1d93269eef6754ca024c3865 |
uia_extract.exe VirusTotal | 4/71 — Bkav、CrowdStrike、SecureAge、SentinelOne(均为基于机器学习) |
| Groq API 密钥 | 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(另有 3 个在 config.json 中) |
loltestpad 活动
loltestpad 账户于 2026-04-14 出现,使用 opemails.com(一个一次性邮箱服务)的临时邮箱。48 小时内,它发布了三个包:
| 包名 | 发布时间 | 实际功能 | 伪装描述 |
|---|---|---|---|
ixpresso-core | 2026-04-14 | Windows RAT(Veltrix) | "Personal AI System Agent — Control your device via WhatsApp" |
godsplan | 2026-04-14 | AI 考试作弊工具 | "High-performance DOM utility and diagnostic bridge" |
eyevox | 2026-04-15 | 轻量级考试作弊变体 | "Professional Stealth AI Assistant with Multi-Snapshot Reasoning" |
npm 在 48 小时内删除了全部三个包。SafeDep 对 ixpresso-core 的分析另有专题——它部署了完整的 Windows RAT,包含浏览器凭证收集、Discord Token 盗窃、Telegram 会话窃取,以及通过 Cloudflare 隧道实现的远程桌面控制。
exiouss 于 2026-05-01 出现在 npm 上,距离 4 月被删除已过去 16 天。其伪装描述与 godsplan 一字不差:"High-performance DOM utility and diagnostic bridge for modern web applications." main.js 将项目命名为 Project Phantom-Batch,与 4 月版本完全相同。内部版本号跳至 v12.0,表明在删除后仍继续开发。
$ curl -s "https://registry.npmjs.org/exiouss" | jq '{maintainers, versions: (.versions | keys)}'
{
"maintainers": [{ "name": "loltestpad", "email": "[email protected]" }],
"versions": ["1.0.4"]
}在注册表的 time 对象中,还可以看到更早的六个版本(1.0.0 到 1.0.10)。这六个版本在本次分析前均已被移除,仅留下 1.0.4 处于活跃状态。
两次活动遵循相同的模式:临时账户、一次性邮箱、伪造的开发者工具描述、Windows 专用有效载荷、以 npm 作为分发渠道。攻击者将 npm 作为托管和信用背书层,而非投毒载体。"直接 npm install" 比 Discord 下载链接看起来合法得多。
捆绑的凭证窃取工具
bin/chrome_cookies.ps1 是本版本新增的功能。4 月的包中并未包含此功能。
该脚本实现了 Chrome DPAPI + AES-256-GCM Cookie 解密。它从各浏览器的 Local State 文件中读取加密的主密钥,使用 ProtectedData.Unprotect 对其进行解密,然后遍历 Chrome、Edge 和 Brave 中 openai.com、chatgpt.com、auth.openai.com 和 auth0.openai.com 的 Cookie,覆盖多个浏览器配置文件。
$Domains = @(".openai.com", ".chatgpt.com", "chatgpt.com", "openai.com",
"chat.openai.com", "auth0.openai.com", "auth.openai.com")
...
$encKeyBytes = $encKeyBytes[5..($encKeyBytes.Length - 1)]
$decryptedKey = [Security.Cryptography.ProtectedData]::Unprotect(
$encKeyBytes, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser
)main.js 暂未调用此脚本。它打包在 tarball 中供攻击者单独运行,或在后续版本中接入。有效的 auth.openai.com 会话 Cookie 可在无需密码的情况下获得完整的 ChatGPT 账户访问权限——攻击者可以更改邮箱、将原所有者锁在门外,并继承其订阅。
受害者群体使这一切变得有利可图。运行 Windows 考试作弊工具的学生拥有 ChatGPT 账户,其中许多还持有用于学业的高级订阅。考试作弊工具帮助攻击者进入这些机器,而 Cookie 窃取工具则将这种访问转化为实际收益。
学生如何被感染
运行 exiouss 时会部署一个持久的 Electron 覆盖层:一个透明的始终置顶窗口,通过 WDA_EXCLUDEFROMCAPTURE 对监考截图保持不可见,并从 Alt-Tab 和任务栏中隐藏。学生使用 Windows UI Automation 文本提取或 GDI 截图来捕获考试题目,通过 config.json 中的四个硬编码 API 密钥将其发送至 Groq 的 LLM API,然后将答案渲染到覆盖层中。该包通过检测 Safe Exam Browser 的隔离安全桌面并通过 CreateProcessW 在其上生成子 Electron 进程来绕过它。
uia_extract.exe 二进制文件在 VirusTotal 上的检测率为 4/71,均为机器学习检测。Windows Defender 显示为干净。大多数考试机器运行的杀毒软件无法检测到它。这个作弊工具足够好用,能够在学生群体中传播,这使得凭证窃取工具被部署到越来越多的机器上,而无需额外的分发成本。
结论
loltestpad 攻击者在 4 月被删除后 16 天重新出现,使用相同的账户、相同的描述和相同的代码库。新增的是 chrome_cookies.ps1:一个 ChatGPT 会话窃取工具,已存在且可正常运行,但尚未激活。
威胁模型是社会工程学,而非被污染的 lockfile。学生自愿安装此工具。Cookie 窃取工具处于休眠状态,直到攻击者激活它——无论是接入未来版本,还是通过在终端关闭后仍保持驻留的看门狗进程触发。
任何运行过 exiouss 的系统都应被视为可能已被入侵。检查 %LOCALAPPDATA%\Microsoft\Windows\Diagnostics\ 中的 SearchApp.exe 和 boot.log。轮换存储在 Chrome、Edge 和 Brave 中的凭证。撤销存储在浏览器中的任何 OpenAI API 密钥。
使用 vet 对 lockfile 进行扫描,以在安装前标记来自最近创建账户的包。
相关阅读:
-
ixpresso-core:伪装成 WhatsApp 代理的 Windows RAT — 同属
loltestpad活动的 RAT -
forge-jsx npm 包:专为多平台 RAT 打造 — 另一种基于 Electron 的 Windows 恶意软件模式
-
恶意 dom-utils-lite npm:通过 Supabase 实现 SSH 后门 — 伪 DOM 工具,真后门
-
恶意软件
-
npm
-
供应链
-
凭证窃取
-
活动分析
SafeDep 博客最新动态
关注我们,获取开源安全与工程的最新更新和洞察