2026年10月27日、Huntress社は、DVR 管理ソフトウェアを悪用したマルウェアの拡散事例を公開した [1]。この事例で悪用されたのは、CCTV や DVR などの製品を開発する韓国国内企業のソフトウェアであり、アンラボの ASD ログによると、韓国国内でも感染ログが確認されている。同じ種類のマルウェアが今回の事例以外でも継続的に確認されていることから、攻撃者はさまざまな手法を用いてマルウェアを拡散しているとみられる。
本ブログでは、韓国国内で確認された攻撃事例と使用されたマルウェアを分析し、追加で収集された同種のマルウェアについても整理する。
1. 攻撃の流れ
1.1. DVR 管理ソフトウェア
Huntress社のレポートでは、韓国企業の DVR 管理ソフトウェアである CMS (Central Management Software) の 「CMS.exe」 によってマルウェアがインストールされたことが確認されている。ただし、この攻撃とソフトウェアの供給元との関係は不明であるとの記載がある。
アンラボのログでも同様に、「CMS.exe」 プロセスがマルウェア 「iphlpapi.dll」 を生成したログが確認された。この攻撃が脆弱性を悪用したものなのか、あるいは不適切な設定や標準でサポートされている機能を悪用したものなのかは、現時点では確認されていない。

[図1] CMS.exe プロセスによって生成されたマルウェア
1.2. マルウェアのインストール
A. CMS ソフトウェアが 「rs.win32.exe」 をインストールする過程で、マルウェア 「IPHLPAPI.DLL」 をダウンロードする。
B. 「IPHLPAPI.DLL」 は DLL Side-Loading 方式によって 「rs.win32.exe」 プロセスにロードされ、動作する。
C. 「IPHLPAPI.DLL」 はダウンローダーとして機能し、正規プログラム 「WpcMon.exe」 とマルウェア 「samcli.dll」 をインストールして実行する。
D. 「samcli.dll」 もダウンローダーとして機能し、バックドア型マルウェア Wpcdoor をダウンロードしてメモリ上で実行する。
E. Wpcdoor は感染システムの情報を窃取して C&C サーバーに送信し、その後、攻撃者からのコマンドを実行できる状態になる。
「rs.win32.exe」 は DVR 管理ソフトウェアであり、このファイルパスは以前から使用されている。具体的な仕組みは不明だが、一般的には CMS のアップデート処理や特定機能の有効化時に 「%APPDATA%\CMS\RemoteSetup\」 パスに 「rs.win32.exe」 と関連モジュールがインストールされるものと推定される。
なお、VirusTotal にアップロードされた圧縮ファイルには、 「rs.win32.exe」 と同プログラムの実行に必要な Qt ライブラリファイル、および 「IPHLPAPI.DLL」「IPHLPAPI_.DLL」 が含まれている。このうち、マルウェアは 「IPHLPAPI.DLL」 である。つまり、CMS によって以下のファイルが 「%APPDATA%\CMS\RemoteSetup\」 パスにインストールされたものと推定される。

[図2] 圧縮ファイルに含まれるユーティリティおよびマルウェア
その後、「rs.win32.exe」 が実行されると、同じパスに配置されたマルウェア 「IPHLPAPI.DLL」 が DLL Side-Loading 方式でロードされる。このマルウェアは、「%LOCALAPPDATA%\Microsoft\WpcMon\」 パスに正規のシステムファイルである 「WpcMon.exe」 とマルウェア 「samcli.dll」 をインストールし、「WpcMon.exe」 を実行する。
「WpcMon.exe」 は DLL Side-Loading 方式によって 「samcli.dll」 をロードする。このマルウェアもダウンローダーとして機能し、最終段階のバックドア型マルウェア Wpcdoor をダウンロードしてメモリ上で実行する。

