PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。
CTF・セキュリティ学習

【資格情報窃取編】LSASS・SAM・DPAPIから鍵を抜く流れと守り方|CTF思考フレームワーク #36

かも次郎とアンペンが「資格情報窃取」を解説するマスコットイラスト
安全に生きたい編集部

こんにちは、アンペンです!

ここから新章、侵入後と調査に入ります。攻撃者が侵入に成功した後、どう動くかを攻撃者目線で追いつつ、守る側の対策を学んでいきます。

最初は、Windowsで多用される資格情報窃取を扱います。LSASS・SAM・DPAPIから鍵が抜かれる流れと、それを止める守り方を学びましょう。

ログイン中の認証情報って、PCのどこに保存されてるの?

Windowsだと、メモリ(LSASS)・レジストリ(SAM)・保護API(DPAPI)に分散して保管されているんだ。攻撃者は管理者権限を取った後、これらから鍵を抜きにいくよ。

ここから章が変わって、テーマは『侵入された“後”』。これまでは“入られないための守り”が中心でしたが、現実には、入口をすべて完璧に塞ぐのは難しい。だから「万一入られても、そこから先へ広げさせない」という発想が、同じくらい大切になります。その最初の一手が、今日の“資格情報窃取”。攻撃者が侵入後にまず狙う『鍵束探し』を、銀行の金庫のたとえで見ていきます。

まず結論

侵入後の攻撃者は、サーバ・端末内の認証情報を抜き出して横展開につなげます。WindowsではLSASS(メモリ)・SAM(レジストリ)・DPAPI(保存された認証情報)が代表的な標的。守りはCredential Guard・LSA保護・最小権限・EDR の組み合わせです。

この記事で分かること

  • Windowsで認証情報がどこにあるか(LSASS/SAM/DPAPI)
  • 攻撃者が鍵を抜くときの基本シナリオ
  • Credential Guard・LSA保護・EDR による守り方
難易度:上級向け 所要時間:11分 体験:保護機能の有効化を点検 おすすめ:#35の後

📖 はじめてのWebセキュリティ #36|資格情報窃取編
『侵入後に最初に狙われる』認証情報の保管場所と、その守り方を学びます。 シリーズ一覧を見る →

⚠️ 大事なお約束
mimikatz等の資格情報窃取ツールは、自分が管理する検証環境・CTFのみで使ってください。他者のPC・サーバでの実行は不正アクセス禁止法違反です。

Windowsの認証情報3つの保管場所

Windowsは、ログイン後のセッションを維持するために認証情報を複数の場所に置きます。

  • LSASS(メモリ):ログイン中のユーザのハッシュ・チケット・場合によっては平文パスワードがメモリ上に存在
  • SAM(レジストリ):ローカルアカウントのパスワードハッシュ。SYSTEMキー併用で復元される
  • DPAPI(暗号化された保存物):ブラウザ保存パスワード・RDP資格情報・Wi-Fiキー等、Windowsが暗号化して保存している秘密

これらは、管理者権限・SYSTEM権限・LSAアクセスといった高い権限を取られると、まとめて抜かれる可能性があります。

ここで大事なのは、3つの保管場所が“バラバラに守られているわけではない”こと。鍵を握っているのは、結局『管理者(やSYSTEM)権限』という一本のマスターキーです。これを取られると、メモリも、レジストリも、暗号化された保存物も、まとめて開けられてしまう。だから前章までの“権限を取らせない守り”と、この章の“取られた後の守り”は、地続きでつながっているんです。

そもそも、なぜPCの中に認証情報が残っているのでしょう。理由は“便利さ”です。一度ログインすれば、ファイル共有や社内サービスに、いちいちパスワードを打たずにアクセスできますよね。あれは、ログイン時の認証情報をWindowsがメモリなどに覚えていてくれるから。つまり“シングルサインオンの便利さ”の裏側で、鍵がPCの中に置かれている。攻撃者は、その置き場所を正確に知っていて、そこを狙ってくるわけです。

