恶意npm与VS Code包窃取数据及加密货币资产
60个npm包窃取系统敏感信息
安全研究人员在npm软件包注册表中发现60个恶意组件,这些组件能够收集主机名、IP地址、DNS服务器和用户目录信息,并将其发送至Discord平台控制的终端节点。据Socket安全研究员Kirill Boychenko上周发布的报告显示,这些由三个不同账户发布的软件包均携带安装时脚本,会在npm install命令执行时触发。这些恶意库已被累计下载超过3000次。
"该脚本针对Windows、macOS和Linux系统,包含基本的沙盒逃逸检测功能,使得每台被感染的工作站或持续集成节点都可能成为有价值的侦察数据来源,"这家软件供应链安全公司指出。三个发布账户(每个账户在11天内发布了20个包)分别为:
- bbbb335656
- cdsfdfafd1232436437
- sdsds656565
(上述账户现已被npm平台移除)
高级指纹收集与规避技术
Socket分析表明,恶意代码专门设计用于对安装该包的每台机器进行指纹识别,同时会在检测到亚马逊、谷歌等虚拟化环境时中止执行。收集的主机详情、系统DNS服务器、网卡(NIC)信息及内外网IP地址等数据,最终会传输至Discord的Webhook接口。
"通过收集内外网IP地址、DNS服务器、用户名和项目路径,攻击者能够绘制网络拓扑图,为后续攻击行动识别高价值目标,"Boychenko解释道。
伪装成流行框架的破坏性组件
此次披露还涉及另外8个npm包,它们伪装成React、Vue.js、Vite、Node.js等流行JavaScript框架及开源Quill编辑器的辅助库,安装后却会部署破坏性负载。这些已被下载6200余次的恶意包目前仍可从仓库获取:
- vite-plugin-vue-extend
- quill-image-downloader
- js-hood
- js-bomb
- vue-plugin-bomb
- vite-plugin-bomb
- vite-plugin-bomb-extend
- vite-plugin-react-extend
"这些包伪装成合法插件和工具,暗中携带旨在破坏数据、删除关键文件并使系统崩溃的恶意负载,长期未被发现,"Socket研究员Kush Pandya表示。部分恶意包会在开发者调用时自动执行,递归删除与Vue.js、React和Vite相关的文件,其他则专门破坏基础JavaScript方法或篡改localStorage、sessionStorage和cookies等浏览器存储机制。
其中js-bomb包不仅会删除Vue.js框架文件,还会根据执行时的系统时间触发关机操作。经溯源,这些活动与名为xuxingfeng的威胁行为者有关,该攻击者同时发布了5个功能正常的合法包。"这种同时发布有害和有益软件包的双重策略,营造出合法表象,使恶意包更容易获得信任并被安装,"Pandya补充道。
钓鱼攻击与npm包的组合利用
近期还发现一种新型攻击活动,将传统电子邮件钓鱼与伪装成良性开源库的恶意npm包中的JavaScript代码相结合。Fortra研究员Israel Cerda指出:"建立通信后,该包会加载并交付第二阶段脚本,使用受害者电子邮件地址定制钓鱼链接,将其引导至伪造的Office 365登录页面以窃取凭证。"
攻击始于包含恶意.HTM文件的钓鱼邮件,其中含有托管在jsDelivr上的加密JavaScript代码,关联一个名为citiycar8(现已被移除)的npm包。安装后,包内嵌的JavaScript负载会启动URL重定向链,最终将用户导向伪造的登录页面。
"这次钓鱼攻击展现出高度复杂性,攻击者将AES加密、通过CDN分发的npm包以及多重重定向等技术串联,掩盖其恶意意图,"Cerda强调。
VS Code扩展窃取加密货币凭证
开源仓库的滥用已成为大规模供应链攻击的惯用手法。近期,微软VS Code应用商店中也发现针对Windows平台Solidity开发者的恶意扩展程序,专门窃取加密货币钱包凭证。Datadog安全研究团队将此次活动归因于代号MUT-9332的威胁行为者,涉及的扩展包括:
- solaibot
- among-eth
- blankebesxstnion
"这些扩展伪装成合法工具,将恶意代码隐藏在真实功能中,使用的命令控制域名与Solidity相关,通常不会被标记为恶意,"Datadog研究人员表示。所有三个扩展都采用复杂的感染链,包含多阶段混淆恶意软件,其中一个甚至将负载隐藏在Internet Archive托管的图片文件中。
这些扩展宣称能为Solidity开发者提供语法扫描和漏洞检测功能,实际却会窃取Windows系统上的加密货币钱包凭证。其最终目的是植入基于Chromium的恶意浏览器扩展,劫掠以太坊钱包并泄露至命令控制(C2)服务器。
该恶意软件还能安装独立可执行程序,用于捕获键盘输入并扫描Discord、Chromium浏览器、加密货币钱包及Electron应用的数据目录。MUT-9332还被认定是近期10个恶意VS Code扩展活动的幕后黑手,这些扩展伪装成编程或人工智能工具安装XMRig加密货币挖矿程序。
"此活动展现出MUT-9332在隐藏恶意意图方面令人惊讶的创造力,"Datadog警告称,"这些负载更新表明攻击可能会持续,首批恶意VS Code扩展的检测和下架可能促使MUT-9332在后续行动中改变策略。"
相关文章:

