跳到主要內容

ASREPRoast 攻擊技術深度解析:利用 Kerberos 預身份驗證漏洞破解帳戶憑證

什麼是 ASREPRoast?

在現代 Active Directory 滲透測試中,ASREPRoast 是一種無需任何憑證即可發動的 Kerberos 離線破解攻擊。它專門針對停用預身份驗證(Pre-Authentication Disabled)的帳戶,讓攻擊者能直接向 KDC 索取加密票據並於本機暴力破解。

攻擊原理:Kerberos AS-REP 流程弱點

正常 Kerberos 流程中,用戶端在送出 AS-REQ 時必須附上以自身密碼加密的時間戳(Pre-Authentication),KDC 藉此驗證身份。若帳戶設定了 DONT_REQ_PREAUTH 旗標,KDC 不做身份驗證即直接回傳 AS-REP,其中包含以該帳戶密碼 Hash 加密的 TGT 片段。攻擊者取得此回應後,可在離線環境使用 Hashcat 或 John the Ripper 進行字典或暴力破解,整個過程完全不觸發帳戶鎖定機制,隱蔽性極高。

攻擊實作流程

攻擊分為兩階段:收集 Hash離線破解。使用 Impacket 的 GetNPUsers.py 可自動枚舉並取得 AS-REP Hash,再交由 Hashcat 以模式 18200 破解。

# 取得目標域中無需預身份驗證的帳戶 Hash
python3 GetNPUsers.py DOMAIN/ -usersfile users.txt -no-pass -outputfile hashes.txt

# 使用 Hashcat 離線破解(模式 18200 對應 Kerberos AS-REP)
hashcat -m 18200 hashes.txt wordlist.txt

💡 重點整理

  • 觸發條件:帳戶啟用 DONT_REQ_PREAUTH 旗標才可被攻擊。
  • 無需憑證:攻擊者僅需網路可達 KDC,即可索取加密票據。
  • 離線破解:整個暴力破解過程在本機進行,不產生網域登入日誌。
  • 防禦核心:定期稽核 AD 帳戶屬性,強制啟用 Pre-Authentication 並採用強密碼策略。

ASREPRoast 的威脅在於其零憑證門檻離線隱蔽性。防禦團隊應定期以 PowerShell 或 BloodHound 稽核 DONT_REQ_PREAUTH 帳戶,並結合 SIEM 監控異常的 AS-REP 請求,才能有效降低暴露面。

📚 參考文獻

  1. MITRE ATT&CK T1558.004 — Steal or Forge Kerberos Tickets: AS-REP Roasting(官方攻擊技術描述與緩解建議)
  2. Impacket — SecureAuthCorp(GitHub)(GetNPUsers.py 工具的官方來源)
  3. Roasting AS-REPs — harmj0y Blog(ASREPRoast 技術原始研究文章)

⚠️ 本文內容基於撰寫時

留言