Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-3094 — カスタムEd448キーペアを使用してXZ Utilsバックドア(CVE-2024-3094)を再現する教育用ラボ。パッチ適用済みのliblzma、systemdサービス、および認可されたセキュリティ研究用のエクスプロイトクライアントが含まれています。 | Kitploit
ツール/GitHubGitHub/h3raklez/cve-2024-3094
脆弱性分析エクスプロイトマルウェア分析暗号化ペネトレーションテストサプライチェーンセキュリティ学習と教育ラボと実践
GitHubh3raklez/cve-2024-3094

CVE-2024-3094

カスタムEd448キーペアを使用してXZ Utilsバックドア(CVE-2024-3094)を再現する教育用ラボ。パッチ適用済みのliblzma、systemdサービス、および認可されたセキュリティ研究用のエクスプロイトクライアントが含まれています。

リポジトリを見る
45ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2024-3094 — XZ Utils バックドア

教育目的および許可されたセキュリティ研究のみを対象としています。

脆弱性の説明

CVE-2024-3094 は、XZ Utils (liblzma) のバージョン 5.6.0 および 5.6.1 に導入されたバックドアであり、2024 年 3 月 29 日にセキュリティ研究者 Andres Freund によって発見されました。CVSS スコアは 10.0 (Critical) に設定されました。

これは、サプライチェーン攻撃 であり、脅威アクター「Jia Tan」(JiaT75) によって 2 年以上にわたって実行されました。彼はプロジェクト内で信頼を築き、共同メンテナーの地位を獲得し、バックドアを直接配布用 tarball に導入しました。

技術的メカニズム

バックドアは次のように動作します:

  1. 悪意のある liblzma.so は、glibc の IFUNC 機構 を介して OpenSSH の RSA_public_decrypt() 関数をフックし、SSH 認証プロセスを傍受します。
  2. クライアントが接続すると、バックドアは提示された SSH 証明書内の特定のフィールドを評価します。
  3. そのフィールドに ChaCha20 で暗号化され、特定の Ed448 秘密鍵で署名された ペイロードが含まれている場合、バックドアは system() を介して sshd の権限 (root) で埋め込まれたコマンドを実行します。
  4. 署名が無効な場合、sshd は異常なく通常のフローを続行します。