図解:ログインから資格情報窃取までの流れ

Windowsログイン後にLSASS・SAM・DPAPIに分散した認証情報を、管理者権限取得後にまとめて抜き取る流れ図
守りはCredential Guard+LSA保護+EDRで『抜けない構造』を作る。

正規ログインで認証情報がメモリ等に置かれ、その後攻撃者が高権限を取ると、そこから鍵を抜き出す流れになります。

現金・鍵リスト・貸金庫の3つの金庫が警備室から到達できる銀行構造のたとえ図
警備室を取られると3つの金庫まで到達できる。Windowsの管理者奪取と同じ構造。
🏦 たとえるなら、銀行の金庫構造

銀行には『現金そのもの(LSASSのメモリ)』『金庫の鍵リスト(SAM)』『お客様の貸金庫(DPAPI)』が分かれて保管されています。普段は壁と権限で守られていますが、警備室の管理者権限を取られると、3つすべてに到達できてしまう設計になっています。資格情報窃取は、この『管理者権限後の動き』が中心です。

ここで覚える用語:mimikatz
Windowsの認証情報窃取ツールとして広く使われています。LSASSのメモリからハッシュ・チケット・場合により平文パスワードを取得、SAMの復号、DPAPIマスターキー操作などが可能です。マルウェアにも組み込まれることがあり、EDRが必ず検知対象にする道具です。

mimikatzは、この分野では“伝説の万能ドライバー”のような存在です。メモリから鍵を抜く、レジストリの鍵を取り出す、暗号化された保存物を開ける——認証情報まわりの“悪さ”がほぼ何でもできてしまう。あまりに有名なので、今やどのEDR(端末監視)も真っ先に検知対象にしています。逆に言えば、mimikatzのような道具が“動けてしまう”環境かどうかが、守りの一つの目安にもなります。

3つの保管場所の役割と狙われ方

3つの保管場所を、ざっくり整理しておきましょう。『LSASS』はメモリ上の鍵束で、いま使っている本人の鍵がここに。『SAM』はそのPC自身のアカウントのパスワード(の指紋)。『DPAPI』は、ブラウザ保存パスワードやWi-Fiキーなど、Windowsが暗号化してしまってある秘密。場所も中身も違いますが、どれも“次の一歩(横展開)”の材料になる、という点で共通しています。

LSASS / SAM / DPAPI のまとめ

LSASS・SAM・DPAPIの3つの認証情報保管場所を示したカード型インフォグラフィック
①LSASS ②SAM ③DPAPI。守りはCredential Guard+LSA保護+LAPS+EDR。
  • LSASS:ログイン中ユーザのハッシュ・Kerberosチケット。SeDebugPrivilege等を持つと dump 可能
  • SAM:ローカルアカウントのNTLMハッシュ。Pass-the-Hashの材料になる
  • DPAPI:ブラウザ保存パス・RDPセッション情報。マスターキーが取られると一括復号

