- ATT&CK視角下的紅藍對抗實戰指南
- 賈曉璐 李嘉旭 黨超輝
- 1779字
- 2024-04-12 19:02:51
1.3.3 NTLM網絡認證
1.NTLM認證協議
NTLM基于挑戰/響應驗證機制,對域上主機進行身份驗證。當用戶主機請求訪問與域關聯的服務時,服務會向用戶主機發送質詢,要求用戶主機使用其身份驗證令牌進行驗證,然后將此操作的結果返回給服務。該服務可以驗證結果或將其發送到域控制器進行驗證。如果服務或域控制器確認用戶主機的身份令牌正確,則用戶主機使用該服務。目前NTLM已經不被微軟推薦,因為它不支持很多新型的加密方式,微軟已經使用Kerberos認證協議作為首選的身份驗證方式。
2.NTLM認證流程
NTLM是Windows網絡認證協議中的一種,它以NTLM哈希作為憑據的方式進行認證,采用挑戰/響應(Challenge/Response)的消息交換模式。NTLM認證協議分三步走。
1)協商(Negotiate):主要用于確認雙方協議版本。
2)質詢(Question):就是挑戰/響應。
3)驗證(Auth):主要是在質詢完成后驗證結果。
3.NTLM協議類型
NTLM協議認證包含NTLM v1和NTLM v2兩個版本,其中使用最多的是NTLM v2。
NTLM v1:NTLM v1協議是NTLM第一版協議,它在服務器與客戶端之間的挑戰/響應中同時使用NT哈希和LM哈希。
NTLM v2:NTLM v2也可稱為NTLM第二版協議,是NTLM v1的改進版本,它通過強化認證協議及安全身份認證機制來提升NTLM的安全性。
NTLM v1與NTLM v2兩者的區別在于Challenge和加密算法不同:NTLM v1的Challenge有8位數值,主要加密算法為DES;NTLM v2的Challenge有16位數值,主要加密算法為HMAC-MD5。
4.NTLM協議認證方式
NTLM協議的認證方式可以分成交互式NTLM身份驗證和非交互式NTLM身份驗證兩類,具體說明如下。
(1)交互式NTLM身份驗證
交互式NTLM身份驗證通常涉及用戶請求身份驗證的客戶端系統、保留與用戶密碼相關信息的域控制器這兩種系統,主要應用于用戶登錄客戶端的場景。
(2)非交互式NTLM身份驗證
非交互式NTLM身份驗證通常涉及用于請求身份驗證的客戶端系統、保存資源的服務器、代表服務器進行身份驗證計算的域控制器這三種系統,這種認證方式無須進行交互式提供憑據,用戶只需成功登錄一次就可以訪問所有相互信任的應用系統及共享資源。
5.工作站環境中的NTLM工作機制
圖1-23詳細描述了NTLM在工作站環境中的工作機制,具體如下。
1)用戶輸入賬號和密碼并登錄客戶端時,客戶端會將用戶的賬號和密碼轉換為NTLM哈希并進行緩存,原始密碼將會被丟棄(因Windows安全準則要求,原始密碼在任何情況下都不能被緩存)。
2)當成功登錄客戶端的用戶試圖訪問服務器的某個資源時,客戶端就會向服務器發送Type1協商消息進行請求認證,該協商消息包含客戶端支持和服務器請求的功能列表。
3)收到客戶端發送的Type1協商消息認證請求后,服務器會生成一個16位數值的隨機數,簡稱“質詢”(Challenge)或“隨機數”(Nonce),并通過Type2質詢消息對客戶端進行響應,該響應消息包含服務器支持同意列表以及由服務器產生的16位數值的Challenge挑戰碼。
4)接收到服務器發來的Challenge挑戰碼后,客戶端使用之前轉換緩存的NTLM哈希對Challenge進行加密運算,得到Response,并通過Type3身份驗證消息回復服務器的質詢。該身份驗證消息包含Response、Username以及加密后的Challenge。
5)接收到由客戶端加密的Challenge后,服務器會使用自己密碼的NTLM哈希對Challenge進行加密計算,得到Net NTLM哈希值,并與客戶端發送的Net NTLM哈希值進行匹配。如匹配成功,則證明客戶端輸入的密碼正確,認證成功;反之,認證失敗。

圖1-23 工作站環境中的NTLM工作機制
6.域環境中的NTLM工作機制
圖1-24詳細描述了NTLM在域環境中的工作機制,具體如下。
1)域用戶輸入賬號和密碼登錄客戶端時,客戶端會將用戶的賬號和密碼轉換為NTLM哈希并進行緩存,原始密碼將會被丟棄。
2)當成功登錄客戶端的用戶試圖訪問服務器的某個資源時,客戶端就會向服務器發送Type1協商消息進行請求認證,該協商消息包含客戶端支持和服務器請求的功能列表。
3)收到客戶端發送的Type1協商消息認證請求后,服務器會生成一個16位數值的隨機數,并通過Type2質詢消息對客戶端進行響應。該響應消息包含服務器支持同意列表以及由服務器產生的16位數值的Challenge挑戰碼。
4)接收到服務器端發來的Challenge挑戰碼后,客戶端使用之前轉換緩存的NTLM哈希對Challenge進行加密運算,得到Response,并通過Type3身份驗證消息回復服務器的質詢。該身份驗證消息包含Response、Username以及加密后的Challenge。
5)接收到由客戶端加密的Challenge后,服務器會通過Netlogon協議向DC(域控制器)發送針對客戶端的驗證請求,同時將Type1、Type2、Type3全部發送給DC。
6)DC根據Username從AD中查詢該用戶賬號和密碼的NTLM哈希,并將使用此NTLM哈希加密Challenge得到的NetNTLM哈希值與服務器收到的NetNTLM哈希值進行比對和驗證,最終將比對驗證結果發送給服務器。
7)服務器根據DC反饋的結果對客戶端進行最后的校驗。

圖1-24 域環境中的NTLM工作機制
- Android應用安全實戰:Frida協議分析
- Mobile Forensics Cookbook
- Rootkit和Bootkit:現代惡意軟件逆向分析和下一代威脅
- 特種木馬防御與檢測技術研究
- 零信任網絡:在不可信網絡中構建安全系統
- 計算機病毒分析與防范大全(第3版)
- Preventing Digital Extortion
- Applied Network Security
- 模糊測試:強制發掘安全漏洞的利器
- Falco云原生安全:Falco原理、實踐與擴展
- Learning Pentesting for Android Devices
- 構建新型網絡形態下的網絡空間安全體系
- 白話零信任
- 云計算安全防護技術
- 復雜信息系統網絡安全體系建設指南