FortiGuard Labs 脅威リサーチ

解き放たれた脅威:ウクライナでCobalt Strikeを展開するExcelファイル

投稿者 Cara Lin | 2024年7月4日
  • Article Contents
投稿者 Cara Lin | 2024年7月4日

影響を受けるプラットフォーム: Microsoft Windows
影響を受けるユーザー:     Microsoft Windowsユーザー
影響:             侵害されたマシンの脅威アクターによる乗っ取り
重大度:            

FortiGuard Labsは先日、Excelファイルを使った巧妙なサイバー攻撃を確認しました。このファイルには、DLLファイルの展開を目的とするVBAマクロが埋め込まれていました。攻撃者は多段階のマルウェア戦略を使用して、悪名高い「Cobalt Strike」のペイロードを配信し、コマンド&コントロール(C2)サーバーとの接続を確立します。この攻撃では、ペイロードを確実に配信するためにさまざまな回避技術が採用されています。

ここ数年、ウクライナはその地政学的立場によって、重要な標的とされてきました。これまでの攻撃には、特に地政学的な緊張が高まっている時期に、複雑さと頻度が増す傾向が見られます。例えば、FortiGuard Labsは2022年に、ウクライナ軍に関連する不正なExcel文書を使って多段階型Cobalt Strikeローダーを配信する攻撃を報告しました。また、2023年のウクライナコンピュータ緊急対応チーム(Computer Emergency Response Team:CERT-UA)の発表によると、UAC-0057が関与した攻撃において、マクロとおとり画像が含まれた不正なXLSファイルが使用され、侵入したシステムにPicassoLoaderとCobalt Strike Beaconが展開されました。

このブログでは、最新の多段階型攻撃の技術的な詳細を検証していきます。

図1:攻撃フロー

Excel文書

不正なExcel文書には、ユーザーにマクロを有効にさせることを意図したウクライナ語の記述が含まれています。

図2:VBAを有効にする前のExcel文書

VBAマクロが有効化されると、Excel文書は、「部隊に割り振られる予算額」(原文:「обсягу бюджетних коштів, що спрямовуються до військових частин」)の算出に関連するシートに切り替わります。

図3:VBAを有効にした後のExcel文書

VBAマクロの主要な役割は、HEXでエンコードされたDLLダウンローダーを展開することです。さらに、基本的な文字列検出メカニズムを回避するために、VBAコードの大半の文字列はHEXでエンコードされています。

図4:「workbook_open()」関数

VBAマクロは、「%APPDATA%\VIBErpc\bIn\biN」にDLLファイル「Ac83faafb23919Ae9.DLl」をドロップした後、「%APPDATA%\Microsoft」に「ACtIVePRObE」というショートカットを作成します。そして、「Shell」コマンドを使用して「RunDLL32.EXE shell32.dll,ShellExec_RunDLL '%APPDATA%\Microsoft\ACtIVePRObE.lnk', 0」を実行します。このLNKファイルの目的は、regsvr32を呼び出してDLLファイル「Ac83faafb23919Ae9.DLl」を実行することにあります。

図5:LNKファイルの作成

図6:LNKファイル

DLLダウンローダー

ダウンローダー「Ac83faafb23919Ae9.DLl」は、ConfuserExで難読化されています。

図7:DLLダウンローダー「Ac83faafb23919Ae9.DLl」

ダウンローダーはまず、プロセス名を調べて特定の文字列、すなわち「processhacker」、「avastui」、「aswtoolssvc」、「wsc_proxy」、「procexp」、「overseer」、「avastsvc」の有無を確認します。分析ツールまたはウイルス対策ソフトウェアと合致するプロセスが見つかった場合は、プログラムを終了します。

図8:プロセス名の確認

プロセスの確認が完了したら、URL「hxxps://goudieelectric[.]shop/cms/svg/6364.2809640e[.]chunk.svg」から次の段階のペイロードを取得するためのWebリクエストを作成します。デバイスがウクライナ国内にある場合のみ、必要なファイルをダウンロードできます。次に、「href=」で始まるセクションにあるbase64でエンコードされたデータを抽出し、そのデータとハードコードされた配列とのXOR演算を実行します。続いて、ランダムなファイル名を作成し、デコードされたデータをTEMPフォルダに保存します。

図9:Webリクエストの作成

図10:位置情報の検証に失敗したSVGファイル

図11:位置情報の検証に成功したSVGファイル

その後、「rundll32.exe」を使用してデコードされたファイルを実行し、スリープコマンドを使用して処理の完了を待機します。処理が完了したら、デコードされたファイルを削除してすべての痕跡を消去します。

図12:デコードされたデータの実行

デコードされたデータは.NET DLLファイルでもあり、次の段階のファイルを復号し、永続性を確保する役目を担っています。

図13:デコードされたファイルはConfuserExでパックされている

次に、標的ファイルの有無を確認します。対象となるファイルがない場合は、「C:\ProgramData\Windows\Containers\BaseImages\9cb03978-56d9-4f38-8f05-d1fdf135f0ab\Files\Windows\System32\ResetEngine.dll」ファイルを作成します。そして、ハードコードされた鍵を使用して、RC4アルゴリズムによってデータを復号し、そのデータを新たに作成したファイルに書き込みます。

図14:RC4で復号されたコンテンツを新規作成したファイルに書き込む

その後、「SOFTWARE\Microsoft\Widows\CurrentVersion\Run」にレジストリ値「C:\Windows\System32\regsvr32.exe /s C:\ProgramData\Windows\Containers\BaseImages\9cb03978-56d9-4f38-8f05-d1fdf135f0ab\Files\Windows\System32\ResetEngine.dll」を追加して永続性を確保し、InvokeMethodで「Create」を指定してレジストリ内のコマンドを実行します。

