※ 本ブログは、2022年5月20日にHP WOLF SECURITY BLOGにポストされた PDF Malware Is Not Yet Dead の日本語訳です。
過去10年間、攻撃者はマルウェアをMicrosoft Officeのファイルフォーマット、特にWordやExcelでパッケージ化することを好んできました。実際、2022年第1四半期にHP Wolf Securityが阻止したマルウェアの約半数(45%)がOfficeフォーマットを使用していました。その理由は明確で、ユーザーがこれらのファイル形式に慣れていること、ファイルを開くためのアプリケーションがどこにでもあること、ソーシャルエンジニアリングのルアーに適していることです。
このポストでは、HP Wolf Securityが今年初めに発見した、一風変わった感染チェーンを持つマルウェアのキャンペーンについて紹介します。このマルウェアは、攻撃者がPCへの感染に用いることの少ないPDFドキュメントで現れ、不正ファイルの埋め込み、リモートでホストされるエクスプロイトのロード、シェルコードの暗号化など、いくつかの手口を用いて検知を回避します。
"REMMITANCE INVOICE.pdf" という名前のPDFドキュメントが、Eメールの添付ファイルとしてターゲットに送信されました。このドキュメントは、この場合Eメールという、危険な経路から来たものであったためユーザーがこのドキュメントを開くと、HP Sure Clickが隔離されたマイクロ仮想マシン内でファイルを実行し、ユーザーのシステムが感染することを防止しました。
このドキュメントを開いた後、Adobe Readerはユーザーに.docxファイルを開くように促します。攻撃者は、Wordドキュメントにこっそりと "has been verified. However PDF, Jpeg, xlsx, .docx " (訳注:「は検証されました。しかしながらPDF、Jpeg、xlsx、docxは」と名付け、あたかもAdobe Readerのプロンプトの一部にファイル名が含まれているかのように見せかけました。(図2)
PDFファイルを分析すると、.docxファイルがEmbeddedFileオブジェクトとして格納されていることがわかります。調査員は、Didier Stevens氏のpdfidスクリプト(図3)を使って、PDFドキュメントの最も重要なプロパティを素早く把握することができました。
EmbeddedFileを分析するために、Didier Stevens氏のツールボックスにある別のツール、pdf-parserを使用することができます。このスクリプトは、PDFドキュメントからファイルを抽出し、ディスクに保存することができます。
PDF ドキュメントに戻り、プロンプトで “Open this file” (このファイルを開く)をクリックすると、Microsoft Word が開かれます。保護ビューを無効にすると、WordはWebサーバーからリッチテキスト形式(.rtf)ファイルをダウンロードし、開いているドキュメントのコンテキストで実行されます。
Microsoft Wordはどのサーバーに問い合わせたかを明示しないため、Wiresharkを使ってネットワークトラフィックを記録し、作成されたHTTPストリームを特定します。(図6)
.rtfをダウンロードする方法を理解するために、Wordドキュメントに戻りましょう。これはOOXML(Office Open XML)ファイルなので、図7に示すコマンドで中身を解凍し、文書内のURLを探すことができます。
ハイライトされたURLは、Officeドキュメントに見られる正規のドメインではないため、私たちの目を引きました。このURLは、ドキュメントのリレーションシップをリストアップするdocument.xml.relsファイル内にあります。このURLから外部のOLEオブジェクトがロードされていることがわかります。(図8)
この URL に接続するとリダイレクトされ、f_document_shp.doc という RTF ドキュメントがダウンロードされます。このドキュメントをより詳しく調べるに、rtfobj を使用して、ドキュメントに OLE オブジェクトが含まれているかどうかを確認します。
OLEオブジェクトを調べると、Equation Editorのリモートコード実行の脆弱性CVE-2017-11882を悪用するシェルコードが見つかります。この脆弱性については多くの分析があるため、詳細な解析は行いません。代わりに、以下では攻撃者が検知を回避するためにシェルコードをどのように暗号化したかに焦点を当てます。
シェルコードはオブジェクトの最後にある OLENativeStream 構造体に格納されています。次に、デバッガでシェルコードを実行し、GlobalLock への呼び出しを探すことができます。この関数は、メモリブロックの最初のバイトへのポインタを返します。これは、シェルコードがメモリ内で自分自身の位置を特定するために使用する手法です。この情報を使って、シェルコードは定義されたオフセットにジャンプし、復号化ルーチンを実行します。
鍵はイテレーション毎に定数倍され加算されます。そして、暗号文はその都度XOR演算で復号化されます。復号されたデータはシェルコードとなり、その後に実行されます。
さらに実行することなく、マルウェアがfresh.exeという実行ファイルをダウンロードし、ShellExecuteExWを使用してパブリックユーザーディレクトリで実行していることが分かります。この実行ファイルは、以前にも紹介した情報窃取型マルウェア Snake Keylogger です。ようやく、このマルウェアから、動的解析などを用いて侵入の痕跡(IOC)を抽出することができるようになりました。この時点で、完全な感染チェーンを分析し、脅威の追跡や新しい検知方法の構築に利用することができるIOCを収集しています。
Office フォーマットは依然として人気がありますが、このキャンペーンは、攻撃者が武器化したPDFドキュメントを使用してシステムを感染させる方法を示しています。ファイルの埋め込み、リモートでホストされるエクスプロイトのロード、シェルコードの暗号化は、攻撃者が水面下でマルウェアを実行するために使用する3つの技術にすぎません。このキャンペーンでエクスプロイトされた脆弱性(CVE-2017-11882)は、4年以上前のものですが、依然として使用されており、このエクスプロイトが攻撃者にとって引き続き有効であることが示唆されています。
REMMITANCE INVOICE.pdf
05dc0792a89e18f5485d9127d2063b343cfd2a5d497c9b5df91dc687f9a1341d
has been verified. however pdf, jpeg, xlsx, .docx
250d2cd13474133227c3199467a30f4e1e17de7c7c4190c4784e46ecf77e51fe
f_document_shp.doc
165305d6744591b745661e93dc9feaea73ee0a8ce4dbe93fde8f76d0fc2f8c3f
f_document_shp.doc_object_00001707.raw
297f318975256c22e5069d714dd42753b78b0a23e24266b9b67feb7352942962
エクスプロイトシェルコード
f1794bfabeae40abc925a14f4e9158b92616269ed9bcf9aff95d1c19fa79352e
fresh.exe (Snake Keylogger)
20a3e59a047b8a05c7fd31b62ee57ed3510787a979a23ce1fde4996514fae803
外部 OLE 参照 URL
hxxps://vtaurl[.]com/IHytw
外部 OLE 参照 最終 URL
hxxp://192.227.196[.]211/tea_shipping/f_document_shp.doc
Snake Keylogger ペイロード URL
hxxp://192.227.196[.]211/FRESH/fresh.exe
Snake Keylogger SMTP経由の持ち出し
mail.saadzakhary[.]com:587
Author : Patrick Schläpfer
監訳:日本HP