エクスプロイトの必要条件

  • glibc (IFUNC サポート) を搭載したシステム
  • XZ Utils 5.6.0 または 5.6.1 がインストールされていること
  • systemd から起動された sshd (重要な要件 — 手動でコマンドラインから sshd を起動した場合、IFUNC フックは有効になりません)
  • x86-64 システム
  • 当初影響を受けたディストリビューション

    • Fedora Linux 40 beta / Rawhide
    • Debian unstable、testing、experimental
    • Kali Linux
    • Arch Linux (2024-02-24 から 2024-03-28 の間のイメージ)

    ラボ環境

    このラボは、カスタム Ed448 鍵 (元のアクターの鍵は公開されていません) を使用してバックドアのメカニズムを再現します。

    なぜ chroot を使用するのか

    実際の影響を受けたシステムでは chroot はありませんでした。バックドアはシステムの sshd 上で直接動作し、他の共有ライブラリと同様に悪意のある liblzma.so をロードしました — システムとその管理者にとって完全に透過的でした。

    このラボでは、実用的な理由から chroot を使用します。ホストシステムのライブラリを置き換えることなく、特定のバージョンの liblzma.so で sshd を実行する必要があります。これは研究環境の設計上の決定であり、本番環境でのバックドアの動作を反映したものではありません。

    コンポーネント

    コンポーネント説明
    env_fs/chroot として使用される最小限の Ubuntu 22.04 ファイルシステム
    env_fs/usr/lib/x86_64-linux-gnu/liblzma.so.5カスタム Ed448 鍵でパッチされた liblzma 5.6.1
    /etc/systemd/system/xzback.serviceポート 2024 で脆弱な sshd を起動する systemd サービス
    /xzbot/xzbotソースからコンパイルされたエクスプロイトクライアント

    ターゲットスタック

    • Ubuntu 22.04.1 LTS AMD64
    • glibc 2.35
    • OpenSSH 8.9p1
    • systemd 249
    • liblzma 5.6.1 (パッチ済み)

    このターゲットのために行われた変更

    元のバックドアは非常に特定の条件を必要とし、ラボ環境では自動的に存在しません。以下の変更が必要でした:

    1. liblzma.so の置き換え

    MagpieRYL の元のリポジトリに含まれている liblzma.so.5 は、含まれている xzbot バイナリと一致しない未知の Ed448 鍵を使用しています。オリジナルで正規の liblzma.so.5.6.1 を Debian スナップショットからダウンロードし (sha256 検証済み)、amlweems/xzbot の patch.py を使用して seed=0 でパッチしました:

    root@kitploit:~
    original sha256:  605861f833fc181c7cdcabd5577ddb8989bea332648a8f498b4eef89b8f85ad4
    patched sha256:   ea7206ab4b0c3479ff1b478c8803adc9e7aeba243254a9f601b626ef8aa80e3d
    patched offset:   0x24470
    

    元のアクターの Ed448 公開鍵は以下に置き換えられました:

    root@kitploit:~
    5b 3a fe 03 87 8a 49 b2 82 32 d4 f1 a4 42 ae bd
    e1 09 f8 07 ac ef 7d fd 9a 7f 65 b9 62 fe 52 d6
    54 73 12 ca ce cf f0 43 37 50 8f 9d 25 29 a8 f1
    66 91 69 b2 1c 32 c4 80 00
    

    2. systemd サービスの Type=simple

    元のサービスは Type=notify を使用しており、sshd が systemd に起動通知を送信する必要があります。chroot 内の sshd はそれを送信せず、タイムアウトが発生します。Type=simple に変更しました。

    3. エフェメラルな chroot ディレクトリ

    sshd は権限分離のために /run/sshd を必要とします。このディレクトリは chroot 内に存在せず、再起動のたびに消去されます (run/ は tmpfs のため)。サービス起動の前に自動的に再生成する ExecStartPre で解決しました。


    使用方法

    同一マシンからのエクスプロイト

    root@kitploit:~
    ./xzbot -addr 127.0.0.1:2024 -cmd 'echo pwned > /tmp/result'
    cat /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result
    

    別のマシンからのエクスプロイト

    root@kitploit:~
    ./xzbot -addr <TARGET_IP>:2024 -cmd 'echo pwned > /tmp/result'
    

    エクスプロイトによって生成されたファイルの場所

    コマンドは chroot 内で実行されるため、バックドアコンテキスト内で /tmp/ 以下に作成されたファイルは次の場所に保存されます:

    root@kitploit:~
    /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/
    

    つまり、コマンドが echo pwned > /tmp/result の場合、ファイルは次の場所にあります:

    root@kitploit:~
    /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result
    

    エクスプロイトによって生成されたファイルを探すには:

    root@kitploit:~
    find /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/ -type f
    

    handshake failed: EOF について

    ssh: handshake failed: EOF というメッセージは 期待される正しい動作 です。バックドアはコマンドを実行し、SSH セッションを確立せずに接続を閉じます。これは失敗を示すものではありません。


    重要

    このラボでは、カスタム暗号鍵ペア (seed=0) を使用しています。パッチされた liblzma.so は、対応する秘密鍵で署名されたペイロードのみを受け入れます。この秘密鍵は、この環境でコンパイルされた xzbot が使用するものです。他のクライアントは EOF を受け取り、実行は行われません。


    参考文献

    • Original Openwall disclosure
    • amlweems/xzbot
    • MagpieRYL/CVE-2024-3094-backdoor-env-container
    • Datadog Security Labs writeup
    • Wikipedia — XZ Utils backdoor

    免責事項

    このツールは 教育目的および許可されたセキュリティテスト のために提供されています。所有していない、または明示的な書面による許可を得ていないシステムに対して許可なく使用することは違法です。著者は誤用について一切の責任を負いません。

    ツールをダウンロード