DinDoor、DenoRAT、NightshadeC2で進化するTAG-150の工作内幕
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
TAG-150は、Denoベースのマルウェアを中心に高度なマルチステージの侵入チェーンを使用しています。このキャンペーンは、ClickFixスタイルのソーシャルエンジニアリングに依存してMSIインストーラーの実行をトリガーし、最終的にDinDoor、DenoRAT、そしてNightshadeC2を展開します。Denoランタイムを活用することで、攻撃者は高度なリモートアクセスと情報盗取能力を得ています。
調査
eSentireの脅威対応ユニットは、ある金融顧客の環境内でClickFixスタイルのコマンドを阻止しました。この調査により、AI生成のPowerShellステージを伴うWindows Runプロンプトコマンドから始まる感染シーケンスが明らかになりました。 Griffin20.ps1は、Denoランタイムをインストールするために用いられました。後のステージでは、DinDoor、DenoRAT、およびNightshadeC2 RATを配信するPythonベースのインメモリーローダーが関与しています。
軽減策
操作上可能であれば、グループポリシーオブジェクトを通じてWindows Runプロンプトを無効にすることを検討すべきです。また、ClickFixスタイルの誘導の成功を減少させるために、強力なフィッシングとセキュリティ意識向上のトレーニングプログラムを実施することを推奨します。次世代のアンチウイルスまたはエンドポイント検出および応答ソリューションを展開することは、可視性、検出、および封じ込めに不可欠です。
応答
この活動が検出された場合、影響を受けたホストは直ちに孤立させ、感染チェーンを封じ込めるべきです。組織は、迅速な封じ込めと完全な修復を支援するために、24時間365日の管理された検出および応答プロバイダーまたは同等のインシデント対応チームを確保すべきです。特定されたDenoベースのマルウェアコンポーネントの継続的な監視も推奨されます。
攻撃の流れ
検出
持続性の可能性のあるポイント [ASEPs – ソフトウェア/NTUSER ハイブ] (レジストリエベントを介して)
表示
疑わしいフォルダーからのPython実行(cmdlineを介して)
表示
Powershellを介したダウンロードまたはアップロード(cmdlineを介して)
表示
Denoランタイムの悪用試行の可能性(プロセス作成を介して)
表示
LOLBAS Conhost(cmdlineを介して)
表示
Powershellからの.NETの疑わしいメソッドの呼び出し(powershellを介して)
表示
疑わしい実行可能ファイルのダウンロード(プロキシを介して)
表示
IOCs(HashSha256): DinDoor、DenoRAT、およびNightshadeC2を検出するため: TAG-150の進化する手口の分析
表示
DenoRATに関連するユーザおよびメッセージイベントエンドポイントへのGETリクエストを検出する [Windowsネットワーク接続]
表示
シミュレーションの実行
前提条件: テレメトリー&ベースラインの事前チェックが通過している必要があります。
理由: このセクションは、検出ルールをトリガーするための対抗技術(TTP)の正確な実行を詳述します。コマンドと説明は、特定されたTTPを直接反映させ、検出ロジックで予期される正確なテレメトリーを生成することを目的とします。抽象的または無関係な例は誤診につながります。
-
攻撃の説明&コマンド: 攻撃者はWindowsホストに確実な足場を築き、DenoRATビーコンを起動しようとしています。従来のシグネチャベースのEDRを回避するために、マルウェアは”リビングオフザランド”ネットワークパターンを使用して、標準のHTTP/Sを介して通信します。マルウェアはC2サーバーと接触するために指定されたエンドポイントにGETリクエストを送信しようとします
/userand/message-event。このシミュレーションは、これらの特定の文字列がウェブアクセスログに現れるとSOCの検出ロジックがトリガーされることを確認するために、ビーコン動作を模倣します。 -
回帰テストスクリプト:
# DenoRAT C2 Beacon Simulation Script # このスクリプトはDenoRATが検出ルールをトリガーするために使用する特定のHTTP GETリクエストをシミュレートします。 $C2_URL = "http://localhost" # ローカルテストウェブサーバーアドレスに置き換えます $Endpoints = @("/user", "/message-event") Write-Host "[+] DenoRAT C2シミュレーションを開始します..." -ForegroundColor Cyan foreach ($Endpoint in $Endpoints) { $Target = $C2_URL + $Endpoint Write-Host "[*] C2チェックインをシミュレートします: $Target" -ForegroundColor Yellow try { # GETリクエストの実行 $Response = Invoke-WebRequest -Uri $Target -Method Get -ErrorAction SilentlyContinue Write-Host "[+] リクエスト送信済み。ステータスコード: $($Response.StatusCode)" -ForegroundColor Green } catch { # エンドポイントが実際に存在しない場合、404が予期されることがテレメトリのテストにおいては問題ありません Write-Host "[!] リクエスト送信済み (予期される404/接続エラー): $_" -ForegroundColor Gray } Start-Sleep -Seconds 2 } Write-Host "[+] シミュレーション完了。" -ForegroundColor Cyan -
クリーンアップ コマンド:
# シミュレーションスクリプトによって永続的な変更は行われません。 # ウェブサーバーログを必要に応じてクリーンアップするには(注意:これによりログが削除されます!): # Remove-Item -Path "C:inetpublogsLogFilesW3SVC1*.log" -Force Write-Host "[+] クリーンアップ: 永続的なアーティファクトは作成されませんでした。" -ForegroundColor Green