跳到主要內容

Pass-the-Hash 攻擊技術深度解析:無需明文密碼的橫向移動與 NTLM Hash 重放實戰

🔐 什麼是 Pass-the-Hash?

在 Windows 身份驗證體系中,NTLM Hash 本身即等同於密碼。Pass-the-Hash(PtH)攻擊讓攻擊者無需破解明文密碼,直接竊取記憶體中的 Hash 值,向目標系統發起重放驗證,完成橫向移動。這是滲透測試與 APT 攻擊中最常見的內網擴散手段之一。

⚙️ 攻擊流程與技術原理

NTLM 驗證流程採用「挑戰—回應」機制,伺服器驗證的是 Hash 運算結果,而非明文密碼本身。攻擊者首先透過 Mimikatz 等工具從 LSASS 進程記憶體中傾印 NTLM Hash,再利用 Impacket(如 psexec.py)或 CrackMapExec 將 Hash 直接注入驗證請求。只要目標主機存在相同帳號,即可在無需知道明文的情況下完成登入,實現橫向移動(Lateral Movement)。

🛠️ 實作範例

以下示範使用 Impacket 的 psexec.py 執行 Pass-the-Hash 攻擊(格式:LM:NTLM):

# 步驟一:從 LSASS 傾印 Hash(需管理員權限)
mimikatz # sekurlsa::logonpasswords

# 步驟二:使用 Hash 進行橫向移動
python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c \
    Administrator@192.168.1.100

💡 重點整理

  • Hash 即憑證:NTLM Hash 無需解密,可直接用於身份驗證。
  • 主要擷取工具:Mimikatz 從 LSASS 記憶體傾印,需本機管理員權限。
  • 防禦核心對策:啟用 Protected Users 群組與 Credential Guard,阻斷 LSASS 記憶體存取。
  • 偵測指標:監控 Event ID 4624(Logon Type 3)異常來源 IP,及 LSASS 異常存取行為。

🛡️ 結語

Pass-the-Hash 揭示了 NTLM 協議的根本性弱點。遷移至 Kerberos、部署 MFA,並嚴格限制本機管理員帳號的跨主機共用,是降低 PtH 攻擊面的最有效路徑。

留言