恶意npm与VS Code包窃取数据及加密货币资产
60个npm包窃取系统敏感信息 安全研究人员在npm软件包注册表中发现60个恶意组件,这些组件能够收集主机名、IP地址、DNS服务器和用户目录信息,并将其发送至Discord平台控制的终端节点。据Socket安全研究员Kirill Boychenko上周发布的报告显示,…...
Matlab快速上手五十六:详解符号运算里假设的用法,通过假设可以设置符号变量的取值范围,也可以通过假设设置变量属于集合:整数、正数和实数等
1.符号变量中假设的概念 在符号数学工具箱中,符号变量默认范围是全体复数,也就是说,符号运算是在全体复数域进行的,若需要运算中,不使用全体复数域,可以为变量设定取值范围,这就用到了假设&…...
机器学习笔记【Week1】
一、机器学习简介(Introduction) 什么是机器学习? 定义(Tom Mitchell): “A computer program is said to learn from experience E with respect to some task T and performance measure P, if its per…...

什么是3D全景视角?3D全景有什么魅力?
什么是3D全景视角?3D全景视角的全面解析。 3D全景视角,又称为3D全景技术或3D实景技术,是新兴的富媒体技术,基于静态图像和虚拟现实(VR)技术,通过全方位、无死角地捕捉和展示环境,为…...

【Mini-F5265-OB开发板试用测评】按键控制测试
本文介绍了如何使用按键控制 MCU 引脚的输出电平。 原理 由原理图可知 板载用户按键 K1 和 K2 分别与主控的 PB0 和 PB1 相连。 代码 #define _MAIN_C_#include "platform.h" #include "gpio_key_input.h" #include "main.h"int main(void) …...
Debian重装系统后
安装配置java环境 手动安装 下载openJDK:openJDK 设置替代项 sudo update-alternatives --install /usr/bin/java java /opt/jdk-21.0.2/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-21.0.2/bin/javac 1 sudo update-alternat…...

每日Prompt:古花卷
提示词 主体对象 一本展开的古画卷 古画卷内呈现的内容 一片微型春秋鲁国,有古代马车,孔子乘坐周游列国,颜回、子路、子贡、曾参紧随其后 古画卷的外观状态 表面已经开裂和风化,呈现出年代感和历史感 与文字描述的首句一致&…...
[学习]C语言指针函数与函数指针详解(代码示例)
C语言指针函数与函数指针详解 文章目录 C语言指针函数与函数指针详解一、引言二、指针函数(函数返回指针)定义与语法典型应用场景注意事项 三、函数指针(指向函数的指针)定义与声明初始化与调用赋值方式调用语法 高级应用回调函数…...

