MENU

Mimikatz

Mimikatz は、侵害後(post-exploitation)に Windows の認証情報(NTLM ハッシュ、Kerberos チケット等)を抽出・悪用するために利用される代表的ツールです。
ランサムウェアでは、横展開(Lateral Movement)や特権維持のために「資格情報の窃取」が重要工程になり得るため、本稿では Mimikatz が狙う “情報の種類”と“成立条件”、および “多層防御(OS機能・運用・監視)” の観点で整理します。

Mimikatz が狙うもの

1. 資格情報(Credential)の抽出

  • LSASS メモリやダンプから、以下が狙われます
    • NTLM ハッシュ
    • Kerberos チケット(TGT/TGS)
    • (環境によっては)平文に近い形で残る資格情報
  • 重要:多くの抽出は ローカル管理者権限以上や、LSASS へアクセスできる状態が前提になります。 Microsoft Learn+1

2. 取得した資格情報の“再利用”(横展開)

  • Pass-the-Hash(PtH):NTLM ハッシュを用いて認証
  • Pass-the-Ticket(PtT):Kerberos チケットを再利用
  • これらは「侵害端末内で取れたものを使って、別端末・別サーバへ移動する」局面で使われがちです。 Microsoft Learn

3.ドメイン侵害後の偽造(Ticket Forgery)

  • Golden/Silver Ticket などは、すでにドメイン中枢が侵害されている(例:krbtgt 等の秘密が漏れている)状態が前提で、初期侵入というより「侵害の決定打/永続化」に近い分類です。

代表的なモジュール

  • privilege:デバッグ特権(SeDebugPrivilege)などを有効化する操作
  • sekurlsa:LSASS 上の資格情報に関する操作が中心
  • kerberos:Kerberos チケットの操作(読み込み・注入・一覧等)

まず privilege は、直接的に資格情報を盗む機能ではありません。Windows には、重要なプロセスやメモリ領域を保護する仕組みがありますが、privilege モジュールは、デバッグ特権(SeDebugPrivilege など)を有効化することで、これらの保護にアクセスできる状態を作ります。これは「権限昇格」そのものではなく、後続の攻撃を成立させるための準備段階にあたります。つまり、OS が本来用意している安全装置を一時的に緩める役割を担っています。

次に sekurlsa は、Windows の認証を司る LSASS(Local Security Authority Subsystem Service)プロセスを対象とします。ユーザーや管理者がログオンすると、認証方式に応じて NTLM ハッシュや Kerberos チケットなどの認証情報が、一時的に LSASS のメモリ上に保持されます。sekurlsa は、この「ログオンによって必然的に発生する状態」を悪用し、メモリ上に存在する資格情報を取得しようとします。管理者がログオンしている端末でこれが行われると、その資格情報は他のサーバーや端末へのアクセスにも使えるため、攻撃者にとって横展開の起点となります。

そして kerberos は、取得したパスワードやハッシュを使うのではなく、Kerberos 認証で発行されたチケットそのものを攻撃対象にします。Kerberos では、ユーザーが正当であることを示す TGT や、特定のサービスにアクセスするための TGS が発行されますが、これらのチケットは有効期限内であれば再利用が可能です。kerberos モジュールは、この性質を利用し、チケットを読み込んだり別のセッションに注入することで、パスワードを一切使わずに認証済みの状態を再現します。その結果、ログ上は正規ユーザーによる通常の Kerberos 認証に見え、検知が非常に難しい横展開が成立します。

この三つのモジュールは独立しているように見えますが、実際には密接に連動しています。privilege によって保護を外し、sekurlsa でログオン中の資格情報を取得し、kerberos によってその認証状態を使い回す、という流れが典型的です。重要なのは、これらの攻撃は OS の欠陥ではなく、「管理者が一般端末にログオンする」という運用上の前提を突いて成立している点です。

そのため、防御の本質はツール対策ではなく、管理者資格情報を不用意に端末へ持ち込まない設計と運用にあります。管理作業を専用端末に限定し、LSASS の保護や Credential Guard を有効化することで、これらのモジュールが前提とする攻撃条件そのものを崩すことが可能になります。

代表的攻撃 Pass-the-Hash(PtH)

Pass-the-Hash(PtH) は、NTLM 認証で使用される NTLM ハッシュそのものを「パスワードの代わり」として再利用する攻撃手法であり、ハッシュが漏洩した時点で認証情報が完全に破られた状態になります。Windows では、ユーザーが NTLM を用いてログオンやネットワークアクセスを行うと、計算された NTLM ハッシュが一時的に LSASS のメモリ上に保持されるため、管理者権限を得た攻撃者はこれを取得し、SMB や WMI、サービス起動などを通じて他の端末やサーバーへ横展開できます。しかし、Domain Admins で一般端末にログオンしない運用を徹底すると、Domain Admins の NTLM ハッシュ自体がその端末の LSASS に生成・保存されないため、攻撃者が端末を侵害しても「使い回せる管理者ハッシュ」が存在せず、PtH によるドメイン全体への横展開が成立しなくなります。つまり、PtH は技術的に防ぐというより、高権限アカウントを端末にログオンさせないことで攻撃条件そのものを消すことで阻止できるのです。

防御の考え方

Mimikatz の悪用を防ぐには、複数のレイヤーで対策が必要です。

OS / セキュリティ機能(まずここで“抜けにくく”)

  • Credential Guard(推奨)
    • VBS により秘密情報を隔離し、PtH/PtT 系の被害を抑止します。 Microsoft Learn+1
  • 追加の LSA 保護(LSASS 保護プロセス化)
  • ASR ルール:LSASS からの資格情報盗用をブロック
    • Mimikatz 等の典型手口を直接狙い撃ちしやすい設定です。 Microsoft Learn+1
  • Defender 改ざん防止
    • セキュリティ機能を“先に止められる”ことを抑止し、検知と防御の前提を守ります。

認証/プロトコル制御(横展開を止める)

  • NTLM 制限(特に Outgoing)
    • 端末から外へ出ていく NTLM を監査・遮断して、PtH/Relay 等の横展開を抑えます。
    • 影響が出やすいので、一般に 監査→例外整備→拒否の順で進めます。 Microsoft Learn

運用(管理者資格情報を“端末に残さない”)

  • Domain Admin 等の強い資格情報を 一般端末で使わない(PAW/踏み台・Tier分離)
  • サーバ管理は 特権用端末+最小権限を原則にする
  • 端末ローカル管理は LAPS 等で個別・自動更新(共通パスワードを作らない)

監視・検知

  • Defender for Endpoint / EDR の ASR ブロック検知(LSASS へのアクセスブロック等)
  • LSASS ダンプを疑うふるまい(不審プロセスが LSASS を触る、ダンプファイル生成など)
  • NTLM 制限の監査ログ(Outgoing NTLM の監査) Microsoft Learn
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次