これまでLinux専用とされていたバックドア「SprySOCKS」のWindowsバリアントが発見されました。FishMonger(別名:Earth Lusca/TAG-22)との関連が長く指摘されているこのマルウェアは、ツールセットの拡張が続いています。
内部ラベルが「WIN_DRV」と「WIN_PLUS」の2つのWindowsビルドは、オリジナルのSprySOCKSプロトコルとコマンドセットを継承しつつ、Windows固有のロード技術を追加しています。特にWIN_DRVにはカーネルモードドライバーが搭載されており、ステルス性と持続性が大幅に向上しています。
ESETのテレメトリによると、実際の攻撃活動は2023〜2024年に確認されており、ホンジュラス、台湾、タイ、パキスタンの政府機関を主なターゲットとした感染が報告されています。
両バリアントはハードコードされたC2設定を持ち、TCP、UDP、WebSocketの各チャネルに対応しています。バックドアのコア機能には30以上のコマンドが実装されており、システム偵察、プロセス・サービス管理、ファイル操作(一覧表示・作成・削除・転送)、SOCKSプロキシのセットアップ、リモートインタラクティブシェルなどが含まれます。
ネットワーク処理および低レベルI/Oには、ネットワーク用にHP-Socket、暗号処理にCrypto++というオープンソースコンポーネントが再利用されています。C2プロトコルは、以前報告されたLinux版SprySOCKSサンプルで確認されたマルチプロトコルのヘッダーとAES-ECB暗号化ペイロードの設計を踏襲しています。
ESETの報告によると、研究者らはSprySOCKSの未公開Windowsバリアントを2種類発見しました。このバックドアはこれまでLinux専用とされており、FishMongerによる使用が報告されています。
暗号鍵、メッセージマジック値、メッセージフレーミングはいずれも、以前Trend Microが報告したLinuxバリアントとの明確なコードの系譜を示しています。
WIN_PLUSはより軽量なWindowsビルドです。プリントプロセッサ方式の第1段階ローダーを含み、スプールディレクトリ配下に保存された暗号化コンテナ(AES-128-ECB、ハードコードされた鍵)を復号します。そして、プロセスドッペルゲンガー類似の技術を用いてsvchostに本物のバックドアをインジェクトし、カスタムプリントプロセッサを登録することで持続性を確立します。
SprySOCKS Windowsバックドアによるカーネル利用
ESETが観測したWIN_PLUSサンプルには有効なC2設定が含まれており、207.148.64.0/20レンジ(Vultrホスティング)のインフラを指し示していました。TCP:443、UDP:53、WebSocket:80を使用しており、FishMongerの過去の使用パターンと一致しています。
WIN_DRVはより高度なバリアントです。そのローダーはDLLサイドローディングとスケジュールタスクを利用してSYSTEM権限での実行を実現し、3つの暗号化コンテナをドロップするとともに、2つのカーネルモードコンポーネントをインストールします。具体的には、メモリマップして動作するインメモリドライバーを起動する署名済みDriverLoaderと、ミニフィルター/WFPベースのルートキットドライバーであるRawWNPFです。
エラーが検出されなかった場合、ローダーはmsidiskserverレジストリキーとfsdiskbit.sysファイルの両方を削除します。その後、ローダーの処理は完了し終了します。
RawWNPFはステルスエンジンとして機能します。NtQuerySystemInformationをフックしてプロセスエントリを隠蔽し、ファイルシステムミニフィルターコールバックを実装してファイル(展開済みローダー、DLL、暗号化コンテナを含む)を隠蔽します。また、レジストリコールバックを登録して持続性キーを隠蔽し、WFPコールアウトをインストールしてIPv4パケットの検査と操作を行います。
特筆すべきは、RawWNPFがTCPパケットを転送できる点です。任意のオープンポートへの受信TCPペイロードに特定の細工されたデータが検出された場合、ドライバーはそのフローをバックドアの隠しリスニングポートに書き換えて転送します。
実際のリスニングポートはnetstatなどの標準ツールには表示されないため、攻撃者はネットワークキャプチャに真のポートを露出させることなくバックドアへアクセスできます。これはインシデント対応やネットワーク帰属分析を困難にする効果的なパッシブバックドア機構です。
WORD値0x0003(暗号化方式を示すと推測される)に続き、ハードコードされた鍵QFTHEYjzX3RBOMgZを使用した128ビットAES-ECBモードで暗号化されたデータが格納されています。
このドライバーは隠し接続と隠しプロセスリストを管理するIOCTLもサポートしており、攻撃者は流出したPastDSE証明書を使用してドライバーに署名し、一部のシステムで署名の強制をバイパスしています。
ESETの分析では、一部のSprySOCKSキャンペーンにUEFIブートキットコンポーネントが含まれている可能性を示す限定的なテレメトリも確認されています(CVE‑2023‑24932を含む可能性のある攻撃チェーン)。ただし、確証は限られた範囲にとどまっています。
総じて、Windows移植版はSprySOCKSのクロスプラットフォームC2とコマンドのセマンティクスを維持しつつ、Windows固有の持続性、プロセスインジェクション、カーネルステルスの基本技術を採用しており、FishMonger(I-SOON)への高確度の帰属をESETが支持する根拠となっています。
防御担当者は、ESETのレポートに記載されている侵害指標を調査することをお勧めします。具体的には、Microsoftサービスを模倣した名称に変更された署名済み実行ファイルへの不審なDLLサイドローディング、AES暗号化コンテナを含む%SystemRoot%\Fontsやスプールディレクトリ配下のファイル、異常なWFPコールアウト、隠しプロセスと隠しネットワークエントリ、および207.148.64.0/20への外部接続が確認ポイントとなります。
IOC(侵害指標)
ファイル
| SHA‑1 | ファイル名 | 検出名 | 説明 |
| 955BFC3DCC867256F9F46A606DEB0779FA3416D8 | KX1B5206BDC1743DD.dat | Win64/SprySOCKS.A | 暗号化されたSprySOCKS DriverLoaderドライバー。 |
| 44DC4A08C5EB0972C8E18B0E01284E06F09006BB | bthcam.sys | Win64/Agent.ESB | SprySOCKS DriverLoaderドライバー。 |
| AB87B29B6F79487C75CA08D102E79001E536F083 | KW1B5206BDC1743FP.dat | Win64/SprySOCKS.A | 暗号化されたSprySOCKS RawWNPFドライバー。 |
| 6490B8E4AADE25A3EE2DA9A47F312DB2122470BC | X1B5206BDC1743DD.dat | Win64/SprySOCKS.A | SprySOCKSバックドアの暗号化されたWIN_DRVバリアントの暗号化コンテナ、暗号化されたSprySOCKS RawWNPFおよびSprySOCKS DriverLoaderドライバー。 |
| E7484C24B88A1A2407A8F09D734F9A993670285B | klelam00007.zip | Win64/Agent.CXZ Win64/SprySOCKS.A BAT/Runner.KS |
VirusTotalから取得したZIPアーカイブ。SprySOCKSのWIN_DRVバリアントとすべてのバックドアコンポーネントを含む。サイドローディングに使用されるクリーンなバイナリも同梱。 |
| 621D1952839BE4B0A1B0E66E87BCE5062CA368ED | tpsvcloc.dll | Win64/Agent.CXZ | SprySOCKSローダー。 |
| 2457EED2AB28E37741F10914EF929DAD2C8079D4 | VSPMsg.dll | Win64/Agent.CXZ | SprySOCKSローダーを起動する第1段階ローダー。 |
| D2C706B1EAF662BF0CE124B5032F73ED84BDA24A | N/A | Win64/SprySOCKS.A | SprySOCKSバックドアのWIN_PLUSバリアント。 |
| 5F3B87CEF56683D9A9E19186E0FD0D8019B559C4 | N/A | Win64/Agent.CXZ | SprySOCKSローダー。 |
| C793CA31E3F6628B5C8986146953BF66232E9A30 | config.dat | Win64/SprySOCKS.A | SprySOCKSバックドアのWIN_PLUSバリアントとそのローダーの暗号化コンテナ。 |
| 037DB2445F3D72388CB2CF8510563148E5A184BE | N/A | BAT/Runner.KS | SprySOCKSのWIN_DRVバリアントを持続させるバッチスクリプト。 |
注意: IPアドレスとドメインは、誤ってアクセスされないよう意図的に無効化(例:[.])されています。MISP、VirusTotal、SIEMなどの管理された脅威インテリジェンスプラットフォーム内でのみ、元の形式に戻してご利用ください。
翻訳元: https://gbhackers.com/sprysocks-windows-backdoor-uses-kernel/