恶意 PyPI 包让黑客控制 Telegram 机器人服务器
- 浏览次数 117
- 喜欢 0
自去年 11 月以来一直活跃的一场攻击活动,一直在针对使用木马化的 Pyrogram 分支构建 Telegram 机器人的 Python 开发者,这些分支允许攻击者读取被入侵服务器上的任意文件。
至少有八个包含隐藏后门的包已被发布到 Python Package Index (PyPI) 上,当导入 Pyrogram 或机器人启动时,该后门会通过 helper 模块被激活。
尽管 Pyrogram 项目已不再维护,但它仍然很受欢迎,在 PyPI 上每月有近 35 万次下载(最后更新于 2023 年 4 月),在 GitHub 上有超过 1400 个分支(最后更新于 2024 年 12 月)。
Pyrogram 被描述为 "用于用户和机器人的、优雅、现代且异步的 Telegram MTProto API Python 框架"。简单来说,它允许开发者创建自动化机器人或用户机器人。
据应用安全公司 Checkmarx 的研究人员称,他们将此活动命名为 "Operation Navy Ghost"。威胁行为者于 2025 年 11 月至 2026 年 6 月期间在 PyPI 上发布了以下恶意 Pyrogram 分支:
- VLifeGram(9 个版本,累计 4,150 次下载)
- VLife-Gram(5 个版本,累计 1,030 次下载)
- pyrogram-navy(6 个版本,累计 2,530 次下载)
- pyrogram-styled(超过 16 个版本,累计 15,370 次下载)
- pyrogram-zeeb(1 个版本,累计 432 次下载)
- kelragram(3 个版本,累计 1,041 次下载)
- sepgram(1 个版本,累计 264 次下载)
- pyrogram-kelra(1 个版本,累计 672 次下载)
所有这些包都是合法 Pyrogram 项目的分支,因为它们包含了原始源代码。然而,威胁行为者还添加了一个名为 secret.py 的后门,隐藏在 helpers 模块中。
当受感染的机器人启动时,该恶意文件会注册隐藏的 Telegram 命令处理程序,从而允许执行攻击者提供的 Python 代码或 shell 命令。
Checkmarx 解释道:"当攻击者向受害者的机器人发送 /asu print(os.environ) 时,该函数会在受害者的机器上编译并执行该 Python 代码——并拥有对实时 Telegram 客户端、会话、聊天记录、联系人和环境变量的完全访问权限。"
研究人员表示:"这对于任何 shell 命令都是可重复的,并且在受感染应用程序的权限下运行,这意味着恶意软件可以访问并窃取受感染应用程序能够合法访问的任何内容。"
命令输出随后通过 Telegram 消息返回,如果超过 4096 字节,则会作为文档附件发送给攻击者。
该后门包含一个硬编码的 'OWNERS' 列表,其中包含 Telegram ID,赋予威胁行为者独占控制权。该列表还有助于在后门在攻击者自己的系统上启动时将其停用。
该恶意软件专门针对 Telegram 机器人账户,并设计为静默运行,抑制错误并禁用日志记录。
Checkmarx 研究人员注意到,该后门仅在 Telegram 机器人账户上激活,而这些账户通常在生产环境中运行,这是一个故意的功能,表明攻击者寻求 "访问数据库、凭据、云 API 和敏感基础设施"。
一旦机器人被激活,威胁行为者就可以读取服务器上的任何文件、转储机密、访问受害者的 Telegram 聊天记录、下载数据库,并安装持久化后门。
尽管这些包是从不同的 PyPI 账户发布的,但 Checkmarx 将此次攻击活动归因于单个威胁行为者。该结论基于各个包之间共享的 OWNERS 列表、相同的后门代码、命令名称以及重叠的基础设施。
可能安装了所列包的开发者应立即将其移除,轮换受影响服务器上的所有凭据,并撤销其 Telegram 机器人令牌。
Checkmarx 已发布了恶意 Telegram ID 以及攻击者个人资料 URL 的入侵指标。