新しいKimsuky LNKマルウェアがマルチチャネルC2インフラを使用
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Kimsukyグループは、国内の金融文書に偽装した新しいLNKベースのマルウェアキャンペーンを展開しています。この作戦は、GitHub、WordPress、Dropboxなどの信頼できるサービスを利用して、コマンドの配信、感染通知、データ窃取などの機能を分離するマルチチャネルのコマンドアンドコントロール(C2)アーキテクチャに依存しています。このモジュラー設計は、正規のインフラストラクチャとLOLBinを悪用することで、攻撃者が従来のネットワーク防御を回避するのに役立ちます。
調査
調査により、以下を通じて起動される悪意のあるLNKファイルから始まる多段階実行チェーンが明らかになりました。 conhost.exe。攻撃は certutil.exe を悪用してペイロードのデコードとダウンロードを行い、NirCmdを使用して秘密裏に実行します。攻撃者はまた、GitHubを通じてコマンドを配布するデッドドロップ技術を採用し、 MachineGuid の値を使用してユニークな被害者の識別とターゲットタスクの配信を行います。
緩和策
ユーザーは、LNKファイルを判別しやすくするために、既知のファイルタイプの拡張子を非表示にするWindows Explorerの設定を無効にすべきです。組織は certutil.exe and taskhostw.exe などのLOLBinの不審な使用を監視し、許可されていないスケジュールタスクに対して厳格な制御を実施すべきです。GitHubやDropboxのような信頼性のあるサービスへの異常なアウトバウンドトラフィックも、異常な通信パターンについて監視する必要があります。
対応策
悪意のある活動が検出された場合、影響を受けたホストはすぐに隔離され、さらなるデータ窃取や横方向の移動を防ぐべきです。対応者はシステムの MachineGuid を特定し、キャンペーンに使用される関連するGitHubリポジトリを調査すべきです。持続性を確認するためにスケジュールタスクとレジストリキーが確認されるべきであり、Node.js、SSH、または類似ツールを通じて確立された許可されていないリバーストンネルも調査されるべきです。
攻撃の流れ
この部分はまだ更新中です。
検出
可能なシステム列挙 (cmdline経由)
異常なプロセスによって開始された可能性があるGitHubファイルダウンロード (network_connectionを介して)
システムネットワーク設定の発見の可能性 (cmdline経由)
LOLBAS Conhost (cmdline経由)
システム実行ファイルをエバージョンのためにコピーおよびリネームした可能性 (cmdline経由)
第三者サービス/ツールを介したデータ流入/流出/C2の可能性 (proxy経由)
第三者サービス/ツールを介したデータ流入/流出/C2の可能性 (dns経由)
新しいKimsuky LNKマルウェアがマルチチャネルC2インフラを使用していることを検出するためのIOC (HashMd5)
KimsukyグループLNKマルウェアのクラウドサービスを使用するコマンドアンドコントロール [Windowsネットワーク接続]
KimsukyグループLNKマルウェアおよびセットアップファイル検出 [Windowsファイルイベント]
LOLBin技術を使用したKimsukyグループLNKマルウェアの検出 [Windowsプロセス生成]
シミュレーション実行
-
攻撃のストーリー & コマンド: 攻撃者は、悪意のある
.lnkファイルをフィッシングメールを通じて配信しました。ユーザーがリンクをクリックすると、隠されたコマンドシェルが実行されます。攻撃者の目的は、一見無害なファイルに格納された隠されたペイロードをデコードすることです。これを達成するために、攻撃者はconhost.exe --headlessを使用してウィンドウがポップアップしないようにし、次にcertutil.exe -decodeを呼び出して、Base64でエンコードされたファイルを実行可能形式に変換します。この一連の手順は、KimsukyグループのLNKベースの配信の特徴です。 -
レグレッションテストスクリプト:
# Kimsuky LNKマルウェアTTPのシミュレーション # このスクリプトはダミーのエンコードファイルを作成し、それから検出ルールをトリガーするために特定の組み合わせを使用します。 $dummyFile = "$env:TEMPencoded_payload.txt" $decodedFile = "$env:TEMPmalicious.exe" $base64Content = "SGVsbG8gV29ybGQh" # "Hello World!" in Base64 # 1. "encoded"ファイルを作成する $base64Content | Out-File -FilePath $dummyFile -Encoding ascii # 2. 検出ルールをトリガーする: # 'conhost.exe --headless' AND ('certutil.exe -decode' OR 'taskhostw.exe exec hide')が必要 # そして親は' dbg.exe 'であってはならない。 Write-Host "[+] Kimsuky LNK実行順序をシミュレート中..." # Start-Processを使用してLNKファイルがコマンドラインを呼び出す方法をシミュレート # 注意:コマンドライン引数によってconhostの動作をシミュレートします Start-Process "conhost.exe" -ArgumentList "--headless", "cmd.exe", "/c", "certutil.exe -decode", "$dummyFile", "$decodedFile" -WindowStyle Hidden Write-Host "[+] シミュレーションコマンド送信済み。検出をSIEMで確認してください。" -
クリーンアップコマンド:
# シミュレーションのアーティファクトをクリーンアップ Remove-Item -Path "$env:TEMPencoded_payload.txt" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPmalicious.exe" -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。"