図15:レジストリの追加

図16:「ResetEngine.dll」の実行

DLLインジェクター

「ResetEngine.dll」ファイルは、最終ペイロードを復号し注入するためのコアコンポーネントとして機能します。このファイルは「NtDelayExecution」を使用して、サンドボックス内で悪意のある活動が検知されるのを回避します。次に、プロセスを繰り返し点検し、親プロセスがあればそれを終了します。これは、アンチデバッグ機能を実装するためです。

図17:実行の遅延とアンチデバッグ

検知回避プロセスが完了したら、AESアルゴリズムを使用して最終ペイロードを復号します。

図18:データの復号

その後、復号されたデータを自身に挿入し、さまざまなAPI(「GetCurrentProcessId」、「OpenProcess」、「VirtualAllocEx」、「WriteProcessMemory」、「CreateRemoteThread」、「WaitForSingleObject」など)を使って最終的なCobalt Strikeを実行します。

図19:メモリへのCobalt Strikeの書き込み

Cobalt Strikeのペイロード

構成を抽出するプロセスでは、0x2EによるXOR演算を行うことで、隠蔽された情報をデコードできます。構成を抽出して解析した結果、BeaconのCobalt Strikeチームサーバー(C2)のURLが「hxxps://simonandschuster[.]shop/the-zero-residual-concept/products」と「hxxps://simonandschuster[.]shop/the-zero-residual-concept/sjj-solutions」であることが判明しました。

図20:デコードされた構成

図21:Cobalt StrikeのPOSTリクエスト

結論

今回の巧妙な攻撃では、攻撃者は多段階型マルウェアの戦術を用いて、検知を回避しながら確実に操作を進めます。ペイロードをダウンロードする際には、位置情報に基づく検証を行うことで不審な活動を隠蔽し、アナリストの監視を逃れることができます。VBAは、エンコードされた文字列を利用して重要なインポート文字列を隠蔽します。これにより、永続性の確保や後続ペイロードの復号を行うDLLファイルの展開が容易になります。さらに、自動削除機能が回避戦術を補強する一方、DLLインジェクターは遅延戦術によってサンドボックス化を妨害し、親プロセスを終了することでアンチデバッグのメカニズムをすり抜けます。

このように体系化された攻撃が、ウクライナの地政学的情勢の下では特に、標的となるエンドポイントに対して集中的にCobalt Strikeを展開します。Office文書には、多数のプラグインやスクリプトをはじめとする重要な機能が含まれているため、ユーザーは、不審な発信元から入手したファイルを扱う際には細心の注意を払う必要があります。特に、レジストリの設定に疑わしいファイルや見慣れない起動プログラムが紛れ込んでいないか、常に警戒することが重要です。

フォーティネットのソリューション

FortiGuardアンチウイルスは、このブログで解説したマルウェアを以下の不正プログラムとして検知しブロックします。

VBA/Agent.APO!tr
W32/Injector.S!tr
MSIL/Agent.QTS!tr

FortiGate、FortiMail、FortiClient、FortiEDRは、FortiGuardアンチウイルスサービスをサポートしています。これらの各ソリューションには、FortiGuardアンチウイルスエンジンが含まれています。したがって、最新の保護機能を備えたこれらの製品をお使いのお客様は、脅威から保護されています。

FortiGuard Webフィルタリングサービスは、C2サーバーをブロックします。

FortiGuard CDR(コンテンツ無害化)サービスは、ドキュメント内の不正なマクロを無効化できます。

フォーティネットでは、無料でご利用いただけるサイバーセキュリティトレーニングモジュール:Fortinet Certified Fundamentals(FCF)もお勧めしています。このモジュールでは、エンドユーザーがフィッシング攻撃を識別し、自分自身を守る方法を習得できます。

FortiGuard IPレピュテーションおよびアンチボットネットセキュリティサービスは、フォーティネット分散ネットワークから不正な送信元のIPデータを集約し、攻撃を事前にブロックします。この分散ネットワークでは、脅威センサー、CERT、MITER、協力関係にある他社、その他のグローバルソースが連携し、悪意のある送信元に関する最新の脅威インテリジェンスを提供しています。

組織がCobalt Strikeやその他のサイバーセキュリティ攻撃を受けていると思われる場合は、フォーティネットのグローバルFortiGuardインシデントレスポンスチームまでご連絡ください。

IOC(Indicators of Compromise:侵害指標)

ドメイン

goudieelectric[.]shop

simonandschuster[.]shop

ファイル

88c97af92688d03601e4687b290d4d7f9f29492612e29f714f26a9278c6eda5b  

815c1571356cf328a18e0b1f3779d52e5ba11e5e4aac2d216b79bb387963c2be  

9649d58a220ed2b4474a37d6eac5f055e696769f87baf58b1d3d0b5da69cbce5  

af8104e567c6d614547acb36322ad2ed6469537cd1d78ae1be65fbde1d578abc 

de1bceb00c23e468f4f49a79ec69ec8ad3ed622a3ffc08f84c0481ad0f6f592b  

6f4642a203541426d504608eed7927718207f29be2922a4c9aa7e022f22e0deb 

d90f6e12a917ba42f7604362fafc4e74ed3ce3ffca41ed5d3456de28b2d144bf  

d9b16f077cd6e00137ba208031d22fd6423d0ef303883ad4b6f78638693f2044