概要
AhnLab SEcurity intelligence Center (ASEC) は、Kimsuky グループによる悪性 LNK ファイルの配布方式に変化が生じていることを確認した。悪性 LNK を通じて最終的に Python ベースのバックドアまたはダウンローダーが実行されるという全体的な攻撃の流れは以前と同様であるが、中間実行段階において従来とは異なる構造的変化が観察された点が特徴的である。
| 区分 | 過去の配布方式 | 最近の配布方式 |
|---|---|---|
| 初期実行 | LNK → PowerShell → BAT | LNK → PowerShell → デコイ·XML·PS1·VBS の生成 |
| 中間段階 | BAT 単独実行 | XML → VBS → PS1 → BAT |
| ファイルの ダウンロード | ZIP、デコイファイルのダウンロード | ZIP ファイルのダウンロード |
| ZIP 内部構成 | Python スクリプト、Python Interpreter、 XML スケジューラーファイル | Python スクリプト、Python Interpreter、 XML スケジューラーファイル |
| 最終実行 | XML により Python スクリプト実行 → Python バックドアのダウンロードおよび実行 | XML により Python バックドア実行 |
| 特徴 | 比較的単純な実行構造 | 中間段階の多重化及び実行フローの分離 |
[表 1] 過去と最近の配布方式の変化
1. 過去の LNK 配布方式
1.1 初期実行
過去に配布された LNK ファイルの初期実行段階では、LNK ファイルを通じて実行された PowerShell スクリプトが以下の URL から BAT ファイルをダウンロードする方式で動作していた。
- URL : hxxps://qugesr[.]online/m/bDw

[図 1] 悪性 BAT スクリプトファイル
1.2 中間段階
BAT ファイルが実行されると、ZIP ファイルとデコイファイルがダウンロードされる。その後、以下の URL から分割された2つの ZIP ファイルの断片をそれぞれダウンロードし、それらを結合して1つの ZIP ファイルを生成する。当該 ZIP ファイルの内部には、Python スクリプト (can.py)、Python Interpreter、そして XML タスクスケジューラーファイル (sch.db) が含まれている。その後、XML ファイルの内容に基づき「Microsoft_Upgrade{10-9903-09-821392134}」という名前のタスクスケジューラーが登録され、当該 XML タスクスケジューラーによって Python スクリプトが実行される。この過程で最終的な Python バックドアファイルがダウンロード・実行される。当該バックドアの詳細分析については 「3. Python マルウェア」 で取り上げる。
| URL | 区分 |
|---|---|
| hxxps://qugesr.online/dwparts_view/view.php?in=comm.part000 | ZIP_1 |
| hxxps://qugesr.online/dwparts_view/view.php?in=comm.part001 | ZIP_2 |
| hxxps://qugesr.online/dwparts_view/view.php?in=normal | デコイファイル |
[表 2] 追加ファイルのダウンロード

[図 2] 正常なデコイファイル
2. 最近の LNK 配布方式
2.1 初期実行
最近配布された LNK ファイル「履歴書(パク・ソンミン).hwp.lnk」および「データバックアップおよび復旧手順ガイド(参考).lnk」は、過去に配布された事例と同様に PowerShell スクリプトを実行し、C:\windirr パスに隠しファイルおよびシステムファイル属性を持つフォルダーを生成する。これはユーザーの通常のファイル閲覧において当該パスが露出しないようにするための隠ぺい目的の行為と判断される。その後、当該フォルダーに LNK が保有するファイルを生成・実行する。生成されるファイルの中には正常なデコイファイルが含まれており、LNK ファイルのファイル名をそのまま使用した HWP 文書が生成される。
![]() |
![]() |
| 履歴書(パク・ソンミン).hwp.lnk のデコイファイル | データバックアップおよび復旧手順ガイド(参考).lnk のデコイファイル |
[図 3] 正常なデコイファイル
| 生成ファイル | 機能 |
|---|---|
| sch_ha.db | xml タスクスケジューラーファイル |
| 11.vbs | pp.ps1 実行ファイル |
| pp.ps1 | 追加ファイルのダウンロード |
[表 3] ファイル別の機能
2.2 中間段階
タスクスケジューラー名を「GoogleUpdateTaskMachineCGI__{56C6A980-91A1-4DB2-9812-5158E7E97388}」として XML ファイルを通じてタスクスケジューラーを作成する。XML ファイルの内部には、wscript.exe /b “C:\windirr\11.vbs” コマンドを2025年8月26日15時17分から17分間隔で継続的に実行するタスクスケジューラーが定義されている。タスクスケジューラーによって 11.vbs ファイルが実行されると、C:\windirr\pp.ps1 ファイルが実行される。

