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

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

【資格情報窃取編】LSASS・SAM・DPAPIから鍵を抜く流れと守り方|CTF思考フレームワーク #36 アイキャッチ画像
安全に生きたい編集部

広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

資格情報の窃取って、パスワードが盗まれるだけじゃないの?😅

それだけじゃないんです。WindowsのLSASSプロセスメモリには、ログイン中のユーザーの認証情報(NTLMハッシュ、Kerberosチケット)が丸ごと展開されていて、ここを抜けば組織全体のADドメインが乗っ取れます。Mimikatzが代表的なツールです。

資格情報窃取は、初期侵入後の本番フェーズ。LSASS・SAM・DPAPI・ブラウザ保存パスワード・KDBX ファイル――Windows一台にはユーザーが使う全認証情報が保管されており、SYSTEM権限なら全部読めます。Mimikatz、impacket-secretsdump はその代表的なツール。

ログイン情報を全部持ち出されるって、AD全体が終わっちゃう…

この記事は、CTF思考フレームワーク第36回。資格情報窃取の代表的手口(LSASS dump・SAM・DPAPI・ブラウザ・KeePass)と、企業の防御策(Credential Guard・PPL・LAPS・パスワード保管庫)を整理します。

📖 この記事はシリーズの一部です
CTF思考フレームワーク#36 / 全86記事 → シリーズ一覧を見る →

🔐 Windows侵入後にまず狙われるのが「資格情報」です。LSASSのメモリ、SAM/SYSTEMのレジストリハイブ、DPAPIで保護されたパスワード・Cookie。ここを抜かれると横展開も特権昇格も一気に進みます。

資格情報窃取の基本は「メモリから生パスワード/ハッシュ」「レジストリからNTLMハッシュ」「DPAPIマスターキー経由でブラウザ・WiFiの平文」の3ルート。攻撃の発想と検知の勘所を整理します。

難易度:★★★(上級)

ポストエクスプロイトの王道。鍵を抜けば全社が落ちます🔑

資格情報窃取は「初期侵入後の本番」。LSASSやSAMから鍵が抜けたらAD全体が危ないんだ💀

この記事で出てくる言葉

先に意味を押さえておくと読みやすい用語です。

  • CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
  • Webキャッシュ汚染: 一時保存されるページ内容を汚染し、他の利用者にも悪い内容を配る攻撃です。
  • 権限昇格: 一般ユーザーから管理者権限など、より強い権限を得ることです。

👀 観察フェーズ:まず何を見る?

まずどこに認証情報が置かれてるかを観察!LSASS、SAM、レジストリ、DPAPI、ブラウザ保存…箱は意外と多い🔍

まずホスト上で「どの保護機構が有効で、どの資格情報が手に届く位置にあるか」を見極めます。Credential Guardやプロセス保護(PPL)が有効ならLSASSダンプは難易度が跳ね上がります。

WindowsならLSASSメモリ・SAM/SECURITYレジストリ・DPAPI vault、Linuxなら/etc/shadow・SSH鍵・.bash_historyを狙います👀

一度メモリにロードされた認証情報ってSYSTEM権限なら全部読めるから怖いんだね…😨

  • whoami /priv で SeDebugPrivilege が握れているか
  • Credential Guard / LSA Protection (RunAsPPL) の有効状態
  • AV/EDRの常駐(mimikatz系のシグネチャ検知)
  • ローカル管理者権限の有無(SAM・SECURITYへのアクセス可否)
  • ブラウザプロファイル・WiFi設定の保存場所
  • KRBTGTやドメインコントローラへの到達性(DCSyncの伏線)

資格情報窃取の典型は4経路

🤔 仮説フェーズ:攻撃者は何を考える?

🧠 仮説①:LSASSメモリダンプ

mimikatzsekurlsa::logonpasswordsprocdump+解析でNTLMハッシュ・Kerberosチケットを抜く。

🗝️ 仮説②:SAM・SECURITYハイブ

SYSTEM権限でreg saveからハイブを取得→オフライン解析でローカル管理者ハッシュを入手。

🛡️ 仮説③:DPAPI Vault

ChromeやEdgeの保存パスワードはDPAPIで暗号化されているが、同ユーザコンテキストなら復号可能。マスターキーを掘る。

📜 仮説④:ファイル漏洩

/etc/shadow~/.aws/credentialsid_rsaweb.configunattend.xmlなどに平文の認証情報が残っているケース。

🕶️ 攻撃者は「LSASSプロセスを直接ダンプできるか?できなければシャドウコピーやMiniDump APIで迂回するか?」と考えます。検知が厳しければ comsvcs.dll のMiniDumpエクスポート、procdump、Living-off-the-Landバイナリで擬装するのが定石です。SAM/SYSTEMはVSSでロック回避、DPAPIはマスターキーをコピーしてオフラインで復号、と段階的にプランBを準備します。

攻撃者は「立った場所から地図を広げる」のが基本ムーブだね💡

🔬 検証フェーズ:どうやって確かめる?

検証ラボではActive Directoryをわざと組んでmimikatzやimpacketを動かし、何が抜けるかを実体験するのが効きます🧪

自分の検証VMで、どのアーティファクトが残るかを観察します。LSASSダンプはSysmon Event ID 10(ProcessAccess)で 0x10100x1410 のアクセスマスクが残るのが代表的なIoC。SAMハイブのコピーは reg save 実行ログとボリュームシャドウコピーの作成痕跡が出ます。

EDRが入ってるとLSASSアクセスで即検知されるから、実環境では試せないやつだね⚠️

