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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
exploit-CVE-2016-9920 — Roundcube 1.0.0 <= 1.2.2 リモートコード実行エクスプロイトと脆弱なコンテナ | Kitploit
ツール/GitHubGitHub/t0kx/exploit-cve-2016-9920
コンテナセキュリティ脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育ラボと実践
GitHubt0kx/exploit-cve-2016-9920

exploit-CVE-2016-9920

Roundcube 1.0.0 <= 1.2.2 リモートコード実行エクスプロイトと脆弱なコンテナ

リポジトリを見る
48212年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Roundcube 1.0.0 <= 1.2.2 リモートコード実行

Roundcube は、世界中の多くの組織や企業で利用されている、広く配布されているオープンソースのウェブメールソフトウェアです。たとえば SourceForge 上のミラーでは、過去12か月間で26万以上のダウンロード数を記録していますが、これは実際の利用者のごく一部にすぎません。Roundcube がサーバーにインストールされると、認証済みユーザーがウェブブラウザで電子メールを送受信できるウェブインターフェースを提供します。

Roundcube 1.2.2 以前では、ユーザー制御の入力がサニタイズされずに、セキュリティ上重要とされている PHP 組み込み関数 mail() の呼び出しの第5引数に渡されます。問題は、mail() 関数を呼び出すと PHP が sendmail プログラムを実行することです。第5引数はこの実行に引数を渡すことを可能にし、sendmail の設定を可能にします。sendmail にはすべてのメールトラフィックをファイルに記録する -X オプションがあるため、攻撃者はこのオプションを悪用して、攻撃対象サーバーのウェブルートディレクトリに悪意のある PHP ファイルを作成できます。次のコード行によってこの脆弱性が引き起こされます。

Requirements

この脆弱性を悪用するには、次の要件があります。

  • Roundcube が PHP の mail() 関数を使用するように設定されていること(デフォルトでは、SMTP が指定されていない場合 [1])
  • PHP の mail() 関数が sendmail を使用するように設定されていること(デフォルトでは、sendmail_path を参照 [2])
  • PHP の safe_mode がオフに設定されていること(デフォルトでは、safe_mode を参照 [3])
  • 攻撃者がウェブルートの絶対パスを知っているか、推測できること

これらの要件は特に厳しいものではないため、実際には多くの脆弱なシステムが存在していました。

Vulnerable environment

テスト用の脆弱な環境をセットアップするには、Docker がインストールされている必要があります。次のコマンドを実行するだけです。

root@kitploit:~
docker build -t vuln/cve-2016-9920 .
docker run --rm -it -p 80:80 vuln/cve-2016-9920

これにより、ホストの 80 ポートで脆弱なウェブアプリケーションが起動します。

Vulnerable code

Roundcube 1.2.2 以前では、ユーザー制御の入力がサニタイズされずに、セキュリティ上重要とされている PHP の組み込み関数 mail() への呼び出しの第5引数に渡されます。問題は、mail() 関数を呼び出すと PHP が sendmail プログラムを実行することです。第5引数はこの実行に追加パラメータを渡すことを可能にし、sendmail の設定を可能にします。sendmail にはすべてのメールトラフィックをファイルに記録する -X オプションがあるため、攻撃者はこのオプションを悪用して、攻撃対象サーバーのウェブルートディレクトリに悪意のある PHP ファイルを作成できます。この脆弱性はまれで広く知られていませんが、RIPS は数秒でそれを検出しました。 [4]

Exploit

このターゲットを攻撃するには、次を実行するだけです。

root@kitploit:~
./exploit.py --host HOST --user USERNAME --pwd PASSWORD --path PATH --www_path WEB_DIRECTORY

この脆弱なイメージを使用している場合は、次のように実行できます。

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"

攻撃後、backdoor.php というファイルがウェブディレクトリのルートフォルダに保存されます。そして、エクスプロイトは、バックドアにコマンドを送信できるシェルを提供します。

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"
[+] CVE-2016-9920 exploit by t0kx
[+] Exploiting 127.0.0.1
[+] Target exploited, acessing shell at http://127.0.0.1/roundcube/backdoor.php
[+] Running whoami: www-data
[+] Done

Credits

この欠陥は Robin Peraglie [4] によって発見されました。この教育用コンテンツの本文とアイデアは opsxcq によって作成されました。

Disclaimer

このプログラムまたは以前のプログラムは、教育目的のみを対象としています。許可なく使用しないでください。通常の免責事項が適用されます。特に、私 (t0kx) は、これらのプログラムによって提供される情報または機能を直接的または間接的に使用したことによって生じたいかなる損害についても責任を負いません。著者またはいかなるインターネットプロバイダーも、これらのプログラムまたはその派生物の内容や誤用について一切責任を負いません。これらのプログラムを使用することにより、これらのプログラムの使用によって引き起こされたいかなる損害(データ損失、システムクラッシュ、システム侵害など)も t0kx の責任ではないことを理解したものとします。

Links

  • [1] https://github.com/roundcube/roundcubemail/wiki/Configuration#sending-messages-via-smtp
  • [2] http://php.net/manual/en/mail.configuration.php
  • [3] http://php.net/manual/en/ini.sect.safe-mode.php
  • [4] https://blog.ripstech.com/2016/roundcube-command-execution-via-email/
ツールをダウンロード