社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

PyPI 中还有两个恶意 Python 包

嘶吼专业版 • 1 年前 • 195 次点击  

8月8日,CheckPoint发布了一份关于Python包索引(PyPI)中10个恶意Python包的报告,pypi 是 Python Package Index 的首字母简写,其实表示的是 Python 的 Packag 索引,这个也是 Python 的官方索引。你需要的包(Package)基本上都可以从这里面找到。PyPI是软件开发者最受欢迎的Python存储库。这些恶意软件包的目的是窃取开发人员的个人数据和证书。

在CheckPoint的报告发布后不久,卡巴斯基的研究人员就使用其内部自动化系统来监控开源存储库,并在PyPI中发现了另外两个恶意Python包。他们伪装成最流行的开源包,名为“requests“。

上传包的时间:

攻击者使用合法的“requests”包的描述来欺骗受害者安装恶意的包。该描述包含虚假的统计数据,似乎该软件包在一个月内安装了2.3亿次,在GitHub上有超过48000个 “stars” 。项目描述还引用了原始“requests”包的网页,以及开发者的电子邮件。所有提及的合法程序包的名称都被替换为恶意程序包的名称。

下载恶意包之后,很明显源代码几乎与合法的“requests”包的代码完全相同,除了一个文件:exception.py。在恶意程序包中,该脚本最后一次修改是在7月30日,也就是恶意程序包发布的日期。

恶意负载是隐藏在“HTTPError”类中的一个base64编码的Python脚本。该脚本将另一个Python单行脚本写入一个临时文件,然后通过system.start()函数运行该文件。然后,这个单行脚本从https://zerotwo-best-waifu[.]online/778112985743251/wap/enner/injector下载下一阶段脚本并执行它。

下载程序

下一阶段是使用一个名为Hyperion的公开工具进行模糊化的下载程序。混淆可以使用多种技术来完成,例如重命名变量和库函数,添加混合的布尔算术表达式和垃圾代码,以及使用zlib库压缩代码块。

如果操作系统名称不是“nt”(Windows),则下载程序终止。它随机选择 C:\Users\

然后恶意软件从https://zerotwo-best-waifu[.]online/778112985743251/wap/shatlegay/stealer123365下载最后阶段的有效载荷,将其保存到之前生成的位置并执行。

为了在受感染的计算机上实现持久性,该恶意软件在HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Windows系统注册分支中创建一个名为“Realtek HD Audio Universal Service的注册值。

该脚本在%system32%目录中搜索名为SecurityHealthSystray.exe或SystemSettingsAdminFlows.exe的现有可执行文件,添加一个“&”字符(以确保在命令行字符串中按顺序执行),然后添加带有恶意脚本位置的 Python 解释器。值得注意的是,这种方法不能正常工作,因为系统只启动第一个可执行文件,但实际上没有实现持久性。

最终有效载荷:W4SP Stealer

最终的有效载荷是一个用 Python 编写的木马,并使用与下载程序相同的模糊处理程序进行了模糊处理。该恶意软件的代码被其开发者命名为“W4SP Stealer”。

启动后,窃取者通过向 https://api.ipify.org 发出 GET 请求来识别受害者设备的外部 IP 地址,并安装两个合法的 PyPI 包——“requests”和“pycryptodome”,以便将泄露的数据发送到操作员,并使用密码学从浏览器中解密 cookie 和密码。然后恶意软件开始在不同的线程中从浏览器收集 Discord 令牌、保存的 cookie 和密码。

收集到的密码和cookie保存在文件%TEMP%\wppassw.txt和%TEMP%\wpcook.txt中,格式如下:

窃取程序在受害者设备上创建的所有文件都以“< - w4sp stealer on TOP - >”开头。所有收集到的数据通过Discord webhook 发送给操作人员,并以美化的格式呈现:

窃取程序还为包含关键字“mail”、“card”、“bank”、“buy”、“sell”等的 URL 创建并发送保存的浏览器凭据列表(完整列表参见附录)。除此之外,它还从 MetaMask、Atomic 和 Exodus 钱包以及 Steam 和 Minecraft 凭证中收集数据。

收集凭据后,窃取程序开始遍历受害者名为“下载”、“文档”和“桌面”的目录,寻找包含以下单词的文件名:

有趣的是,这个列表包含了多个法语单词:“mot de passe”(密码),“mdp”(mot de passe的缩写),“banque”(银行),“compte”(账户)。然后将匹配的文件上传到同一个 Discord 频道。

窃取程序还从 zerotwo-best-waifu[.]online/778112985743251/wap/dsc_injection 下载 一个JavaScript 有效负载,并将其写入 Discord 的 index.js 文件。然后它会阻止正在运行的 discord.exe 进程,因此用户必须重新启动 Discord,从而激活有效负载。

注入的脚本会监控受害者的行为,例如更改他们的电子邮件地址、密码或账单信息。更新的信息也会发送到 Discord 频道。

研究人员已经向 PyPI 安全团队和 Snyk 漏洞数据库报告了这两个包。

卡巴斯基解决方案检测到的威胁有:

· Trojan.Python.Inject.d

· Trojan.Python.Agent.gj

参考及来源:https://securelist.com/two-more-malicious-python-packages-in-the-pypi/107218/

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/146728
 
195 次点击