# 検証用:自分の管理するWindows VMで
reg save HKLMSAM C:tempsam.save
reg save HKLMSYSTEM C:tempsystem.save
reg save HKLMSECURITY C:tempsecurity.save

# Sysmon Event ID 10 が LSASS 宛に飛んだら検知ルールがハマっている合図

資格情報窃取の主要パスはこの3つ

⚔️ 攻撃フェーズ:実際の手口

① LSASSダンプ→Pass-the-Hash

NTLMハッシュを抜き、パスワードを知らずに別マシンへログイン。横展開の起点。

② Kerberoasting

SPN付きアカウントのTGSチケットを要求しオフラインクラック。サービスアカウントが弱パスワードだと一発。

③ DCSync

高権限ユーザでDCに対しGetNCChangesを発行し、krbtgt含む全ユーザのハッシュを取得。AD全壊コース。

攻撃の典型ルートは3つ。①LSASSメモリから平文パスワード/NTLMハッシュ/Kerberosチケットを抽出、②SAM+SYSTEMからローカルアカウントのNTLM、③DPAPIマスターキー+暗号化blobでブラウザ保存パスワード/WiFi PSKを復号。

# 1) LSASSダンプ(攻撃者目線・検証環境のみ)
rundll32.exe C:windowssystem32comsvcs.dll, MiniDump  dump.bin full

# 2) レジストリハイブからNTLM抽出(pypykatz等で後段処理)
pypykatz registry --sam sam.save system.save

# 3) DPAPI経由でChromeのCookie/パスワード復元
# masterkey + Local State の暗号化キー → AES-GCMで復号

抽出したNTLMハッシュはそのまま Pass-the-Hash で横展開に直結し、Kerberosチケット(TGT/TGS)は Pass-the-Ticket でドメイン内移動の燃料になります🚀

資格情報窃取の守りは3段構え!🛡️

🛡️ 防御フェーズ:どう守る?

🔒 LSASS保護(Credential Guard / RunAsPPL)

WindowsのCredential GuardRunAsPPLを有効化し、SYSTEM権限でもLSASSメモリを読めなくする。

🔑 強パスワード+管理階層

サービスアカウントは25文字以上のランダムパスワード。Tier0(DC等)にDA権限のセッションを残さない。

👁️ 監査・検知

SysmonでLSASSアクセス・DCSync・Kerberoastingログを取得し、EDRで即時アラート。検知時間が短いほど被害が小さい。

「鍵を盗ませない・盗まれても気づく」の2軸で守るのが鉄則だね💪

守る側の核心は「LSASSへの到達を物理的に封じる」「資格情報の保管粒度を下げる」「異常アクセスを即座に検知する」。Credential Guard・LSA Protectionは必ずONに、ローカル管理者の使い回しはLAPSで根絶します。

  • Credential Guard(VBSベース)でLSASS Secretsを仮想化隔離
  • RunAsPPL=1 でLSASSをProtected Process Lightに昇格
  • LAPSでローカル管理者パスワードを端末ごとにランダム化
  • Sysmon Event ID 10でLSASS宛ProcessAccessを監視(GrantedAccess 0x1010/0x1410)
  • WDigest無効化(UseLogonCredential=0)で平文キャッシュを廃止
  • KRBTGT定期ローテと Protected Users グループの活用

🧪 検証用のLinuxラボを用意

権限昇格やエクスプロイトの練習は、許可を得た自分の検証環境で行うのがルール。💻 ConoHa VPSならUbuntuやCentOSをワンクリックで立てて、スナップショットも取れるので安心して試せます。

PR / 広告

ConoHa VPS

※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。

⚠️ よくある落とし穴

  1. mimikatzのバイナリだけ警戒してDLLサイドロードを見落とす
  2. LSA Protectionが有効でも、ドライバー経由でPPLを外す手口を考慮しない
  3. DPAPIはマスターキーが取れればオフラインで復号できることを忘れる
  4. バックアップDPAPIキーがDCにあることを知らず、DC侵害の影響を過小評価
  5. シャドウコピー作成(vssadmin)を「正常な運用」として除外してしまう
  6. EDRがLSASSアクセスを検知しても、サプライチェーン由来の正規署名を素通りさせる

🧰 ツール早見表

ツール / 機能用途備考
mimikatz / pypykatzLSASS・SAM・DPAPI抽出の総合ツールEDRが最も警戒
comsvcs.dll MiniDumpOS標準のLSASSダンプLOLBin扱いで検知すり抜けやすい
Sysmon EID 10LSASS宛ProcessAccess監視GrantedAccess値が決め手
LAPSローカル管理者PW自動ローテPass-the-Hash横展開の致命傷を回避
Credential GuardLSAシークレット仮想化Win10/11 Enterpriseで有効化推奨

🎓 本気で学びたい人へ

Linuxとサーバ・セキュリティを仕事レベルで学びたい方へ。🎓 ササエルはインフラエンジニア向けスクールで、システム設計から防御設計まで広くカバーしています。

PR / 広告

ササエル

📚 もっと深く学びたい人へ

体系的に学ぶなら『ホワイトハッカー入門』、手を動かして覚えるなら『TryHackMeを使って身体で覚える攻撃手法と脆弱性』が定番。両方持っておくと、知識と実践の両輪で伸びます📚

📚 次に読みたい

🤝 大事なお約束

必ず守ってね

この記事で扱う確認・検証は、自分の環境、CTF、または明示的に許可された演習環境だけで行ってください。他人のサービスや端末に無断で試す行為は、不正アクセス等に該当するおそれがあります。学んだ知識は守る側で活用しましょう。

記事URLをコピーしました