Pyronut パッケージが Telegram ボットをバックドア化し RCE を実行

悪意のある「Pyronut」は、Telegram ボットとユーザーボットをバックドア化する不正な Python パッケージで、攻撃者に Telegram セッションと基盤となるホスト システムの両方に対するリモート コード実行を提供します。

悪意のあるパッケージ「pyronut」は、PyPI にアップロードされ、月間約 370,000 ダウンロードを有する広く使用されている Telegram MTProto API フレームワーク「pyrogram」の偽のバージョンとしてアップロードされました。

新機能を提供する代わりに、作者は Pyrogram のプロジェクト説明をそっくりそのままコピーし、存在しない GitHub リポジトリを指していました。これは正当なプロジェクトではなく詐欺的なフォークの強い指標です。

「pyrogram」と「pyronut」という名前は典型的なタイポスクワッティングには似ていないため、このパッケージは Telegram グループ、開発者フォーラム、またはチュートリアル コンテンツを通じて配布された可能性があります。開発者はパッケージ メタデータを注意深く確認せずにインストール コマンドをコピー&ペーストしがちです。

pyronut の バージョンは 2.0.184、2.0.185、2.0.186 の 3 つだけがリリースされ、すべてが悪意のあるものでした。

Python パッケージ「pyronut」は、月間約 370,000 ダウンロード数を持つ人気の Telegram API フレームワークである「pyrogram」になりすまして、Telegram ボット開発者をターゲットにしていました

これらは 2026 年 3 月 18 日に公開、検出、隔離され、露出ウィンドウをわずか数時間に抑え、多くの開発者がパッケージをインストールする可能性を大幅に減らしました。

Pyronut パッケージ バックドア

セットアップ スクリプト経由でインストール中にペイロードを実行する多くの悪意のある PyPI パッケージとは異なり、Pyronut は実行時にのみペイロードをアクティブ化します。

攻撃者は、Telegram クライアントが起動するたびに隠しモジュール「pyrogram/helpers/secret.py」を静かにインポートするように、コアの「Client.start()」メソッド「pyrogram/methods/utilities/start.py」を変更し、全体のロジックを naked try/except: pass でラップしました。これにより、エラーがあってもすべて飲み込まれ、アプリケーションは正常に動作します。

Image

「init_secret()」関数が実行されると、まず現在の Telegram アカウントが 2 つのハードコードされた所有者 ID のいずれかに一致するかどうかをチェックし、一致する場合は終了します。これにより、攻撃者自身のアカウントはバックドア化されることはありません。

他のすべてのユーザーについて、メッセージが直接であり、転送されたり inline bot 経由で送信されたりしていない場合にのみ、攻撃者が管理するアカウントからの「/e」および「/shell」コマンドをリッスンする 2 つの隠しメッセージ ハンドラーを登録します。これにより、攻撃者の運用上のセキュリティが向上し、明らかなトレースが減少します。

「/e」コマンドは被害者のボットをライブ Python コンソールに変えます。「meval」ライブラリを使用して、ハンドラーは実行中の Telegram クライアント プロセス内で攻撃者が提供したPython コードを評価し、完全な「pyrogram.Client」インスタンス、メッセージ オブジェクト、raw Telegram API、および様々なヘルパー モジュールに直接アクセスできます。

これにより、攻撃者はチャット履歴の読み取り、連絡先へのアクセス、メディアのダウンロード、被害者として送信されたメッセージ、および既存のセッション コンテキスト内の low-level Telegram API の呼び出しを行う能力を持ちます。

「/shell」コマンドは、より従来的な 2 番目のバックドアを提供します。攻撃者が管理する入力を「subprocess.run」経由で「/bin/bash -c」に直接渡し、stdout と stderr の両方を Telegram で攻撃者に返します。

Image

これにより、攻撃者はファイル システムを参照し、認証情報とキーを盗み、追加のマルウェアをドロップし、Python プロセスと同じ権限を使用して他のシステムにピボットできます。

重要なことに、すべてのコマンド結果は Telegram 自体を通じて送り返されます。メッセージとして、または一時的なテキスト ファイル添付ファイルとして送信されるため、外部 C2 ドメインや異常なアウトバウンド トラフィック パターンはなく、ネットワーク監視ツールで検出されることはありません。

検出と対応ガイダンス

Pyronut のペイロードはクライアント起動時に実行されるため、検出には依存関係と実行時の動作の両方を確認する必要があります。

セキュリティ チームは、依存関係マニフェスト(「requirements.txt」、「Pipfile」、「pyproject.toml」など)で「pyronut」バージョン 2.0.184~2.0.186 を検索し、Pyronut が Python 評価バックドアを実行するために特に pull in する「meval」の予期しない使用もフラグを立てる必要があります。

エンドポイントとシステム ログを確認し、Python から生成された疑わしい「/bin/bash -c」子プロセス、Telegram ボット プロセスから発生する異常なファイル操作またはネットワーク アクティビティをチェックする必要があります。

Pyronut が検出された場合、関連するすべての Telegram セッションと bot token は失効させ、パッケージをアンインストールした後、既知の良好なベースラインから影響を受けた環境を再構築する必要があります。

攻撃者は Python と shell 実行の両方を通じて環境変数とローカル シークレットにアクセスできる可能性があるため、潜在的に露出されたすべての認証情報、キー、token をローテーションする必要があります。

長期的には、組織は依存関係の精査を強化し、フォークされたライブラリに実際の到達可能なソース リポジトリがあることを確認し、ソフトウェア構成分析とランタイム監視を統合して、今後も同様の悪意のあるフォークをキャッチする必要があります。

翻訳元: https://gbhackers.com/pyronut-package/

ソース: gbhackers.com