完全理解Windows認證1

完全理解Windows認證

1、Windows本地認證

1. 個人密碼在哪裏?

  路徑:C:\Windows\System32\config\SAMpython

  當咱們登陸系統的時候,系統會自動的讀取SAM文件中的「密碼」與咱們輸入的「密碼」進行對比,若是相同,證實認證成功。算法

2. NTML(NT LAN Manager) Hash

NTML Hash是支持Net NTLM認證協議及本地認證過程當中的一個重要參與物,其長度爲32位,由數字與字母組成。數據庫

Windows自己不存儲用戶的明文密碼,他會將用戶的明文密碼通過加密算法後存儲在SAM數據庫中。安全

當用戶登陸時,將用戶輸入的明文密碼也加密成NTLM Hash,與SAM數據庫中的NTLM Hash進行比較。NTLM Hash的前身是LM Hash,目前基本淘汰,但仍是存在於window xp/2003中。服務器

3. NTML Hash的產生

 

上圖使用python庫加密。網絡

admin à hex(16禁進制編碼) = 61646d696e編碼

61646d696e àUnicode = 610064006d0069006e00加密

610064006d0069006e00àMD4 = 209c6174da490caeb422f3fa5a7ae634code

adminà= 209c6174da490caeb422f3fa5a7ae634blog

4. 本地認證流程

 

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

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

5. LM Hash

加密過程:

第一步是將明文口令轉換爲其大寫形式;

第二步是將字符串大寫後轉換爲16進制字符串;

第三步是密碼不足14字節要求用0補全;

第四步是將上述編碼分紅2組7字節(56bits=14*4)的數據;

第五步是將每一組7字節的十六進制轉換爲二進制,每7bit一組末尾加0,再轉換成十六進制組成獲得2組8字節的編碼;

第六步將以上步驟獲得的兩組8字節編碼,分別做爲DES加密key爲魔術字符串「KGS!@#$% 」進行加密;

第七步將兩組DES加密後的編碼拼接。

2、 Windows網絡認證

        在內網滲透中,常常遇到工做組環境,而工做組環境是一個邏輯上的網絡環境(工做區),隸屬於工做組的機器之間沒法互相創建一個完美的信任機制,只能點對點,是比較落後的認證方式,沒有信任機構。

        假設A主機與B主機屬於同一個工做組環境,A想訪問B主機上的資料,須要將一個存在於B主機上的帳戶憑證發送給B主機,通過認證才能訪問B主機上的資源。

        最多見的服務:SMB服務   端口:445

1. NTLM協議

早期SMB(文件共享)協議在網絡上傳輸明文口令。後來出現LAN Manger challenge/Response驗證機制,簡稱LM,它是如此簡單以致於很容易就被破解。

微軟提出了WindowsNT挑戰/響應驗證機制,稱之爲NTLM。如今已經有了更新的NTLMv2以及Kerberos驗證體系。

2. 挑戰(challenge)/響應(Response) 

流程:

 

 

 

 

第一步協商:

客戶端主要在這一步向服務器確認協議版本,是V1仍是V2以及其它信息。

第二步質詢:

客戶端向服務器端發送用戶信息(用戶名)請求

  • ·服務器接受到請求,生成一個16位的隨機數,被稱之爲「challenge」,使用登陸用戶名對應的NTLM Hash加密challenge(16位隨機字符),生成challenge1。同事,生成challenge1後,將challenge(16位隨機字符)發送給客戶端。//Net NTLM Hash=NTLM Hash(challenge)。
  • ·客戶端接受到challenge後,使用將要登陸的帳戶對應的NTLM Hash加密challenge生成response,而後將response發送至服務器端。

第三步驗證:

服務器端收到客戶端的response後,比對challenge1與response是否至關,若至關,則認證經過。

————————————————還有後續哦—————————————————————————————————————————————————————————————————————————————————————————————————

相關文章
相關標籤/搜索