$30 off During Our Annual Pro Sale. View Details »

Free Tools vs. Follina

am7cinnamon
September 10, 2022

Free Tools vs. Follina

フリーツールを使って、Follina (CVE-2022-30190) の悪用を狙う文書型マルウェアから URL を抽出します。

・本資料はあるコミュニティでのライトニングトークで使用したものを、公開版として調整したものです
・技術的に不正確な箇所もあると思われます。ご了承ください
・本資料では本物のマルウェアを扱っています。本資料を参考にしたことにより何らかの不都合が発生しても、筆者は責任を取れません。ご了承ください

am7cinnamon

September 10, 2022
Tweet

More Decks by am7cinnamon

Other Decks in Technology

Transcript

  1. Free Tools vs. Follina

  2. はじめに ・本資料はあるコミュニティでのライトニングトークで使用したものを、 公開版として調整したものです ・技術的に不正確な箇所もあると思われます。ご了承ください ・本資料では本物のマルウェアを扱っています。 本資料を参考にしたことにより何らかの不都合が発生しても、 筆者は責任を取れません。ご了承ください

  3. Follina is 何

  4. Follina とは ・CVE-2022-30190 ・Microsoft サポート診断ツール (MSDT) の任意コード実行の脆弱性 ・修正前に実際の攻撃に使われていた、 いわゆるゼロデイ脆弱性 ・呼び出し元のアプリケーション

    (主に MS Office) と同じ特権で任意のコードを 実行可能 ・報告したのは日本の nao_sec (右図)※ ※ https://twitter.com/nao_sec/status/1530196847679401984
  5. (参考) 名前の由来 ・Follina とはイタリア・ヴェネト州の自治体 ・最初の検体が参照していた (ファイル名?) 数字「0438」を市街局番に持つ ・修道院が有名らしい ※ https://doublepulsar.com/follina-a-microsoft-office-code-execution-vulnerability-1a47fce5629e

    場所 (Gllgle Map) 公式ロゴ※
  6. 深刻度 ・NVD の評価は Base Score 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H ・AV: L と

    UI: R がスコアを下げており、一見さほどでもなさそう ・しかし、攻撃者はメールなどを通じてユーザの 手元に悪意のある ファイルを送り込めるし、請求書など正規の文書を装ってユーザに 開かせることも可能 ・よって CVSS Base Score での評価以上に実態は危険
  7. 悪 用 ・Recorded Future によれば、2022年上半期に2番目に悪用された脆弱性 (1番目は Log4Shell) ※ https://www.recordedfuture.com/h1-2022-malware-and-vulnerability-trends-report

  8. maldoc ・攻撃者は MSDT を呼び出す悪意のある文書ファイル (maldoc) を ユーザに配送し、開かせる ・Follina を悪用して実行する「任意のコード」はインターネットから 取得する

    (直接 maldoc に埋め込むこともできるかもしれないが) ・その取得先がわかれば、対応・調査の助けになる ・ここでは、 maldoc からコードを取得する URL を得ることを目的に 調査する
  9. 実験台 #1

  10. 実験台 #1 の概要 ・SHA-256: 4a24048f81afbe9fb62e7a6a49adbd1faf41f266b5f9feecdceb567aec096784 ・ファイル形式は DOCX (Word 2007+) ・nao_sec

    が最初に報告した検体
  11. OOXML の基礎知識 ・Office Open XML ・MS Word/Excel/PowerPoint などの標準ファイル形式 ・MS Office

    2007 以降で採用 (2003 までの標準形式は OLE で、まったく異なる) ・XML で記述された文書やデータを ZIP 形式で圧縮して1つにしたもの つまり、ZIP ファイルとして解凍することで分解できる ・VBA コードは普通に解凍しただけでは判読不可なので別途ツールが必要 (ただし本スライドでは扱わない)
  12. oletools ・Office ファイルや RTF ファイルを分析するために作られたツール群 ・実態は Python スクリプト そのため対応する Python

    さえ動けば OS を問わない ・FLARE VM、REMnux などマルウェア解析用のディストリビューションには 標準搭載されている ・oleid、olevba、oleobj など ・どれも使い方はシンプルで、「(コマンド) (ファイル名)」で大抵動作する ・公式サイト: https://www.decalage.info/python/oletools GitHub: https://github.com/decalage2/oletools
  13. oleid ・基礎情報を表示。その後の調査の方向性を探るのに最適 ・リスクごとにを色分けして表示してくれる ・外部の何かを参照していることがわかる 詳細な調査には oleobj を使えと言っている

  14. oleobj ・埋め込みオブジェクトを表示 ・URL を特定できた これはファイルフォーマット由来のものではなく、不審な接続先の 疑いが強い

  15. CyberChef ・CyberChef でも不審な URL を検出できる場合がある ・OOXML ファイルは ZIP ファイルなので、「Unzip」で分解できる ・その状態で「Extract

    URL」を使うと URL を抽出できる
  16. CyberChef ・大量の URL が出てくるが、この中には OOXML のファイルフォーマットに 起因する、あって当たり前の URL も含まれている ・それらを目視で無視して不審な

    URL を探すのは大変 「Filter」で消去すれば簡単になる ・「Invert Condition」にチェックを入れ、「Regex」に次を指定 (¥ はバックスラッシュ。実際には改行は不要) purl¥.org| schemas¥.microsoft¥.com| schemas¥.openxmlformats¥.org| www¥.w3¥.org|
  17. CyberChef ・oleobj と同じ URL が得られた ・毎回入力するのは面倒なので、この Recipe を保存しておくとよい ・このように、CyberChef は簡易的なスキャナーとして使える

  18. 実験台 #2

  19. 実験台 #2 の概要 ・SHA-256: ca7e9c65fd2cec62110b50581529198c43b7982820a38c912baa81d0294b8126 ・ファイル形式は RTF

  20. RTF の基礎知識 ・リッチテキストファイル ・プレーンテキストの拡張形式で、フォントを変更したり レイアウトを整えたりできる ・ファイル中に可読文字が多い (全部とは限らない) ・なぜかマルウェアとして配布される際には拡張子が「.doc」のことが多い

  21. oleid ・RTF であることを確認 ・RTF は OLE・OOXML ファイルとはフォーマットが違うので同じツールでは 分析できない 専用ツールを使う必要がある

  22. rtfobj ・oleobj の RTF 版のようなツール ・不審なオブジェクトと、それに含まれている URL を抽出できた

  23. rtfdump ・RTF ファイルを分析する多機能な Python スクリプト ・同作者の「oledump」の rtf 版のようなもの ・いろいろ使い方があるが、ここでは次のオプションを使う -O:

    含まれているオブジェクトの概要を表示 -s: 続けて数字を指定すると、その数字で表されるものをダンプする 通常はストリーム番号だが、-O オプションと組み合わせると、 表示されたオブジェクトの番号で指定できるようだ ・GitHub https://github.com/DidierStevens/DidierStevensSuite
  24. rtfdump ・-O オプションを付けて実行すると、 OLE オブジェクトが 2個含まれていることがわかる ・-s オプションを付けてオブジェクトの内容を調べる

  25. rtfdump ・-O –s 1 として、オブジェクト 1 をダンプする ・先頭 4バイト※の「D0CF11E0 (DOCFILE0)」は

    OLE であることを示す ※ 実際のマジックナンバーは8バイト分。4バイトというのはあくまで人間が DOCFILE と読める分の長さ
  26. rtfdump ・末尾付近に不審な URL を発見 ・rtfobj で得られたのと同じもの

  27. まとめ

  28. まとめ ・文書ファイルにはいくつかの形式がある (OOXML、OLE、RTF...) ・悪用のしかたも一通りではない - VBA マクロ - ペイロードの直接埋め込み -

    接続先が直接書いてある <- 今回のはこれ ・これらのバリエーションが、文書型マルウェア解析への理解を 難しくしている ・適切なツールの使用によりすぐ解ける場合もある ひとつの方針にこだわらず試行錯誤してみることが大切