一个名为的恶意 Python 包pyronut短暂出现在PyPI 和目标使用 Pyrogram 框架构建 Telegram 机器人的开发人员。安全研究人员表示该软件包的行为就像木马化的副本pyrogram并安装了一个隐藏的运行时后门,让攻击者可以在僵尸程序启动后在受害者计算机上运行 Python 代码和 shell 命令。
该包很重要,因为它不依赖于常见的拼写错误技巧。相反,攻击者复制了真实项目的描述和代码结构,使其看起来可信,然后依靠信任和社区分发来接触受害者。 Endor Labs 表示,所有三个已知的恶意版本,2.0.184,2.0.185, 和2.0.186,于 2026 年 3 月 18 日发布、识别和隔离。
这个短暂的窗口可能限制了受害者的数量。尽管如此,对于任何安装该软件包然后使用它运行 Telegram 机器人或用户机器人的人来说,风险仍然是严重的。安装期间有效负载未触发。它仅在 Telegram 客户端启动时激活,这有助于它避免一些早期检测检查。
热解图本身仍然存在根据 PyPI 统计数据,上个月的下载量约为 371,742 次。它自己的文档还指出,该项目不再被维护或支持,这使得在生产中仍然依赖该项目的开发人员更加担心模仿尝试。
发生了什么
Endor 实验室的研究人员表示pyronut冒充的pyrogram,一个用于通过 MTProto 与 Telegram 交互的 Python 框架。该恶意包复制了上游项目描述,并将用户指向不起作用的 GitHub 存储库 URL,这表明该包可能是通过社交推广而不是随机发现传播的。
隐藏的变化位于启动流程中。 Endor Labs发现攻击者修改了Client.start()所以它默默地导入了一个名为pyrogram/helpers/secret.py每次客户端启动时。该代码以静默方式结束了通话try/except阻止,因此即使后门出错,机器人也会继续运行。
一旦激活,后门就会注册与两个硬编码的 Telegram 帐户 ID 绑定的消息处理程序。一个命令,/e,使用了meval用于在实时 Telegram 会话中执行任意 Python 代码的库。另一个命令,/shell,将命令传递给/bin/bash,这使攻击者可以在主机上直接进行系统级执行。
由于命令输出是通过 Telegram 本身返回的,因此该活动可以比与单独的命令和控制服务器通信的恶意软件更好地融合在一起。如果攻击者后来下载工具或打开出站连接,网络防御者仍然会发现一些滥用行为,但初始控制路径比典型的外部信标安静得多。
为什么这次攻击引人注目
这不是一个经典的错字包。pyronut和pyrogram对于正常的拼写错误陷阱来说,看起来不够近。 Endor Labs 将其描述为恶意分叉,这意味着复制的项目看似合法,但包含隐藏的敌对逻辑。
运行时触发器也使该包更难被发现。许多恶意 PyPI 包尝试在安装过程中运行代码。这个问题要等到开发人员实际启动 Telegram 客户端后才进行,这降低了简单的安装时检查捕获它的可能性。
PyPI 的隔离系统有助于减少曝光窗口。 PyPI 表示,隔离的项目将变得不可安装,并且维护人员无法对其进行修改,直到管理员对其进行审核。这在这里很重要,因为这意味着包裹一旦被标记就可能很快被阻止。
受影响的软件包版本
| 包裹 | 恶意版本 | 第一次见到 | 地位 |
|---|---|---|---|
| 焦坚果 | 2.0.184 | 2026 年 3 月 18 日 | 已隔离 |
| 焦坚果 | 2.0.185 | 2026 年 3 月 18 日 | 已隔离 |
| 焦坚果 | 2.0.186 | 2026 年 3 月 18 日 | 已隔离 |
版本详细信息来源:Endor Labs。
攻击者在妥协后可以做什么
如果机器人启动时安装了恶意软件包,攻击者可能会:
- 在 Telegram 会话中运行任意 Python 代码
- 在主机系统上运行 shell 命令
- 访问进程可用的环境变量和凭据
- 窃取机器人令牌、API 密钥、SSH 密钥或数据库机密
- 读取或操纵 Telegram 消息和机器人活动
- 使用受感染的机器作为更多攻击的垫脚石
这些结果反映了 Endor Labs 对/e和/shell处理程序及其将可访问秘密视为已暴露的建议。
开发商现在应该做什么
安装的开发者pyronut应立即将其移除并从清洁状态重建环境。 Endor Labs 还建议轮换机器人进程可以访问的所有凭据、撤销 Telegram 机器人令牌并终止活动的 Telegram 会话。
团队还应该检查依赖文件,例如requirements.txt,Pipfile,pyproject.toml, 和setup.py对于意外的包裹。哈希固定和锁定文件可以减少未来构建中静默包替换的机会。
此案例还说明了为什么开发人员应该验证包的来源,特别是对于通过聊天、社区组或教程分发的项目。当一个软件包乍一看很实用时,复制的描述和熟悉的品牌就足以欺骗用户。 PyPI 多次警告用户不应将索引上的每个包默认视为可信。
快速响应清单
- 搜索您的依赖文件
pyronut - 删除受影响的虚拟环境
- 从已知良好的依赖项重建
- 轮换暴露给进程的所有秘密
- 撤销 Telegram 机器人令牌并结束活动会话
- 查看日志中是否有可疑的机器人启动活动
- 在 CI/CD 中强制执行锁定文件和哈希固定
FAQ
什么是pyronut?
pyronut是一个冒充真实Python包的恶意Python包pyrogramPyPI 上的 Telegram 框架并添加了隐藏后门。
哪些版本是恶意的?
已知的恶意版本是2.0.184,2.0.185, 和2.0.186,均于 2026 年 3 月 18 日发布。
恶意软件是否在安装时运行?
不会。研究人员表示,在 Telegram 客户端启动之前,它一直处于休眠状态,这使得检测变得更加困难。
后门支持哪些命令?
它支持/e用于任意Python执行和/shell用于执行任意 shell 命令。
该软件包仍然可以从 PyPI 安装吗?
PyPI 的隔离系统使隔离项目在接受审查时无法安装。 Endor Labs 称恶意软件pyronut版本在发布当天就被隔离。
即使 Pyrogram 用户从未安装过,他们也应该担心吗?pyronut?
合法用户pyrogram包不会自动受到影响。主要风险适用于安装恶意软件的开发人员pyronut包而不是真正的依赖项。 Endor Labs 还指出 Pyrogram 不再维护,因此仍在使用它的团队应仔细检查其依赖策略。
