供应链投毒预警 | 恶意Py组件tohoku-tus-iot-automation开展窃密木马投毒攻击

概述

上周(2024年3月6号),悬镜供应链安全情报中心在Pypi官方仓库(https://pypi.org/)中捕获1起新的Py包投毒事件,Python组件tohoku-tus-iot-automation 从3月6号开始连续发布6个不同版本恶意包,其中多个版本恶意代码使用PyArmor进行加密混淆保护,这些恶意包主要针对Windows平台的Python开发者,除了会窃取系统基础信息和主流浏览器(Edge、Chrome)用户密码数据,还会远程下载木马程序植入到开发者系统中盗取系统密码。

Python恶意组件

截至目前,恶意组件tohoku-tus-iot-automation在Pypi官方仓库上已被下载461次。

tohoku-tus-iot-automation恶意组件下载量

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

图片

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

pip3 Install tohoku-tus-iot-automation -i https://pypi.tuna.tsinghua.edu.cn/simple

图片

投毒分析

当Python开发者使用pip install从Pypi官方仓库或下游镜像源直接安装或者依赖引用恶意组件包时,将自动触发执行组件包setup.py中的恶意攻击代码。setup.py被PyArmor加密混淆保护。

图片

原始的恶意代码如下所示:

图片

恶意代码主要包括4大攻击步骤:

  • 收集系统信息

  • 收集浏览器用户密码

  • 远程下载执行窃密木马

  • 数据盗取外传

Part 1收集系统信息

主要收集操作系统版本、处理器、网卡及IP数据、主机名、系统用户列表、系统进程列表等敏感信息。系统信息收集功能

Part2  收集浏览器用户密码

从存储浏览器(Edge、Chrome)用户数据的SQLite3数据库文件中提取用户密码。

浏览器用户密码收集功能

Part3 远程下载执行窃密木马

恶意组件将从远程下载多个具有窃密功能的木马后门程序植入到受害者系统中,用于收集Discord账户数据以及Windows系统密码。

盗取Discord数据的木马 程序被伪装成png图片隐藏在代码托管平台SourceForge上。

Download iotautomatelogo.png (iot-automate)

Discord窃密木马

盗取Windows系统密码主要由3个木马后门程序(k7841286.exe、k7841286.dll和readings.exe)负责。

远程下载执行窃密木马后门

通过程序逆向可知,k7841286.exe负责加载k7841286.dll,k7841286.dll负责启动真正具备系统密码盗取能力的木马程序readings.exe。

k7841286.dll启动窃密木马readings.exe

readings.exe被多款杀毒引擎识别为gsecdump窃密木马,主要功能是盗取Windows系统密码。Windows gsecdump窃密密码

Part4  数据盗取外传

在收集到系统信息、浏览器密码、Discord账户数据、Windows系统密码等敏感信息后,投毒者会将所有数据打包外传到Webhook接口。

Webhook数据外传功能

Part5 IoC数据

此次投毒组件包涉及的恶意文件和IoC数据如下所示:

图片

排查方式

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

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

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

悬镜供应链安全情报中心是国内首个数字供应链安全情报研究中心,依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,对全球数字供应链安全漏洞、投毒事件、组件风险等进行实时动态监测与溯源分析,为用户智能精准预警“与我有关”的数字供应链安全情报。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】常用命令 docker search

文章目录 什么是docker search命令基本用法实际示例在Docker Hub搜索名为nginx的镜像搜索包含Python的镜像 常用选项--filter:过滤搜索结果--limit:限制搜索结果数量 总结 在Docker中, docker search命令是用于从Docker Hub或其他镜像仓库搜…

【Python 48小时速成 12】类和对象

在 Python 中,类是一种用于创建对象的蓝图或模板,而对象是根据类创建的实例。类定义了对象的属性和方法。下面是一个简单的类和对象的示例代码: # 定义一个名为 Person 的类 class Person:# __init__ 方法用于初始化对象的属性def __init__(…

sentinel系统负载自适应流控

系统负载自适应流控 规则配置 规则创建 public class SystemRule extends AbstractRule {private double highestSystemLoad -1;private double highestCpuUsage -1;private double qps -1;private long avgRt -1;private long maxThread -1; }SystemRule类包含了以下几…

数据机构-2(顺序表)

线性表 概念 顺序表 示例&#xff1a;创建一个存储学生信息的顺序表 表头&#xff08;Tlen总长度&#xff0c; Clen当前长度&#xff09; 函数 #include <seqlist.c> #include <stdio.h> #include <stdlib.h> #include "seqlist.h" #include &…

Arcade绘制各种各样的文本

""" Example showing how to draw text to the screen.If Python and Arcade are installed, this example can be run from the command line with: python -m arcade.examples.drawing_text """ import arcade# 设置屏幕参数 SCREEN_WIDTH 12…

C/C++ 设置Socket的IP_TOS选项

IP TOS选项是指示IP报文转发的优先级&#xff0c;QOS控制的一种&#xff0c;常规的IP协议TOS都为0&#xff0c;就是普通报文。 设置&#xff1a; IPV4/TOS设置&#xff08;Socket&#xff09;&#xff0c;IPTOS_LOWDELAY 表示FLASH优先级&#xff08;一般用在游戏&#xff0c;…

[GYCTF2020]Ezsqli ---不会编程的崽

又是sql新题型哦。继续收集&#xff01; 既然知道是sql注入就不墨迹了。初步判断盲注&#xff0c;判断盲注的方发不用说了吧&#xff0c;然后fuzz一下&#xff0c;information被过滤了。再次可以判断为盲注与无列名注入。 管他有列名还是无列名&#xff0c;先找到表。由于info…

Uniapp 的 uni.request传参后端

以下是使用Uniapp的交互数据的两种方式 后端使用Parameter接收数据 后端使用RequestBody接收Json格式数据 后端&#xff1a; CrossOrigin RestController RequestMapping("/user") public class UserController {GetMapping("/login")public String lo…

3D 动画领域的创新突破:仅需文字提示即可创建 3D 动画

一、产品简介 这款产品能够通过简单的文字提示生成高品质的 3D 动画,无需进行视频录制或动作捕捉,为用户提供了极大的便利。 二、产品特色 采用先进的生成式 AI 技术,实现文本到动画的快速转换。支持多种常见的动画输出格式,如.FBX、.GLB 等,满足不同用户的需求。提供丰富…

LINQ常用扩展方法、委托、Lambda、yield

LINQ让数据处理变得简单 文章目录 Where方法Count()方法Any()方法获取一条数据(是否带参数的两种写法)SingleSingleOrDefaultFirstFirstOrDefault 排序多规则排序 限制结果集&#xff0c;获取部分数据聚合函数分组投影匿名类型集合转换查询语法委托Lambda表达式LINQyield retur…

管理的常识--决策如何有效计划控制

决策的目的是为了执行 决策决定你的选择 决策是为了能够执行&#xff0c;而不是追求正确性&#xff1b;或者说决策正确性指的不是决策本身&#xff0c;而是决策得到执行的结果 决策是要解决问题而不是简单做出选择&#xff0c;如果简单做出选择&#xff0c;只是完成了决策的过…

kafka学习笔记01(小滴课堂)

介绍分布式流处理平台kafka快速认知 介绍分布式流处理平台kafka核心概念解释 急速部署-Kafka相关环境准备和安装 Linux环境下Zookeeper和Kafka安装启动 解压两个软件的压缩包&#xff1a; tar -zxvf 启动zk: 去log目录进行查看&#xff1a; 查看一下2181端口是否被占用: 安装…

Python实战:Python虚拟环境(venv)的创建与使用

一、引言 在Python开发中&#xff0c;项目之间的依赖管理是一个常见问题。不同的项目可能需要不同的Python版本或依赖库。为了解决这个问题&#xff0c;我们可以使用Python虚拟环境&#xff08;venv&#xff09;。虚拟环境是一种隔离的Python环境&#xff0c;它允许我们为每个…

十九、网络编程

目录 一、什么是网络编程二、网络编程三要素2.1 IP2.2 InetAddress的使用2.3 端口号2.4 协议 三、UDP通信程序3.1 发送数据3.2 接收数据3.3 练习 四、UDP的三种通信方式五、TCP的通信程序六、三次握手和四次挥手七、练习7.1 TCP通信练习1——多发多收7.2 TCP通信练习2——接收和…

80386 ATT汇编语法

文章目录 gcc的预处理&#xff0c;不进行编译、汇编或链接预处理编译汇编 8.8.2 AT&T语法与英特尔语法8.8.3操作码命名8.8.4寄存器命名8.8.5操作码前缀8.8.6内存引用8.8.7跳转指令的处理8.8.8浮点8.8.9写入16位代码8.8.10笔记 gcc的预处理&#xff0c;不进行编译、汇编或链…

Java疫苗接种管理系统

本系统lw为2024-3-21本人原创&#xff0c;查chong13% 1.3W字&#xff0c;可以直接上交&#xff0c;这并不是乱七八糟的技术文档和项目文档。 4.2 功能结构设计 可视化的疫苗接种管理系统功能结构设计主要包括以下几个模块&#xff1a; 登录注册模块&#xff1a;这个模块负责…

浅浅迈入C++门槛

从今天起&#xff0c;我要开始hello&#xff0c;world。 往后更要做到&#xff0c;拳打数据结构&#xff0c;脚踢Linux。 这就是江湖人的风范。 拼搏百天&#xff0c;我要学希普拉斯普拉斯。 C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许…

vmware中ubuntu虚拟机桥接模式和xshell连接

首先&#xff0c;把虚拟机的虚拟机设置那里改成桥接模式&#xff0c;然后电脑本地用的什么网&#xff0c;就拿对应的网卡在vmware的虚拟网络编辑器那里去改第一个成桥接&#xff0c;添加这个网卡去虚拟 之后去ubuntu右上角把ip设置成手动&#xff0c; ip前三个表示网段的和本…

echarts实践总结(常用二):折线图(特点:渐变、面积区域)

目录 第一章 echarts基本使用 第二章 echarts实践——折线图 效果展示 第一章 echarts基本使用 Echarts常用配置项(详细入门)_echarts配置项手册-CSDN博客 柱状图案例&#xff1a; echarts实践总结(常用一)&#xff1a;柱状图&#xff08;特点&#xff1a;渐变色、点击缩放、…

vue3父子通信、跨层通信

子传父 通过 ref标识 获取真实的 dom对象或者组件实例对象 父组件获取子组件内部属性和方法 顶层组件向任意的底层组件传递数据和方法&#xff0c;实现跨层组件通信 非响应式数据父修改不了子的内容 子组件调用父组件方法