ESET Research 发现一群恶意 Python 项目分布在 的PyPI,官方 Python 包存储库。该威胁同时针对 Windows 和 Linux 系统,并且通常会提供自定义后门。在某些情况下,最终的有效负载是臭名昭著的变体 W4SP 窃取者,或一个简单的剪贴板监视器来窃取加密货币,或两者兼而有之。 2023年XNUMX月,我们 报道 在我们在 PyPI 上发现的另一个软件包集群上,该软件包提供密码和加密货币窃取恶意软件,但这两个集群似乎是不同的活动。
这篇博文的要点:
- ESET Research 在 Python 编程语言的官方软件存储库 PyPI 中发现了 116 个恶意软件包,这些软件包已上传到 53 个项目中。
- 受害者已下载这些软件包超过 10,000 次。
- 自2023年80月起,下载量每天大约XNUMX次。
- 该恶意软件提供了一个能够远程执行命令、渗透和截取屏幕截图的后门。
- 后门组件在 Windows(Python)和 Linux(Go)中实现。
- 在某些情况下,会提供 W4SP Stealer 或窃取加密货币的剪贴板监视器,或两者兼而有之。
PyPI 在 Python 程序员中很受欢迎,用于共享和下载代码。由于任何人都可以为存储库做出贡献,因此恶意软件(有时冒充合法的流行代码库)可能会出现在那里。我们从 116 个包含恶意软件的项目中发现了 53 个文件(源发行版和轮子)。一些软件包名称确实与其他合法软件包相似,但我们相信潜在受害者安装它们的主要方式不是通过拼写错误,而是通过社会工程,受害者通过运行 pip install {包名} 无论出于何种原因都能够使用“有趣”的包。
在过去的一年里,受害者下载这些文件超过 10,000 次;参见图 1。
感染 PyPI
PyPI 包可以采用两种形式:源包(包含所有项目源代码并在安装时构建)和预构建包(称为 车轮),其中可能包含针对特定操作系统或 Python 版本的编译模块。有趣的是,在某些情况下,源代码发行版中的 Python 代码与构建的发行版不同。前者是干净的,而后者则包含恶意代码。 Python 的包管理器, 点子,在可用时更喜欢轮子而不是源发行版。结果,除非另有明确要求,否则恶意软件就会被安装。
我们观察到该活动背后的操作者使用三种技术将恶意代码捆绑到 Python 包中。
恶意test.py模块
第一种技术是在包内放置一个带有轻微混淆代码的“测试”模块。图 2 显示了 测试文件 具有名为的函数的文件 格雷比 被定义然后被调用。请注意,该函数同时处理 Windows 和 Linux 系统。
该测试模块在包的主模块的源代码中间导入(__init__.py),以便每当导入包时恶意代码都会运行。图 3 显示了一个伪装成屏幕截图程序并导入恶意代码的模块 测试文件.
setup.py 中的 PowerShell
第二种技术是将 PowerShell 代码嵌入到 设置文件 文件,通常由包管理器自动运行,例如 点子 帮助安装Python项目。
图 4 显示了下载并执行下一阶段的 PowerShell 脚本。
此 PowerShell 脚本下载 传输[.]sh/eyRyPT/Updater.zip 进入临时目录 update.zip的。然后该脚本将 ZIP 文件解压缩为 C:programdata文件 并将其从临时目录中删除。接下来,脚本运行 点子 程序来安装依赖项。最后,它运行Python代码 C:ProgramDataUpdaterserver.pyw.
该技术仅适用于 Windows,无法感染 Linux 系统。
在图 4 的包元数据中,您可能已经注意到该包的作者是 比利山羊356。有大量报告将该昵称与恶意活动联系起来,包括 文章来自门,他们揭示了比利与 W4SP Stealer 的潜在联系。
只是恶意软件...
在第三种技术中,操作员不努力在包中包含合法代码,因此仅以轻微混淆的形式存在恶意代码。图5显示了两段针对Windows的恶意代码被写入临时文件,然后运行 执行程序,它用来代替 python.exe 以便代码在不打开控制台窗口的情况下执行。
接下来的阶段是从 Dropbox 或下载的 Python 包、脚本或二进制文件 transfer.sh.
坚持
在 Windows 上,持久性大部分时间是通过 VBScript 编码 (VBE) 文件,这是一个编码的 VBScript 文件,写入 %APPDATA%/Pythonenv/pythenenv.vbe。图6所示 CMD.EXE 隐藏目录 %APPDATA%/Pythonenv,正在运行 pythenenv.vbe,然后安排该任务下每五分钟运行一次VBE文件 MicrosoftWinRaRU实用程序TaskB.
在 Linux 上,持久性是通过放置恶意 桌面入口, 伴侣用户共享.desktop在 〜/ .config /自动启动/ 目录,如图7所示。文件位于 自动开启 目录在每次系统启动时执行。桌面条目使用的名称 MATE 子项目 它的文件名,但这只是为了减少怀疑,因为它与桌面环境无关。
图7还显示了模块下载 dl.dropbox[.]com/s/u3yn2g7rewly4nc/proclean 至 〜/.config/.kde/.kdepath。这可能是为了模拟配置目录 KDE 适用于 Linux 的 Plasma GUI。
启动 伴侣用户共享.desktop 文件依次执行下载的 .kdepath 文件,这是包含后门组件的Linux可执行文件。
最终有效载荷
通常,最终的有效负载是一个自定义后门,允许远程命令执行、文件泄露,有时还包括截取屏幕截图的功能。在 Windows 上,后门是用 Python 实现的。
图 8 显示后门创建 TCP 套接字连接 blazywound.ignorelist[.]com 在端口 6001 上。将主机名、MAC 地址和用户名发送到 C&C 服务器后,后门将直接处理某些命令或在单独的进程中运行任何其他命令,并将命令输出和任何错误信息发送回服务器。
在Linux上,后门是用Go实现的;参见图9。
在某些情况下,有效负载不是后门,而是臭名昭著的变体 W4SP 窃取者,或窃取加密货币的简单剪贴板监视器,或两者兼而有之。图 10 显示了针对比特币、以太坊、门罗币和莱特币加密货币的剪贴板监视器。该恶意软件使用合法的 pyperclip 用于检查剪贴板内容以查找钱包地址的包。如果发现,恶意软件会将攻击者控制的地址复制到剪贴板,希望受害者在未来的加密货币交易中粘贴该地址。
ESET 产品将恶意 Python 包检测为 Python/Agent 和 Python/TrojanDownloader 的变体,将后门检测为 Python/Agent.AOY 或 Linux/Spy.Agent.BB。
在本研究进行时,大多数软件包已被 PyPI 删除。 ESET 与 PyPI 进行沟通,对剩余的恶意软件包采取行动,所有已知的恶意软件包现已离线。 116 个软件包的完整列表可以在我们的 GitHub存储库.
值得注意的是,PyPI 项目存储库中的恶意软件并不是 PyPI 本身的安全问题。事实上,运行 PyPI 的软件是 最近审核的 由一家外部公司评估,PyPl“符合广泛接受的最佳实践”。
结论
PyPI 继续被网络攻击者滥用来危害 Python 程序员的设备。该活动展示了用于将恶意软件包含在 Python 包中的各种技术。 Python 开发人员应该彻底审查他们下载的代码,特别是检查这些技术, before 将其安装在他们的系统上。除了继续滥用开源 W4SP Stealer 之外,运营商还部署了一个简单但有效的后门。我们预计 PyPI 的这种滥用将会继续,并建议在从任何公共软件存储库安装代码时要小心。
如果对我们在 WeLiveSecurity 上发表的研究有任何疑问,请通过以下方式联系我们 威胁intel@eset.com.
ESET Research 提供私人 APT 情报报告和数据源。 有关此服务的任何查询,请访问 ESET 威胁情报 页面上发布服务提醒。
国际石油公司
档
SHA-1 |
文件名 |
检测 |
课程描述 |
439A5F553E4EE15EDCA1CFB77B96B02C77C5C388 |
缓存.py |
Python/Agent.AGL |
Linux后门下载器.. |
B94E493579CC1B7864C70FAFB43E15D2ED14A16B |
coloramma-0.5.4-py3-none-any.whl |
Python/Agent.AGU |
带有 Linux 后门安装程序的软件包。 |
AE3072A72F8C54596DCBCDE9CFE74A4146A4EF52 |
coloramma-4.5-py3-none-any.zip |
Python/Agent.AOY |
带有Windows后门的软件包。 |
70C271F79837B8CC42BD456A22EC51D1261ED0CA |
垃圾.py |
Python/Agent.AGM |
Windows 持久性安装程序。 |
B0C8D6BEEE80813C8181F3038E42ADACC3848E68 |
普清洁 |
Linux/Spy.Agent.BB |
Linux后门。 |
07204BA8D39B20F5FCDB9C0242B112FADFFA1BB4 |
省 |
Python/Agent.AGL |
Linux后门下载器。 |
EF59C159D3FD668C3963E5ADE3C726B8771E6F54 |
TMP |
Linux/Spy.Agent.BB |
Linux后门。 |
有关恶意软件包的完整列表,请参阅我们的 GitHub 恶意软件-ioc 存储库.
商业网络
域名 |
IP地址 |
第一次见到 |
课程描述 |
blazywound.ignorelist[.]com |
204.152.203[.]78 |
2022-11-21 |
后门组件的 C&C 服务器。 |
MITRE ATT&CK 技术
该表是使用 14版 MITRE ATT&CK 框架。
战术 |
ID |
名字 |
课程描述 |
初始访问 |
供应链妥协:损害软件依赖性和开发工具 |
恶意软件使用 Python 的 PyPl 包管理服务进行分发。 |
|
坚持 |
计划任务/作业:计划任务 |
在 Windows 上,持久性是通过计划任务来实现的。 |
|
引导或登录自动启动执行:XDG 自动启动条目 |
在 Linux 上,会创建一个自动启动条目,以便在用户登录时启动后门。 |
||
防御规避 |
伪装:匹配合法名称或位置 |
在 Linux 上,持久文件的名称与合法软件类似 |
|
凭证访问 |
来自密码存储的凭据:来自 Web 浏览器的凭据 |
W4SP 从已安装的 Web 浏览器中窃取密码。 |
|
购物 |
剪贴板数据 |
为了在加密货币交易期间窃取资金,剪贴板数据会被替换。 |
|
指挥和控制 |
非应用层协议 |
后门使用基于 TCP 的未加密二进制协议。 |
- :具有
- :是
- :在哪里
- 000
- 1
- 10
- 116
- 14
- 152
- 2023
- 7
- 8
- 80
- 9
- a
- 对,能力--
- Able
- 关于
- 滥用
- 公认
- 实现
- 操作
- 活动
- 地址
- 地址
- 劝
- 后
- 驳
- 经纪人
- 所有类型
- 允许
- 已经
- 还
- 其中
- an
- 和
- 另一个
- 任何
- 任何人
- 出现
- APT
- 保健
- AS
- 评估
- At
- 作者
- 自动
- 可使用
- 背部
- 后门
- BE
- 因为
- 很
- 背后
- 作为
- 相信
- 最佳
- 比特币
- 都
- 浏览器
- 建
- 种子套餐
- 但是
- by
- 被称为
- 营销活动
- 活动
- CAN
- 能力
- 例
- 警告
- 链
- 查
- 检查
- 清洁
- 簇
- 码
- COM的
- 沟通
- 编译
- 元件
- 妥协
- 配置
- 地都
- 安慰
- CONTACT
- 包含
- 包含
- 内容
- 继续
- 继续
- 继续
- 贡献
- 创建
- 创造
- 资历
- cryptocurrencies
- cryptocurrency
- 习俗
- data
- 天
- 定义
- 提升
- 提供
- 依赖
- 部署
- 通过电脑捐款
- 检测
- 开发
- 研发支持
- 设备
- 不同
- 直接
- 发现
- 显示器
- 分布
- 分配
- 分布
- do
- 向下
- 下载
- 下载
- 下载
- Dropbox
- ,我们将参加
- 每
- 有效
- 努力
- 或
- 嵌
- 嵌入式
- 工程师
- 条目
- 环境
- 错误
- 特别
- 复仇
- 所有的
- 执行
- 执行
- 执行
- 渗出
- 期望
- 明确地
- 外部
- 事实
- 失败
- 青睐
- 数字
- 文件
- 档
- 最后
- 终于
- 公司
- 姓氏:
- 五
- 针对
- 申请
- 前
- 形式
- 发现
- 骨架
- 止
- ,
- 功能
- 资金
- 未来
- GitHub上
- Go
- 处理
- 手柄
- 有
- 帮助
- 抱有希望
- HTTPS
- if
- 图片
- 履行
- 实施
- 输入
- 进口
- in
- 包括
- 包括
- 包含
- 臭名昭著
- 信息
- 咨询内容
- 内
- 安装
- 安装
- 安装
- 安装
- 代替
- 房源搜索
- 成
- 问题
- IT
- 它的
- 本身
- 已知
- 语言
- 发射
- 层
- 合法
- 减
- 库
- 轻轻
- 友情链接
- Linux的
- 清单
- 莱特币
- 位于
- 看
- MAC
- 主要
- 使
- 恶意软件
- 颠覆性技术
- 经理
- 经理
- 匹配
- 可能..
- 中等
- 元数据
- 中间
- 分钟
- 模块
- 模块
- Monero
- 显示器
- 更多
- 最先进的
- 姓名
- 名称
- 下页
- 没有
- 没什么
- 注意..
- 注意
- 现在
- 众多
- of
- 优惠精选
- 官方
- 这一点在线下监测数字化产品的影响方面尤为明显。
- on
- 一
- 那些
- 仅由
- 开放源码
- 开放
- 操作
- 操作系统
- 运营商
- or
- 其他名称
- 除此以外
- 我们的
- 产量
- 超过
- 包
- 包
- 页
- 密码
- 密码
- 过去
- 为
- 坚持
- 件
- 地方
- 配售
- 血浆
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 请
- 点
- 热门
- 潜力
- PowerShell的
- 当下
- 私立
- 大概
- 过程
- 核心产品
- 程序员
- 代码编程
- 项目
- 项目
- 协议
- 国家
- 出版
- PYPL
- 蟒蛇
- 率
- 宁
- 原因
- 减少
- 其余
- 远程
- 更换
- 业务报告
- 知识库
- 研究
- 导致
- 揭示
- 运行
- 运行
- 运行
- 预定
- 调度
- 截图
- 脚本
- 脚本
- 其次
- 保安
- 看到
- 看到
- 提交
- 发送
- 分开
- 服务器
- 服务
- 格局
- 共享
- 应该
- 作品
- 类似
- 简易
- 自
- So
- 社会
- 社会工程学
- 软件
- 一些
- 有时
- 来源
- 源代码
- 具体的
- 阶段
- 实习
- 启动
- 抢断
- 商店
- 这样
- 系统
- 产品
- 表
- 采取
- 拍摄
- 服用
- 瞄准
- 目标
- 任务
- 技术
- 技术
- 临时
- test
- 比
- 这
- 其
- 然后
- 那里。
- 博曼
- 他们
- 第三
- Free Introduction
- 透
- 威胁
- 三
- 通过
- 次
- 时
- 至
- 交易
- 转
- 二
- 一般
- 下
- 上传
- 上
- us
- 使用
- 用过的
- 用户
- 使用
- 运用
- 平时
- 变种
- 各种
- 版本
- VET
- 通过
- 受害者
- 受害者
- 参观
- 走
- 钱包
- 是
- 方法..
- we
- 卷筒纸
- 网页浏览器
- 井
- 为
- 任何
- 轮
- ,尤其是
- 每当
- 这
- 而
- 广泛
- 宽度
- 将
- 窗口
- 窗户
- 也完全不需要
- 合作
- 价值
- 书面
- 年
- 完全
- 和风网
- 压缩