RFQマルウェアキャンペーンはDOCX、RTF、JS、Pythonを使用

ハッカーたちはDOCX、RTF、JavaScript、PowerShell、Pythonを悪用して、NKFZ5966PURCHASEというタグの下でボーイング調達になりすまし、ステルス性の高いスピアフィッシングキャンペーンでメモリ内Cobalt Strikeビーコンを配信しています。

このオペレーションは6段階の鎖をつなぎ、living-off-the-land バイナリに大きく依存し、既知のすべてのサンプル全体で同じ暗号化キーを再利用しており、強力な回避と防御者にとって明確な機会の両方を作成しています。

添付されたドキュメントは「Rfq and Payment Schedule.docx」「Product_specifications.docx」「RFQ_PO_ATR29026II.docx」などの回転するファイル名を使用していますが、同じメタデータとドキュメント構造を共有しています。

すべてのバリアントで、作成者は「Christian Booc」として表示され、最後の修正者は「John」として表示されており、テンプレートは2021年に作成され2026年初期に武装化されたことを示しており、作成者フィールドをサニタイズすることなく古いRFQテンプレートを再利用していることを示しています。

レポートによると、キャンペーンは「ボーイングのJoyce Malaveから」または「Global Services, LLC」になりすましたターゲットRFQメールで始まり、調達およびセールスチームに送信され、大量注文と「最高の価格」を約束しています。

NKFZ5966PURCHASEタグは、DOCXおよびRTFルアー、JavaScriptドロッパー、ZIPペイロード、およびCobalt Strikeコンポーネントを含む完全なチェーン全体にわたる少なくとも22のアーティファクトにリンクしており、提出物は2026年3月31日~4月1日付近でクラスタ化され、JAMESWTなどの研究者によって報告されています。

ボリュームとタイミングは、オペレーターがルアーを反復している間、安定したバックエンドアーキテクチャと暗号設定を保持する、引き続き開発中のアクティブなキャンペーンを示唆しています。

RFQマルウェアキャンペーン

DOCXを開くと標準的なOOXML ZIPコンテナが表示されますが、リレーションシップファイルはWordの aFChunk 機能を悪用してRTFを埋め込んで、ドキュメントの一部としてレンダリングし、実際のペイロードを通常のように見えるRFQの後ろに効果的に隠します。

埋め込まれたRTFファイル(例えばrsuas.rtfなど類似の名前)は異常に大きく、数メガバイト程度のサイズがあります。これは、Wordが解析するが表示しない {*\svb} 宛先グループ内のヘックスエンコードコンテンツを運ぶためです。

そのヘックスブロブは別のOOXMLスタイルにデコードされ、OLEオブジェクトをラップして、それが順番に難読化されたJavaScriptを含むもので、チェーンのステージ2になります。

このaFChunk plus RTFレイヤリングは新しいものではありませんが、高レベルのDOCX解析で停止し、代替フォーマットチャンクを再帰的に歩行しない多くのメールゲートウェイによって検査されないままです。

FreddyBearDropperのようなYARAルールは、研究者が同様の埋め込まれたRTF対スクリプト技術を追跡していることを示しており、これらの検出はまだエンタープライズ製品に広く展開されていません。

OLEオブジェクトから、アナリストは複数のJavaScriptドロッパー(例えば「license.js」とバリアント)を復元しており、これらはジャンク区切り文字で分割された単一の文字列としてロジックを保存し、実行時に削除されてコードを再構成します。

難読化を解くと、スクリプトはWMIのWin32_Processをwscriptで使用して次のステージをサイレントに生成し、被害者のワークステーション上で明白なコマンドウィンドウまたはUIアーティファクトを回避します。

JavaScriptはBase64エンコードコマンドを使用したPowerShellを起動して、TLS証明書検証を無効化するカスタムTrustAllCertsPolicyクラスを含む複数の回避戦術を実装したダウンローダーを実装して、ネットワークAPIを間接的に呼び出してAMSIベースの検出をはかられます。

ネットワークリクエストはChrome トラフィックになりすまし、ファイル共有リファラーを追加して、2007.filemail.comや2117.filemail.comなどのFilemail.comサブドメインから約14.5 MBのZIPを引っ張ります。これは、URLフィルターによって通常ブロックされない信頼できるノルウェーのファイル共有サービスです。

これらのURLの少なくとも1つは最後のチェック時にライブなままであり、Pythonペイロードを配信する一方、Content-Dispositionヘッダー経由で誤解を招く「.mp3」ファイル名の下でZIPを提供し続けています。

Pythonランタイムローダー

ダウンロード後、ZIPはユーザーのローミングプロファイルに解凍され、署名されたpythonw.exe、PyCryptodome、Protected.pyおよび builtin.py などのいくつかのヘルパースクリプトを含む完全なPython 3.12 x64ランタイムと、偽の「license.pdf」ファイルを表示します。

いわゆるPDFは実際には暗号化されたDLLブロブです。PDFビューアーで開かれることはないもので、Pythonローダーによって程式的にのみアクセスされるため、基本的なドキュメント検査をバイパスできます。

Protected.pyは複数層難読化パイプライン(Base64、圧縮、バイト反転、ROT13、およびXOR)を実装してから、AES-256-CBCと追加のXOR操作を使用してDLLを復号化し、メモリに再帰的にロードします。

分析されたすべてのサンプルは同じAESキー、IV、およびXORキーを再利用しており、これは主要な運用セキュリティ障害です。単一のキーリークがこの設定を保持するすべての過去および将来のペイロードの復号化を可能にするためです。

他のCobalt Strike事件での同様のチェーンのメモリ分析は、反復的にロードされたDLL、アンチデバッグロジック、およびインポートテーブルなしのPEイメージを示し、防御者が成熟したビーコン展開から期待するものと一致します。

永続性のために、マルウェアは「RtkAudUService」という名前のRunキーをHKCUの下に追加して、一般的にWindowsシステムに存在するRealtek オーディオコンポーネントになりすまします。

pythonw.exeを直接呼び出す代わりに、SyncAppvPublishingServer.vbs(署名されたMicrosoftスクリプトで、living-off-the-land バイナリとして使用される)を悪用してPowerShellを起動し、それがpythonw.exeを悪意あるローダーで起動し、オートラン エントリと最終ペイロードの間に複数の信頼できるコンポーネントをスタックします。

その洗練さにもかかわらず、キャンペーンはいくつかの防御的なフットホールドを公開しています:サニタイズされていないドキュメントメタデータ、ルアーのゴで再利用される5年前のRFQテンプレート、MalwareBazaar提出物全体のNKFZ5966PURCHASEタグの安定性、ハードコードされた静的暗号化キー、およびFilemail インフラストラクチャの繰り返し使用。

防御者は、DOCX aFChunk 埋め込まれたRTFコンテンツ検出を追加して、隠されたデータを持つ大きなRTFを検査して、ユーザープロファイルの異常なPythonランタイムを監視して、エンドポイント上のSyncAppvPublishingServer.vbsに連鎖した疑わしいRealtek のようなRunキーをハントする必要があります。

翻訳元: https://gbhackers.com/rfq-malware-campaign/

ソース: gbhackers.com