夏季用电高峰如何防患于未“燃”?电力测温技术守护城市生命线
随着夏季来临用电负荷激增,电力系统面临严峻的高温考验,电力测温技术的重要性愈发凸显,电力安全是城市生命线工程的核心环节,电力测温已从"可选功能"升级为"必要的基础安全设施"。通过实时感知、智能分析和快…...
浙大版《Python 程序设计》题目集6-3,6-4,6-5,6-6列表或元组的数字元素求和及其变式(递归解法)
目录 6-3 输入格式: 输出格式: 输入样例: 输出样例: 6-4 输入格式: 输出格式: 输入样例: 输出样例: 6-5 输入格式: 输出格式: 输入样例: 输出样例: 6-6 输入格式: 输出格式: 输入样例: 输出样例: 6-3 第6章-3 列表或元组的数字元素求和 分数 20 全屏浏览 切换布局 作者 陈春晖 …...
Leetcode 3563. Lexicographically Smallest String After Adjacent Removals
Leetcode 3563. Lexicographically Smallest String After Adjacent Removals 1. 解题思路2. 代码实现 题目链接:3563. Lexicographically Smallest String After Adjacent Removals 1. 解题思路 这次的最后一题同样没有自力搞定,简直了…… 这道题还…...

【创造型模式】抽象工厂方法模式
文章目录 抽象工厂方法模式产品族与产品等级结构抽象工厂方法模式的角色和职责抽象工厂方法模式的实现抽象工厂方法模式的优缺点适用场景 抽象工厂方法模式 工厂方法模式引入了“工厂等级结构”,解决了简单工厂方法过分依赖单一工厂的问题。但是工厂方法模式存在的一…...