[図3] WpcMon.exe プロセスによってロードされたマルウェア
2. マルウェアの分析
2.1. 第1段階のダウンローダー (IPHLPAPI.DLL、QtCore4.dll)
「IPHLPAPI.DLL」 は 「rs.win32.exe」 によってロードされて実行される。このファイルは GetAdaptersInfo() API をエクスポートしており、同 API が呼び出されると、同じパスに存在する実際の正規ファイル 「IPHLPAPI.DLL」 の GetAdaptersInfo() を呼び出す。
実行時には C&C サーバーに接続し、ダウンロードするファイルを要求する。この際、「WpcMon.exe」 と 「samcli.dll」 の2つのファイルが要求される。通信パケットはシグネチャ 「WPCF」 で始まり、末尾に要求するファイル名が含まれる。

[図4] ファイルのダウンロード要求時のパケット
| Offset | Size | Request | Response |
|---|---|---|---|
| 0x00 | 0x04 | “WPCF” | “WPCF” |
| 0x04 | 0x02 | 00 01 | 00 01 |
| 0x06 | 0x02 | 00 10 | 00 20 |
| 0x08 | 0x04 | ランダムデータのサイズ | 暗号化されたデータのサイズ |
| 0x0C | 0x04 | Checksum | Checksum |
| 0x10 | – | ランダムデータ (0x14) | 暗号化されたデータ |
| 0x24 | – | ダウンロードするファイルの名前 | N/A |
[表1] ダウンロード要求時のパケット構造
ダウンロードしたペイロードは 0x82615458 キーを使用して XOR 復号され、「%LOCALAPPDATA%\Microsoft\WpcMon\」 パスに生成された後、「WpcMon.exe」 が実行される。現時点では接続できないものの、Huntress社のレポートおよび ASD のログから、第2段階のダウンローダーがインストールされたものと推定される。
- ダウンロードパス – 1 : %LOCALAPPDATA%\Microsoft\WpcMon\WpcMon.exe
- ダウンロードパス – 2 : %LOCALAPPDATA%\Microsoft\WpcMon\samcli.dll

[図5] ダウンロード処理
なお、今回の攻撃事例以外にも 「QtCore4.dll」 という名前の第1段階のダウンローダーが追加で確認されている。「QtCore4.dll」 は上記の種類と実質的に同じ構造であるが、ダウンロードパスなどに違いがある。
このマルウェアは、以下のパスに第2段階のダウンローダーを 「rsaenh.dll」 という名前でダウンロードする。その後、環境変数 「WINDIR」「SYSTEMROOT」 を 「%LOCALAPPDATA5\Microsoft\Windows\」 パスに変更し、「C:\Windows\Sysnative\FileHistory.exe」 ファイルを実行する方式が使用される。
- ダウンロードパス : %LOCALAPPDATA%\Microsoft\Windows\System32\rsaenh.dll
2.2. 第2段階のダウンローダー (samcli.dll、rsaenh.dll)
第2段階のダウンローダーである 「samcli.dll」 はダウンローダーとして機能し、ファイル形式ではなく、メモリ上でダウンロードしたペイロードを実行する。
最初に実行されると Mutex を確認し、その後 C&C サーバーと通信する。通信パケットの構造と復号に使用される XOR キーも第1段階のダウンローダーと同じである
- Mutex : Global\81669d8b1539333e96b84c2e5c4dba5d
「QtCore4.dll」 の事例では、「samcli.dll」 の代わりに 「rsaenh.dll」 がダウンロードされる。「rsaenh.dll」 も第2段階のダウンローダーと同じ構造である。

