Windows本地認證 NTLM Hash&LM Hash


自己一直對一些底層的原理欠缺,最近一段時間彌補了一些基礎的東西,但是一直沒做記錄。Windows的一個登錄驗證是必須要了解的,這里簡單做個筆記記錄一下。

 

概括

Windows本地認證采用sam hash比對的形式來判斷用戶密碼是否正確,計算機本地用戶的所有密碼被加密存儲在%SystemRoot%\system32\config\sam文件中,當我們登錄系統的時候,系統會自動地讀取SAM文件中的密碼與我們輸入的密碼進行比對,如果相同,證明認證成功.

 

 

本地認證的過程其實就是Windows把用戶輸入的密碼憑證和sam里的加密hash比對的過程。

Windows對用戶的密碼憑證有兩種加密算法,也就是本文寫的NTLMLM

 

 

 

 

也就是說從Windows Vista Windows Server 2008開始,默認情況下只存儲NTLM HashLM Hash將不再存在。

 

LM Hash

全稱是LAN Manager Hash, windows最早用的加密算法,由IBM設計。

LM Hash的計算:

  1. 用戶的密碼轉換為大寫,密碼轉換為16進制字符串,不足14字節將會用0來再后面補全。
  2. 密碼的16進制字符串被分成兩個7byte部分。每部分轉換成比特流,並且長度位56bit,長度不足使用0在左邊補齊長度
  3. 再分7bit為一組,每組末尾加0,再組成一組
  4. 上步驟得到的二組,分別作為key KGS!@#$%進行DES加密。
  5. 將加密后的兩組拼接在一起,得到最終LM HASH值。

lm協議的脆弱之處在於

  1. deskey是固定的
  2. 可以根據hash判斷密碼長度是否大於7位,如果密碼強度是小於7位,那么第二個分組加密后的結果肯定是aad3b435b51404ee
  3. 密碼不區分大小寫並且長度最大為14
  4. 7+7字符分開加密明顯復雜度降低14個字符整體加密 957+ 957 <95 14

NTLM Hash

LM Hash 的脆弱性顯而易見,所以微軟於1993年在Windows NT 3.1中引入了NTLM協議。NTLM Hash是支持Net NTLM認證協議及本地認證過程中的一個重要參與物,其長度為32位,由數字與字母組成。

• Windows本身不存儲用戶的明文密碼,它會將用戶的明文密碼經過加密算法后存儲在SAM數據庫中。

當用戶登錄時,將用戶輸入的明文密碼也加密成NTLM Hash,與SAM數據庫中的NTLM Hash進行比較。NTLM Hash的前身是LMHash,目前基本淘汰,但是還是存在。

加密算法如下:

  1. 先將用戶密碼轉換為十六進制格式。
  2. 將十六進制格式的密碼進行Unicode編碼。
  3. 使用MD4摘要算法對Unicode編碼數據進行Hash計算

 

本地認證流程

• Windows Logon Process(即winlogon.exe),是Windows NT 用戶登陸程序,用於管理用戶登錄和退出。

• LSASS用於微軟Windows系統的安全機制。它用於本地安全和登陸策略。

 

 

lsass SAM 文件

lsass.exe 程序

lsass.exe 是一個系統重要進程用於微軟Windows系統的安全機制。它用於本地安全和登陸策略。而SAM的功能就固定於 lsass.exe 中但是 lsass.exe 不僅僅只進行本地身份認證所有正確通過本地、遠程身份認證的用戶信息都會保存在 lsass.exe 的內存中。

由於 WDigest 協議的存在在一些舊版本的 windows 操作系統中XP - win 8.0 server 2003 - server 2012 R1純文本密碼存儲在 lsass.exe 進程中。

SAM文件

SAM 安全帳戶管理器(Security Accounts Manager)”windows 操作系統管理用戶帳戶的安全所使用的一種機制。

安全帳戶管理器對帳號的管理是通過安全標識進行的安全標識在帳號創建時就同時創建一旦帳號被刪除安全標識也同時被刪除。安全標識是唯一的即使是相同的用戶名在每次創建時獲得的安全標識都時完全不同的。因此一旦某個帳號被刪除它的安全標識就不再存在了即使用相同的用戶名重建帳號也會被賦予不同的安全標識不會保留原來的權限。

SAM 是用來存儲 windows 操作系統密碼的數據庫文件為了避免明文密碼泄漏SAM 文件中保存的是明文密碼在經過一系列算法處理過的 Hash 值被保存的 Hash 分為 LM Hash NTLM Hash 。當用戶進行身份認證時會將輸入的 Hash 值與 SAM 文件中保存的 Hash 值進行對比。在域控制器上 SAM 文件相當於活動目錄數據庫文件 ntds.dit

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM