恶意“Pyronut”软件包后门利用远程代码执行功能入侵 Telegram 机器人

2026-03-20 00:37:09 1 34

Python 包索引 (PyPI) 上发现了一个名为 pyronut 的恶意 Python 包,该包通过冒充流行的 pyrogram 框架来攻击构建 Telegram 机器人的开发者。



Python 包索引 (PyPI) 上发现了一个名为 pyronut 的恶意 Python 包,该包通过冒充流行的 pyrogram 框架来攻击构建 Telegram 机器人的开发者。

攻击者并没有采用域名抢注(即使用与合法名称相似的域名),而是逐字逐句地复制了 Pyrogram 的整个项目描述,创建了研究人员所说的恶意分支,即一个植入木马的副本,旨在通过社会工程手段接触受害者。

该 pyrogram 框架每月吸引约 37 万次下载,使其成为此类冒充行为的高价值目标。

Pyronut 复制了 pyrogram 的项目页面,但没有添加任何新功能,其列出的 GitHub 存储库 URL 指向一个不存在的页面。

这表明该软件包是通过 Telegram 社群和开发者论坛传播的,而不是偶然发现的。共发布了三个版本——2.0.184、2.0.185 和 2.0.186——全部都是恶意版本。

Endor Labs 的研究人员于 2026 年 3 月 18 日——也就是这些漏洞出现在 PyPI 的当天——发现了全部三个版本 ,并在数小时内将其隔离。这种快速反应有效地缩短了攻击窗口期,并减少了面临风险的开发者数量。

然而,任何在那短暂的时间窗口内运行过该软件包的开发者,其机器人程序都完全暴露在安全风险之下。

pyronut 最难检测的地方在于它的运行时激活策略。与大多数恶意软件在安装时通过 setup.py 钩子执行有害代码不同, pyronut 完全处于休眠状态,直到开发者实际运行其僵尸程序才会激活。

它在 pyrogram/helpers/secret.py 中嵌入了一个隐藏的后门模块,该模块会在每次 Telegram 客户端启动时静默加载,完全绕过了标准的安装时安全检查。

成功感染的后果十分严重。一旦后门被激活,攻击者便获得了双重远程代码执行 (RCE) 能力——在受害者的机器上运行任意 Python 代码和任意 shell 命令。

这为凭证窃取、 数据泄露 、跨系统横向移动以及完全接管受害者的 Telegram 会话打开了方便之门。

运行时后门:攻击是如何进行的


当开发者调用 Client.start() 方法时,后门就会被激活,这是任何基于 pyogram 的 Telegram 机器人初始化的核心步骤。

威胁行为者修改了 pyrogram/methods/utilities/start.py 中的方法,以便在每次客户端启动时静默导入并运行隐藏的 secret.py 模块。

关键在于,整个调用都被包裹在一个简单的 try/except: pass 代码块中,因此如果后门遇到任何错误,它都会静默失败,而机器人会继续正常运行。

后门程序一旦运行,就会在受害者的 Telegram 客户端上注册两个隐藏的消息处理程序,这两个处理程序与两个硬编码的攻击者帐户 ID 相关联。

第一个处理程序由 /e 命令触发,使用 meval 库在实时会话中运行任意 Python 代码,从而完全访问消息、联系人和 Telegram API 函数。

第二个处理程序 /shell 通过子进程直接向 /bin/bash 传递命令,使攻击者获得不受限制的系统访问权限。此外,该后门程序还跳过了在攻击者自身账户上的安装——这显然是蓄意恶意行为的标志。

命令输出通过 Telegram 本身发送回攻击者,结果在发出命令的同一聊天中返回。

这意味着此次行动没有留下任何异常的外部网络连接、可疑的 DNS 查询,也没有 C2 域名供监控工具标记——这使得通过传统的网络分析方法极难检测到后门。

可能已经安装了 pyronut 开发人员应立即卸载该软件包,并从干净、经过验证的状态重建受影响的虚拟环境。

所有可被入侵进程访问的环境变量、API 密钥、 SSH 密钥和数据库密码都应视为已泄露,并立即轮换使用。必须终止所有活跃的 Telegram 会话,并立即撤销所有 Bot API 令牌。

应定期检查 requirements.txt 、 Pipfile 和 pyproject.toml 等依赖文件,以发现意外的软件包,并使用带有加密哈希固定的锁定文件来防止静默替换。

按照最小权限原则运行应用程序,并将软件成分分析工具集成到 CI/CD 管道中,将显著降低遭受类似供应链攻击的风险。

关于作者

weak_hong23篇文章34篇回复

评论1次

要评论?请先  登录  或  注册
  • 1楼
    3 小时前

    这事儿必须立刻警惕!Pyronut这招太阴了——它根本不急着安装时搞鬼,等你真用Telegram机器人功能时才激活后门。简单说: 1. **立即自查**:如果装过pyronut(注意拼写!原库是pyrogram),立刻卸载并彻底删除相关目录。用`pip uninstall pyronut`可能不够,得检查虚拟环境残留文件。 2. **死磕依赖文件**:赶紧打开项目的requirements.txt或依赖配置,确认有没有拼写错误的库名。像这种攻击就是靠名字混淆过的,仔细看字母顺序/拼写。 3. **钉死版本号**:以后写依赖时版本号要写死(比如pyrogram==1.5.20),别用模糊写法(比如~=1.5)。配合`pip freeze > requirements.txt`定期更新锁定版本。 4. **关键动作**:假设你的Telegram bot token和服务器秘钥已经泄露——现在就去Telegram官方后台把旧token全废掉,生成新密钥。就算没中招,这波操作建议也做。 这事最可怕的是攻击藏在正常功能里,开发者完全没感知。以后装包前养成xi惯:先去PyPI官网手动确认库的"Maintainer"信息,真库的GitHub/官网链接必须正常访问。