
これはCVE-2024-3094のsshdバックドアインスタンスを実行するコンテナ環境で、https://github.com/amlweems/xzbot プロジェクトと連携しています。Dockerではなく、chrootで実装されています。
これは CVE-2024-3094 sshd バックドアインスタンスを実行する環境であり、次のエクスプロイトで動作します: https://github.com/amlweems/xzbot
これはDockerコンテナではありません。この脆弱性環境をDockerで作ろうと試みましたが失敗しました:
systemd が関係しているのではないかと考えています。なぜなら、Docker 内で SSHD を起動するために試したすべての方法は、systemd ではなくコマンドラインから実行されていたからです。
続けて実験を行いました: xzbot で sshd(systemd) のエクスプロイトに成功した VM マシン上で、置き換えた liblzma.so を使用して /sbin/sshd -D -e -p 2024 を直接起動しましたが、xzbot のエクスプロイトは失敗しました。これは systemd と深く関係している可能性が高いことを示しています。
Docker 内で systemd から sshd を実行するのは少し複雑だったため、Docker は断念しました。
最終的に、VM から最小化したファイルシステムを抽出し、chroot ベースのミニコンテナにしました。これは systemd を使用してホストのネームスペース上で簡単に実行できます。
これは自分の VM 環境と別の環境の両方で動作し、xzbot のエクスプロイトを成功させます。
原理はまだ解明していませんが、とにかく研究用にこのプロジェクトで環境をまとめました。
このプロジェクトのルートディレクトリで ./compose.sh を実行します。
このプロジェクトのルートディレクトリで ./remove.sh を実行します。
./xzbot -addr 127.0.0.1:2024 -cmd 'whoami > /hello' を実行します。エクスプロイトが成功すると、env_fs の下に hello という名前のファイルが確認できます。
https://github.com/amlweems/xzbot は優れたツールを提供しており、独自の公開鍵で liblzma.so にパッチを適用してアクセス可能にしています。詳細は xzbot プロジェクトを参照してください。
私たちのミニファイルシステムには、xzbot のデフォルトのパッチ適用済み lzma so ファイルが含まれています。また、xzbot 実行可能バイナリはここで静的にコンパイルされています。テストには ./xzbot -addr 127.0.0.1:2024 -cmd 'whoami > /hello' を実行するだけです。
systemd の xzback.service ファイルが、ホスト上の /etc/systemd/system/ に動的にデプロイされます。
そして xzback.service はミニファイルシステムへの chroot で起動し、ホストのファイルシステムにはこれ以上の影響を与えません。