一台手机怎样实现多IP上网?方法有多种
在数字时代,多IP上网已成为许多手机用户的刚需。本文将详细介绍如何通过不同技术手段实现手机多IP上网,帮助读者根据实际需求选择适合的解决方案。 一、为什么一台手机要实现多IP上网 手机实现多IP上网的典型场景包括: ①防止同一IP操作多个…...
【FFmpeg+SDL】播放音频时,声音正常但是有杂音问题(已解决)
下面这个函数是SDL音频的回调函数(修改后的) void fill_audio(void *udata,Uint8 *stream,int len) {static int cc 0;cc;qDebug()<<QString::fromLocal8Bit("想要填充:%1字节").arg(len)<<cc;AudioOutput* is static_cast<AudioOutput*>(udat…...

Linux 527 重定向 2>1 rsync定时同步(未完)
rsync定时同步 配环境 关闭防火墙、selinux systemctl stop firewalld systemctl disable firewalld setenforce0 vim /etc/SELINUX/config SELINUXdisable515 设置主机名 systemctl set-hostname code systemctl set-hostname backup 配静态ip rsync 需要稳定的路由表和端…...

3DVR拍摄指南:从理论到实践
3DVR拍摄指南:从理论到实践 3D虚拟现实(Virtual Reality,简称VR)作为近年来迅速崛起的高新技术,通过电脑模拟产生一个三维空间的虚拟世界,为使用者提供视觉、听觉乃至触觉的全方位感官模拟,使用户仿佛身临…...
OSI模型中的网络协议
一、电子邮件协议:从SMTP到MIME的扩展 电子邮件系统的核心协议包括SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol)和IMAP(Internet Message Access Protocol),但…...
【C/C++】线程局部存储:原理与应用详解
文章目录 1 基础概念1.1 定义1.2 初始化规则1.3 全局TLS vs 局部静态TLS 2 内存布局2.1 实现机制2.2 典型内存结构2.3 性能特点 3 使用场景/用途3.1 场景3.2 用途 4 注意事项5 对比其他技术6 示例代码7 建议7.1 调试7.2 优化 8 学习资料9 总结 在 C 多线程编程中,线…...
分块查找详解
1、原理 分块查找(Block Search)是一种结合顺序查找与索引查找的算法,适用于数据分块存储且块内无序但块间有序的场景。它通过“分块-建立索引-逐层定位”提高查找效率。 分块查找的核心思想 数据分块 将数据集划分为若干块(子…...

leetcode hot100刷题日记——21.不同路径
和20题一样的思路link 题解: class Solution { public:int dfs(int i,int j,vector<vector<int>>&memo){//超过了边界,return 0if(i<0||j<0){return 0;}//从(0,0)到(0,0…...
Elasticsearch 如何实现跨数据中心的数据同步?
实战场景: 双数据中心容灾,要求RPO<5分钟,RTO<30分钟 RPO(Recovery Point Objective): RPO指的是灾难发生后,系统能够恢复到的数据更新点的时间。简单来说,它衡量的是数据…...
C语言学习笔记三 --- V
文章目录 程序入门设计 --- C 语言第二周 核心语法📝2.1 C 语言笔记 | 注释的使用(让代码会“说话”)💡 **注释的作用**🔍 **注释的两种写法**⚠️ **注释的注意事项**🔧 **注释的实用场景**📌 **本节总结**:📝 2.2 C 语言笔记 | 关键字(保留字)深度解析💡 …...

通过JS模板引擎实现动态模块组件(Vite+JS+Handlebars)
1. 引言 在上一篇文章《实现一个前端动态模块组件(Vite原生JS)》中,笔者通过原生的JavaScript实现了一个动态的模块组件。但是这个实现并不完善,最大的问题就是功能逻辑并没有完全分开。比如模块的HTML: <div class"category-secti…...
梯度消失和梯度爆炸的原因及解决办法
梯度消失和梯度爆炸的原因是什么 问题分析 梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)本质上都是在深层神经网络中反向传播过程中,梯度在多层传播时逐渐缩小或放大的问题,导致模型难以…...
欧拉定理:若 gcd(a,n)=1,则 a^φ(n)≡1(mod n)。
【欧拉定理简介】 欧拉定理:若 gcd(a,n)1,则 a^φ(n)≡1(mod n)。 (1)例如,a3,n10,gcd(3,10)1,φ(10)4,则 a^φ(n)3^481,81 mod 101,欧拉定理成立…...

fvm install 下载超时 过慢 fvm常用命令、flutter常用命令
Git 配置问题 确保 Git 使用的是 HTTPS,而不是 SSH。如果你有 .gitconfig,确保没有配置奇怪的代理: git config --global --get http.proxy git config --global --get https.proxy如果有代理设置且不需要,取消代理:…...

Python正则表达式:30秒精通文本处理
一、概述 1. 含义 正则表达式是一种记录文本规则的代码工具,用于描述字符串的结构和模式。它广泛应用于字符串的匹配、查找、替换、提取等操作。 2. 特点 语法复杂:符号多、规则灵活,可读性较差。功能强大:可以精确控制字符串…...

Introduction to SQL
目录 SQL特点 编辑 Select-From-Where Statements Meaning of Single-Relation Query Operational Semantics * In SELECT clauses Complex Conditions in WHERE Clause PATTERNS NULL Values Three-Valued Logic Multirelation Queries Aggregations NULL’s Ig…...

计算机视觉---YOLOv3
YOLOv3讲解 一、YOLOv3 核心架构与创新 YOLOv3(2018年发布)在YOLOv2基础上进行了全面升级,通过多尺度预测、更强大的骨干网络和优化的分类损失函数,显著提升了检测精度,尤其是小目标检测能力,同时保持了实…...

#RabbitMQ# 消息队列进阶
目录 消息可靠性 一 生产者的可靠性 1 生产者的重连 2 生产者的确认 (1 Confirm* (2 Return 二 MQ的可靠性 1 数据持久化 2 Lazy Queue* 三 消费者的可靠性 1 消费者确认机制 2 消费失败处理 3 业务幂等性 四 延迟消息 消息可靠性 在消息队列中,可靠性…...