跳到主要內容

Pass the Ticket 攻擊深度解析:無需密碼的 Kerberos 票券竊取與橫向移動實戰

在 Active Directory 環境中,Pass the Ticket(PTT) 讓攻擊者無需任何明文密碼,僅憑竊取的 Kerberos 票券即可橫向移動,是紅隊滲透與APT攻擊中最隱蔽的手法之一。

什麼是 Pass the Ticket?

PTT 攻擊的核心在於 Kerberos 票券的可攜性。當使用者登入後,LSASS 進程會在記憶體中快取 TGT(票證授予票證)及 Service Ticket。攻擊者取得高權限(如本機管理員)後,便可使用工具從 LSASS 記憶體傾印這些票券,再將其注入自身的登入工作階段(Logon Session)。由於 KDC 僅驗證票券本身的加密簽章,無法辨別呈交者是否為原始使用者,攻擊者因此得以完全冒充合法身份存取網路資源。

攻擊流程與關鍵工具

完整攻擊鏈分為三步:① 提權至本機管理員 → ② 傾印票券 → ③ 注入並存取資源。Mimikatz 是最常見的工具,透過 sekurlsa::tickets /export 將票券匯出為 .kirbi 檔案,再以 kerberos::ptt 注入目標工作階段。Rubeus 則提供更現代化的替代方案,可直接在記憶體中完成全流程而不落地寫入磁碟,大幅降低被端點偵測的機率。竊取 Domain Admin 的 TGT 後,攻擊者可對整個網域進行橫向移動。

# Mimikatz:匯出記憶體中所有 Kerberos 票券
mimikatz # privilege::debug
mimikatz # sekurlsa::tickets /export

# 將指定票券注入當前工作階段
mimikatz # kerberos::ptt [0;xxxxxx]-0-0-40e10000-Admin@krbtgt-DOMAIN.COM.kirbi

💡 重點整理

  • 無需密碼:直接竊用已核發票券,繞過密碼驗證環節。
  • TGT vs Service Ticket:竊取 TGT 可申請任意服務票券,威脅範圍更廣。
  • 票券有效期限:預設 TGT 存活 10 小時,過期後攻擊者需重新竊取。
  • 偵測指標:監控異常的 Event ID 4768 / 4769,以及非預期的 klist 票券。

PTT 之所以危險,在於它完全利用 Kerberos 的合法設計進行攻擊,防禦重點應聚焦於最小權限原則、Credential Guard 部署,以及票券異常行為的持續監控,從根源降低票券被竊的風險。

📚 參考文獻

  1. MITRE ATT&CK – T1550.003: Use Alternate Authentication Material: Pass the Ticket,攻擊技術官方分類與緩解建議。
  2. Gentilkiwi – Mimikatz GitHub Repository,PTT 主要工具的原始碼與使用說明。

留言