ShimCache でラテラルムーブメントを検出する

読了 1 分

TL;DR. ラテラルムーブメントツール(PsExec、wmic、at / schtasks、リモート PowerShell)は送信先ホストに ShimCache エントリ(ドロップされたサービスバイナリ)を残し、しばしば送信元にも残します。多くのホストにわたる AppCompatCache の diff は攻撃者が辿った経路を浮上させます。

ShimCache は通常、シングルホストアーティファクトとしてフレーミングされます。インシデント対応における真の力はクロスホストです。それが触れたすべてのマシンで互換性のために検査された同じツーリングが、相関可能な痕跡を残します。これがラテラルムーブメントを再構築するために実際に使う方法です。

キャッシュの中のラテラルムーブメント

リモート実行技術は送信先で実行ファイルをドロップまたは呼び出します。それぞれが特徴的なパスを残します。

技術送信先 ShimCache の手がかり
PsExec / SMB サービス実行C:\Windows\PSEXESVC.exe または C:\Windows\ 内のランダムな 8 文字サービスバイナリ
sc \\host create攻撃者が名付けたサービスバイナリ、しばしば C:\Windows\ または \PerfLogs\
WMI (wmic process call create)C:\Windows\Temp\ またはユーザー書き込み可能ディレクトリ配下のペイロードパス
スケジュールタスク (schtasks /s)タスクアクションバイナリ、頻繁に C:\Users\Public\
リモート PowerShell / WinRMpowershell.exe プラスステージングされた .exe
Impacket smbexec / wmiexec\Windows\Temp\ 配下のランダム名 .bat と .exe

C:\Windows\ 内のランダム名サービスバイナリは、ShimCache で最もシグナルの高い所見の 1 つです。ShimCache でマルウェアを狩る でトリアージルールとして扱っています。

送信元ホスト側

送信元ホストはしばしば攻撃ツーリング自体に対する ShimCache エントリを示します:PsExec.exe、対話的に使用された wmic.exe、カスタムムーバ、ポストエクスプロイトフレームワークローダ。「ホスト A 上のツール」と「ホスト B 上のサービスバイナリ」を妥当な時間枠内でペアにするのが、ラテラルムーブメント推論の核心です。

Sysmon Event ID 3 ネットワーク接続 と Security 4624 ログオンタイプ 3 と相互参照してループを閉じてください。EVTX parser は関連するイベント ID をカバーします。

クロスホスト diff ワークフロー

  1. スコープ内のすべてのホストから SYSTEM ハイブを収集します。SYSTEM ハイブの取得 を参照。または艦隊収集には Velociraptor を使用。
  2. それぞれを解析し CSV にエクスポートします。バッチ作業には Eric Zimmerman の AppCompatCacheParser が正解です。
  3. パスを正規化し、共有された異常なバイナリで diff します。同じランダムサービス名やステージングパスが複数のホストに現れることが、移動経路です。
  4. タイムスタンプではなく挿入順でホストを並べてください。タイムスタンプは ファイルの mtime であり、イベント時刻ではない ので、単独でホップを順序付けることはできません。
  5. 各ホップを Security 4624(ログオンタイプ 3)、4648(明示的な認証情報)、7045(サービスインストール)、SHA-1 帰属には AmCache で裏付けてください。

これは完全な プログラム実行タイムライン に自然に融合します。レポートのために技術を ATT&CK T1021(Remote Services)と T1570(Lateral Tool Transfer)にマッピングしてください。

注意点

ShimCache はクリーンシャットダウン時にのみフラッシュされるので、まだ稼働中のホストには決定的なエントリがまだ書き込まれていないかもしれません。ホストが触られなかったと結論する前にメモリを確認してください(メモリダンプからの抽出)。タイムスタンプは決して単独でホップを順序付けません。挿入順とイベント時刻には EVTX と USN ジャーナル に頼ってください。値をクリアする攻撃者は自分の手がかりを残します。ShimCache アンチフォレンジック を参照してください。

ハイブを迅速に diff するには、Shimcache Parser でそれぞれを解析してクライアントサイドで比較してください。EZ のツールからの CSV エクスポートは、より大きなセットには pandas や csvdiff に直接入ります。

さらに読む

関連記事