[図6] バックドアのダウンロード要求時のパケット
2.3. Wpcdoor バックドア
最終的に実行されるのはバックドアであり、感染システムの情報を窃取する機能を備えている。本ブログでは、悪用されるプロセス名 「WpcMon.exe」 と、ダウンローダーが使用するシグネチャ文字列 「WPCF」 を参考に、このマルウェアを Wpcdoor と分類する。
Wpcdoor が実行されると Mutex を確認し、Run キーに 「WpcMon」 という名前で登録する。その後、識別子 (UUID)、ユーザー名、コンピューター名、OS バージョンの情報を取得し、スクリーンショットを撮影して C&C サーバーに送信する。
特筆すべき点として、同じパスに 「zlib.dll」 ファイルが存在するかどうかも確認し、その結果を送信する機能がある。その後、C&C サーバーからコマンドを受け取り、以下の機能を実行する。
| コマンドコード | 機能 |
|---|---|
| 0x01 | スクリーンショットの撮影 |
| 0x02 | クリップボード情報の窃取 |
| 0x03 | クリップボードの内容の変更 |
| 0x06 | ファイルのダウンロード/アップロード |
| 0x07 | コマンドの実行 |
| 0x08 | ファイルの検索 |
| 0x09 | File Grabber |
| 0x0B / 0x0C | ポートフォワーディング |
| 0x0D | Web ブラウザーに保存されたユーザー情報の窃取 |
| 0x0E | 特定プロセスのメモリダンプおよび窃取 |
| 0x0F | ウォレット関連プロセスのメモリ内のキーワード検索および窃取 |
| 0x11 | プロセスの終了 |
| 0x12 | アップデート |
| 0x13 | HVNC (172.86.127[.]14:8443) |
[表2] 対応するコマンド
コマンドのうち、0x0D では、認証情報だけでなく、Cookie、閲覧履歴 (History)、カード番号などの情報も窃取する。
また、0x09 では、以下のユーザーフォルダー内から C&C サーバーより指定されたファイル名を検索し、該当するファイルを窃取する。
- File Grabber 対象フォルダー : Desktop、Downloads、Documents、Pictures、Videos、OneDrive、AppData
0x0F では、指定されたプロセスのメモリ内から、ハードコードされた以下のウォレット拡張機能 ID を検索する。一致するものが見つかった場合、メモリ内から特定のパターンに一致する文字列を検索する。ウォレット拡張機能を対象としていることから、ウォレットを復元するための単語群であるシードフレーズを窃取するものと推定される。
- MetaMask (Chrome) : nkbihfbeogaeaoehlefnkodbefgpgknn
- MetaMask (Edge) : ejbalbakoplchlghecdalmeeeajnimhm
- Coinbase : hnfanknocfeofbddgcijnmhnfnkdnaad
- Phntom : bfnaelmomeimhlpmgjnjophhpkkoljpa
- Trust : egjidjbpglichdcondbcbdnbeeppgdph
- Ronin : fnjhmkhhmkbjkkabndcnnogagogbneec
- Binance : fhbohimaelbohpjbbldcngcnapndodjp
- TronLink : ibnejdfjmmkpcnlpebklmnkoeoihofec
- Solflare : bhhhlbepdkbapadjdnnojkbgioiodbic
- SecondFi : ffnbelfdoeiohenkjibnmadjiehjhajb
なお、C&C サーバーから受信するコマンドとは別に、Wpcdoor は C&C サーバーに対して以下のデータも送信する。
| 応答コード | 機能 |
|---|---|
| 0x00 | 初回接続時の情報送信 |
| 0x01 | 一定間隔でのスクリーンショット送信 |
| 0x04 | キーロギング情報の送信 |
| 0x05 | クリップボード情報の送信 |
| 0x0A | Heartbeat |
| 0x10 | 条件に一致したクリップボードテキストの送信 |
[表3] 送信データ
3. まとめ
最近、韓国国内の DVR 管理ソフトウェアを悪用してマルウェアを拡散した事例が確認された。AhnLab SEcurity intelligence Center (ASEC) では、この攻撃者を Larva-26013 に分類している。Larva-26013 は韓国国内だけでなく、ほかの攻撃事例でも Wpcdoor をインストールしている。
攻撃者は、最終的にインストールした Wpcdoor バックドアを利用して感染システムに保存されているユーザー情報を窃取することができる。
ユーザーは、製造元が提供するソフトウェアおよび OS に最新のセキュリティパッチを適用するとともに、悪用されたソフトウェアのセキュリティ設定を点検する必要がある。また、当該ソフトウェアおよび連携システムで使用している ID/パスワードを直ちに変更する必要がある。
Categories: マルウェア, Uncategorized