2種類のマルウェアローダーを比較:ClickFix配信からC2へ
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、ClickFixとTerminalFix技術を使用して、Lorem Ipsum LoaderやAxolotl Loaderを含むマルウェアローダーを配信することがますます増えています。これらのローダーは、DLLサイドローディング、MSIインストーラー、Node.js実行を通じてランサムウェア展開の前兆としてよく利用されます。キャンペーンには、ntdllのアンフックやカスタムDLLセクション内に埋め込まれた暗号化ペイロードといった高度な回避技術も含まれています。
調査
研究者は、Lorem IpsumとAxolotl Loaderのサンプルを分析し、その配信チェーンと技術的特徴を調査しました。調査では、トロイの木馬化されたMSIインストーラー、多段階のPowerShellスクリプト、そして特徴的な .cpoc セクションがリソースストレージに使用されているDLL内に見つかりました。比較分析では、C2通信、回避メカニズム、持続性技法における二つのローダーファミリー間の違いも明らかになりました。
緩和策
組織は、DLLサイドローディングや、バッチファイルを起動するPowerShellなどの疑わしい親子プロセス関係をSysmonテレメトリで監視する必要があります。MSIインストーラーの実行に対する厳格な管理の施行と、ユーザー書き込み可能ディレクトリの未署名DLLの検出を推奨します。また、Firefox/143などの異常なユーザーエージェントや、アクティブな感染に関連する疑わしいC2登録パターンのために、ネットワークトラフィックを調べるべきです。
対応
悪意のある活動が検出された場合、影響を受けたホストを隔離し、C:WindowsTempやC:UsersPublicなどのユーザー書き込み可能ディレクトリのフォレンジック分析を行なってください。ランダム化された名前を使用しているスケジュールされたタスクとレジストリランキーを探します。既知のC2ドメインとIPアドレスに対してDNSおよびプロキシログを遡及検索して、妥協の範囲を特定します。
攻撃フロー
この部分はまだ更新中です。
検出
持続性の可能性のあるポイント [ASEPs – Software/NTUSER Hive](via registry_event)
短いスクリプト名の使用による可能な実行(via cmdline)
schtasksが疑わしいディレクトリ/バイナリ/スクリプトを示す(via cmdline)
疑わしいPowerShell文字列(via powershell)
PowerShellからWindows APIの疑わしい関数を呼び出す(via powershell)
パブリックユーザープロファイルの疑わしいファイル(via file_event)
疑わしいスケジュールされたタスク(via audit)
IOCs (HashSha256)で検出する: ClickFixからC2へ: 2つのマルウェアローダーの比較分析 パート2
IOCs (HashSha256)で検出する: ClickFixからC2へ: 2つのマルウェアローダーの比較分析 パート1
IOCs (HashMd5)で検出する: ClickFixからC2へ: 2つのマルウェアローダーの比較分析
IOCs (SourceIP)で検出する: ClickFixからC2へ: 2つのマルウェアローダーの比較分析
IOCs (DestinationIP)で検出する: ClickFixからC2へ: 2つのマルウェアローダーの比較分析
UUID名付きミューテックスで自身をリランチするサイドロードホスト [Windowsプロセス作成]
letsdiskuss.comでの悪意のあるリクエストとコマンド&コントロールパターンの検出 [Windowsネットワーク接続]
マイクロソフトの署名済み実行ファイルによるDLLサイドローディングとレジストリランキーの持続性 [Windows Sysmon]
悪意のあるPowerShellとDLL活動の検出 [Windows Powershell]
シミュレーション実行
-
攻撃の流れ&コマンド: 敵は最初のアクセスを取得し、モジュラーマルウェアローダーを展開しようとしています。単純なシグネチャベースのAVを回避するため、PowerShellを使用してカスタムローダーを呼び出します。このローダーは特定のランタイムライブラリ (
libgcc_s_seh-1.dll) を利用し、ペイロードをメモリ内で初期化するための特定のフラグ (-AgentDll) を必要とします。攻撃者の目的は、これらのコンポーネントをPowerShell駆動の実行チェーンを通じてロードすることにより、持続的なC2接続を確立することです。 -
回帰テストスクリプト:
# 検出バリデーションのシミュレーションスクリプト # このスクリプトはシグマルールで定義された動作を模倣します $workingDir = $env:TEMP $dllName = "libgcc_s_seh-1.dll" $dllPath = Join-Path $workingDir $dllName Write-Host "[+] シミュレーションのためにダミーDLLを作成中..." New-Item -Path $dllPath -ItemType File -Force | Out-Null Write-Host "[+] コマンドラインで選択1をトリガーするためにPowerShellコマンドを実行中(DLL名)..." Start-Process powershell.exe -ArgumentList "-Command `& {Write-Output 'Loading $dllPath'}`" -NoNewWindow Write-Host "[+] コマンドラインで選択2をトリガーするためにPowerShellコマンドを実行中(AgentDllフラグ)..." Start-Process powershell.exe -ArgumentList "-AgentDll -DepsDir C:Temp -Shim" -NoNewWindow Write-Host "[+] シミュレーション完了。" -
クリーンアップコマンド:
# クリーンアップスクリプト $workingDir = $env:TEMP $dllName = "libgcc_s_seh-1.dll" $dllPath = Join-Path $workingDir $dllName if (Test-Path $dllPath) { Remove-Item -Path $dllPath -Force Write-Host "[+] ダミーDLLをクリーンアップしました。" } else { Write-Host "[!] DLLが見つかりません、クリーンするものはありません。" }