これらが揃うと、攻撃者は『他のサーバ・サービスでも本人として動く』ことが可能になり、横展開につながります(次回 #37で詳述)。

ここがこの章の通奏低音です。資格情報窃取は、それ自体が“ゴール”ではありません。本当の狙いは、抜いた鍵を使って“隣のサーバ、その隣のサーバ”へと侵入を広げること——いわゆる横展開です。1台のPCを踏み台に、組織全体へ。だから守る側にとっては、「1台抜かれること」より「1台から全体に広がること」を防ぐほうが重要。鍵が1セット漏れても、それで他が開かない設計が効いてきます。

この回は“上級向け”ですが、練習は地に足のついたものです。mimikatzで攻撃を“する”のではなく、自分のWindows環境で「そういう攻撃を防ぐ機能が、ちゃんとONになっているか」を点検するだけ。Credential Guardは有効?余計な管理者アカウントは残っていない?——もちろん他人のPCや本番でツールを動かすのは厳禁。自分の検証環境の中で、守りの状態を確かめましょう。

CTFでやってみよう:保護機能の有効化を点検

やってみよう / 自分の環境・CTFのみ

自分のWindows環境で、Credential Guard等の保護状況を確認しよう

目的は実際の窃取ではなく、『保護機能が有効か』を確認することです。

  1. 自分のWindows端末/Server で msinfo32 を開き、デバイスガード関連の項目を確認
  2. Credential Guardが有効か、LSA保護(RunAsPPL)が有効かを確認
  3. ローカル管理者アカウントが不要に作られていないか棚卸し
  4. ブラウザに保存中のパスワードが不必要に多くないか確認
  5. EDR/XDR(Defender for Endpoint等)が動いているか・ポリシーが有効化されているか確認
他人のPC・本番サーバでmimikatz等を実行することは絶対にやめてください。確認は自分の検証環境だけです。

守りの主役、『Credential Guard』という機能を、会話で押さえておきましょう。

管理者権限を取られたら、メモリの中身なんてどうせ全部見られるんじゃないの?

昔はそうだったんだ。でもCredential Guardは、その常識を変えた。仕組みはこう——鍵束(認証情報)を、OS本体から切り離した“もう一つの隔離された小部屋(仮想化された領域)”に保管する。すると、たとえ管理者権限を取った攻撃者でも、その小部屋の中までは手が届かない。「管理者=何でもできる」だったところに、“管理者でも開けられない金庫”を一つ足したイメージだよ。だから現代のWindows防御では、まずこれをONにするのが定石なんだ。

守る側なら、「Credential Guard+LSA保護+最小権限+EDR」

資格情報窃取の守りは、「そもそも抜けない構造」「抜くツールを検知」「抜かれても被害最小化」の3層で組みます。

守るための基本チェック
  • Credential Guardを有効化し、LSASS内の秘密を仮想化分離で保護
  • LSA保護(RunAsPPL)を有効化し、任意プロセスからのLSASS dumpを抑止
  • ローカル管理者の最小化(LAPSでパスワード管理・固有化)
  • EDR/XDRで mimikatz・LSASS dump・SAM操作のパターンを検知
  • 定期的にハイバネーション/メモリダンプの取り扱いポリシーを点検
  • テレワーク端末はBitLocker等でディスク全体暗号化し、物理アクセス時の被害を限定

ログイン中の認証情報を守るのは、Windowsの設計レベルの話なんだね。

そう。Credential GuardとLSA保護を組み合わせて『そもそも抜けない』状態を作るのが現代の基本だよ。

ここまでをひと言で言うと、資格情報窃取の守りは『抜けない・気づく・広がらない』の3段構え。Credential GuardやLSA保護で“そもそも抜けない”ようにし、EDRで“抜こうとする動きに気づき”、最小権限やLAPSで“1台漏れても他に広がらない”ようにする。入られる前提に立つと、この三つがバランスよく効いてきます。

まとめ:『抜けない構造+検知+被害最小化』

今回のポイント
  • Windowsの認証情報はLSASS/SAM/DPAPIの3か所
  • 管理者・SYSTEM権限を取られるとまとめて抜かれやすい
  • 守りはCredential Guard+LSA保護+LAPS+EDR
  • 次工程(横展開)への接続を断つために、抜かれても被害が広がらない設計が重要

今日の持ち帰りは『入られた後の“鍵束探し”を、想定しておく』です。完璧な水際防御が難しい以上、「侵入後に何を狙われるか」を知っておくことが、次の守りにつながります。鍵はPCの中に必ず残る——それを“抜けない場所に隔離し、抜く動きを検知し、漏れても広がらせない”。攻めの一手目を知れば、守りの一手目も見えてきます。

次回は、抜いた認証情報を使って隣の端末・サーバへ進む横展開を扱います。Pass-the-Hash/Pass-the-Ticket/PsExec・WMIで広がる侵入を見ていきましょう。

次に読みたい記事

参考資料

記事URLをコピーしました