[図 4] 登録されたタスクスケジューラー
p.ps1 ファイルは C:\Users\Public\Documents\tmp.ini ファイルを生成した後、[表 2] に記載された情報を当該ファイルに保存する。攻撃者は Dropbox サービスを情報送信用の C2 チャネルとして使用しており、窃取された情報は <userdomain>_<日付>_info.ini 形式のファイル名でアップロードされる。また、攻撃者の Dropbox アカウントに存在する zzz09_test.db_sent ファイルをダウンロードして C:\Users\Public\Music\hh.bat パスに保存した後、cmd.exe /c C:\Users\Public\Music\hh.bat コマンドを通じて実行する。
| 窃取情報 |
|---|
| userdomain、username、現在実行中のプロセス一覧、OSVersion、グローバル IP 情報、ウイルス対策ソフト情報 |
[表 4] 窃取情報

[図 5] pp.ps1 コードの一部
hh.bat ファイルは以下の URL から分割された2つの ZIP ファイルの断片をそれぞれダウンロードした後、それらを結合して %TEMP%\G9081234.zip パスに1つの ZIP ファイルとして生成する。その後、当該 ZIP ファイルを C:\winii パスに展開する。圧縮ファイルの内部には XML タスクスケジューラーファイル (norton.db) と Python バックドアファイル (beauty.py) が含まれている。
| URL | 保存パス |
|---|---|
|
hxxps://quickcon.store/man/logo.php?au=beauty.part000 |
C:\winii\part000 |
| hxxps://quickcon.store/man/logo.php?au=beauty.part001 | C:\winii\part001 |
[表 5] 追加ファイルのダウンロード

[図 6] hh.bat コードの一部
最終的な Python バックドアファイルは XML タスクスケジューラーファイルを通じて実行される。hh.bat ファイルは「GoogleExtension{02-2032121-098}」というタスクスケジューラー名で C:\winii\beauty.py ファイルを実行するようにタスクを登録し、これによって Python バックドアが実行される。当該バックドアファイルの構成と動作方式については以下にまとめる。
3. Python マルウェア
Python ベースのマルウェアは2種類が確認されている。外部サーバーから追加のペイロードをダウンロードするダウンローダー、そして攻撃者のコマンドをリモートで実行するバックドアである。
3.1 バックドア
バックドアは C2 サーバーである 45.95.186[.]232:8080 に「HAPPY」という文字列を持つパケットを送信する。これは感染した事実を通知するための目的と推定される。その後、マジックバイト (0x99 0x0A 0xBD 0x99) ベースの固定サイズ (4096バイト) のカスタムプロトコルで通信し、コマンドコードに応じてシェルコマンドの実行、ドライブ一覧の照会、ファイルのアップロード/ダウンロード、ファイルの削除 (削除前にランダムデータで上書き)、ファイルの実行 (.exe、.bat、.vbs) など、さまざまな機能を実行する。

