
CVE-2021-26855(Exchange Server SSRF)のPoCエクスプロイト。ユーザー列挙、メールヘッダー読み取り、脆弱性検出に対応。未認証の内部リソースアクセスをサポートし、CVE-2021-27065 と連鎖させて RCE を実現します。
CVE-2021-26855 用の PoC エクスプロイトコードです。
元のコードは https://github.com/GreyOrder によって開発されました。元のリポジトリは、追加機能(ユーザー列挙など)が追加された直後に削除されました。
最新版をお持ちの場合は、プルリクエストを送信してください。
CVE-2021-26855 ssrf simple use of golang exercises
影響を受けるバージョン:
Exchange Server 2013 は CU23 未満、Exchange Server 2016 は CU18 未満、Exchange Server 2019 は CU7 未満です。
使用条件:
この脆弱性は、これまでの Exchange の脆弱性とは異なります。この脆弱性は、ログインできるユーザー ID を必要としません。認証なしで内部ユーザーリソースを取得できます。CVE-2021-27065 と組み合わせて使用すると、リモートコード実行を実現できます。
脆弱性のトリガー条件:
ターゲットサーバーに脆弱性が存在すること
対象の Exchange サーバーがロードバランシングサーバーであること、つまり 2 台以上のサーバーが同時に使用されていること
ターゲットのメールアドレス。このアドレスはメールアドレスではなく、ドメイン内メールアドレスである必要があることに注意してください。この2つには違いがあります。
攻撃者は内部 Exchange サーバーの完全修飾ドメイン名 (FQDN) も特定する必要があります。
上記4つのうち、FQDN は NTLM type2 メッセージによって取得できます。メールアドレスは直接列挙できます。
使用方法:
この脆弱性を悪用するには、ruby python などのスクリプト言語を使用する方が便利です。golang で書くのは主に golang の学習のためであり、この小さなツールは半製品としか言えません。時間があれば更新します。
このツールは脆弱性の検出、ユーザー列挙をサポートし、簡単なメール ID およびヘッダー読み取り(実際には XML コンテンツの変更)を実現できます。今後の使用については、8581 を参照してください。これは XML を送信するものです。
使用法:
go run CVE-2021-21978.go -h
-h string 必須、ターゲットのアドレスまたはドメイン名
-U string 任意、列挙するユーザーリストが必要
-d 任意、メールをダウンロード
-l 任意、メーリングリストを一覧表示
-n string 任意、FQND を指定して入力する必要があります
-t string 任意、リクエスト遅延時間(デフォルト "1")
-u string 任意、ターゲットを指定(デフォルト "administrator")