Qbot malware

QBot マルウェア フィッシング キャンペーンは、SVG ファイルを使用した新しい配布方法を採用して、Windows 用の悪意のあるインストーラーをローカルで作成する HTML スマグリングを実行します。

この攻撃は、ターゲットのブラウザを通じて自動的にダウンロードされる Base64 でエンコードされた QBot マルウェア インストーラを再構築する JavaScript を含む埋め込み SVG ファイルを介して行われます。

QBot は、 Cobalt StrikeBrute Ratelランサムウェアなどの他のペイロードをロードするフィッシング メールを介して届く Windows マルウェアです。

SVG ベースの密輸

HTML スマグリングは、エンコードされた JavaScript ペイロードを HTML 添付ファイルまたは Web サイト内に「密輸」するために使用される手法です。

HTML ドキュメントが開かれると、JavaScript がデコードされて実行されるため、スクリプトはマルウェアの実行可能ファイルの作成などの悪意のある動作をローカルで実行できます。

この手法により、脅威アクターは、境界で悪意のあるファイルを監視するセキュリティ ツールとファイアウォールをバイパスできます。

Cisco Talosの研究者は、新しい QBot フィッシング キャンペーンを観察しました。このキャンペーンは、添付された HTML ファイルを開くようにユーザに促す、盗まれた返信チェーン メールから始まります。

この添付ファイルには、HTML に埋め込まれた base64 でエンコードされた SVG (スケーラブル ベクター グラフィックス) 画像を使用して悪意のあるコードを隠す HTML スマグリング手法が含まれています。

HTML 内の Base64 でエンコードされた SVG ファイル
HTML 内の Base64 でエンコードされた SVG ファイル(Cisco)

JPG ファイルや PNG ファイルなどのラスター イメージ タイプとは異なり、SVG は XML ベースのベクター イメージであり、そのファイル形式の正当な機能である HTML <script> タグを含めることができます。

HTML ドキュメントが <embed> または <iframe> タグを介して SVG ファイルをロードすると、画像が表示され、JavaScript が実行されます。

シスコのアナリストは、SVG ブロブ内の JavaScript コードをデコードし、以下に示すように、含まれている JS 変数「テキスト」をバイナリ ブロブに変換する関数と、ブロブを ZIP アーカイブに変換する関数を見つけました。

難読化解除された JavaScript コード
難読化解除された JavaScript コード(Cisco)

「この場合、SVG イメージ内に密輸された JavaScript には、悪意のある zip アーカイブ全体が含まれており、エンド ユーザーのデバイス上で直接 JavaScript によってマルウェアが組み立てられます」と Cisco は説明します。

「マルウェアのペイロードは被害者のマシン上で直接構築され、ネットワーク経由で送信されないため、この HTML スマグリング手法は、送信中の悪意のあるコンテンツをフィルタリングするように設計されたセキュリティ デバイスによる検出を回避できます。」

ダウンロードされたアーカイブはパスワードで保護されており、AV による精査を回避していますが、被害者が開いた HTML には ZIP ファイルのパスワードが含まれています。

パスワードを示す ZIP ダウンロード ダイアログと Adobe HTML
ZIP ダウンロード ダイアログとパスワードを表示する偽の Adobe HTML (Cisco)

開くと、被害者のマシンで ISO ファイルが抽出され、典型的な「ISO → LNK → CMD → DLL」感染またはそのバリエーションにつながります。

SVG ファイルを使用して HTML 添付ファイル内に悪意のあるコードを隠すと、ペイロードをさらに難読化し、検出を回避する可能性が高まると考えられます。

感染連鎖
感染チェーン(シスコ)

システムを HTML スマグリング攻撃から保護するには、ダウンロードしたコンテンツに対する JavaScript または VBScript の実行をブロックします。

QBot は最近、添付ファイルがMark of the Web セキュリティ警告を回避できるようにする Windows の脆弱性を悪用しましたが、Microsoft は昨日、Microsoft の2022 年 12 月のパッチでこれを修正しました。