[図 7] 攻撃者のコマンドに応じた機能分岐
| コマンド | 機能 |
|---|---|
| 0100 | ドライブ容量の照会 |
| 0010 | シェルコマンドの実行 |
| 0110 | ディレクトリ一覧の照会 |
| 0120/0121 | ファイルのアップロード |
| 0130/0131 | ファイルのダウンロード |
| 0140 | ファイルの削除 |
| 0150 | BAT、VBS、EXE の実行 |
| 1110 | 終了 |
[表 6] コマンドに応じた機能
攻撃者コマンドの観測
感染したシステムに攻撃者がコマンドを送信する動作が確認された。最初にドライブ容量を確認した後、ipconfig でネットワーク設定を確認し、tasklist で実行中のプロセスを調査した。
| 日時 | コマンド | 意味 |
|---|---|---|
| 2026-02-12 13:00 |
感染 |
|
| 2026-02-12 13:08 | 0100 | ドライブ容量の照会 |
| 2026-02-12 13:09 | 0010 | ipconfig |
| 2026-02-12 13:10 | 0100 | ドライブ容量の照会 |
| 2026-02-12 13:10 | 0010 | tasklist |
| 2026-02-12 13:11 | 0010 | ipconfig |
| 2026-02-12 13:11 | 0010 | dir /s C:\ |
[表 7] 攻撃者が送信したコマンド
3.2 ダウンローダー
ダウンローダーは攻撃者が運営するサーバーに接続して VBS および BAT ファイルを %TEMP% パスに保存した後、CREATE_NO_WINDOW(0x08000000) フラグを適用してコンソールウィンドウを表示せずバックグラウンドで実行する。180秒の待機後、2つのファイルを削除して痕跡を消去する。

[図 8] Python ダウンロードコードの一部
4. Kimsuky 攻撃グループの特徴
1. XML ファイルベースのタスクスケジューラー登録およびタスク名の類似性
過去に Kimsuky グループが RAT マルウェアを配布した際に使用したタスクスケジューラーのタスク名と、今回のバックドア配布過程で使用されたタスクスケジューラーのタスク名が互いに類似している点が確認された。当該過去の事例は自社 TI コンテンツを通じて公開されている。
| 過去に Kimsuky グループが使用したタスクスケジューラーのタスク名 | GoogleUpdateTaskMachineUA{1C791230-CA8D-6D04-AC55-F706378A30E} |
| 今回の事例で Kimsuky グループが使用したタスクスケジューラーのタスク名 | GoogleUpdateTaskMachineCGI__{56C6A980-91A1-4DB2-9812-5158E7E97388} |
[表 8] タスクスケジューラーのタスク名の類似性

[図 9] 自社 TI コンテンツ
2. タスクスケジューラー登録用 XML ファイル名の類似性
過去に Kimsuky グループは sch_*.db 形式の XML ファイルをタスクスケジューラーの登録に活用した事例が確認されている。このような事例は自社ブログを通じて公開されている。[1]
| 過去に Kimsuky グループが使用した XML ファイル名 | sch_0514.db |
| 今回の事例で Kimsuky グループが使用した XML ァイル名 | sch.db, sch_ha.db |
[表 9] XML ファイル名の類似性
3. 同一のデコイファイルの使用
過去に Kimsuky グループが使用したデコイファイルが、今回の事例と同一の LNK ファイルでも使用されていた。過去の事例は自社 TI コンテンツとして公開されている。

[図 10] 過去に Kimsuky グループが使用した正常なデコイファイル
5. まとめ
今回の分析では、Kimsuky グループが最近活用した悪性 LNK ファイルの配布方式において実行構造の変化が確認された。過去と比較すると、中間段階のスクリプトが追加され、全体的な実行フローがより複雑かつ多層的に発展していることが観察される。また、Dropbox のような正規のクラウドサービスを悪用したマルウェア配布方式や、Python を利用した検知回避の試みも特徴的に見受けられる。こうした変化は、攻撃フローの大枠は維持しつつ、詳細な実装を継続的に変形させることで検知を回避しようとする攻撃者の戦術的特徴を示している。
文書ファイルに偽装された LNK ファイルは、外見だけでは悪性かどうかを判断することが難しいため、出所不明のファイルを実行する行為には十分な注意が必要である。
6. 参考資料
[1] https://asec.ahnlab.com/jp/88519/
Categories: マルウェア

