在內網滲透中,當攻擊者獲取到內網某臺機器的控制權后,會議被攻陷的主機為跳板,通過收集域內憑證等各種方法,訪問域內其他機器,進一步擴大資產范圍。通過此類手段,攻擊者最終可能獲得域控制器的訪問權限,甚至完全控制基于Windows操作系統的整個內網環境,控制欲環境下的全部機器。
Windows下安全認證機制
Windows下的安全認證機制總共有兩種,一種是基于NTLM的認證方式,主要用在早期的Windows工作組環境中;另一種是基于Kerberos的認證方式,主要用在域環境中。
圖1:NTLM認證流程圖
這里主要對NTLM的認證流程做一下說明:
1、首先在客戶端中輸入username,password和domain,然后客戶端會把密碼進行Hash后的值先緩存到本地。
2、Client將username的明文發送給DC(域控)。
3、DC會生成一個16字節的隨機數,也就是挑戰碼(Challenge),然后再傳回給Client。
4、當Client收到挑戰碼以后,會先復制一份,然后和緩存中的密碼Hash再一同混合Hash一次,混合后的值稱為response,之后Client再將challenge,response以及username一并都傳給server。
5、Server端在收到client傳過來的這三個值以后會把它們都轉發給DC。
6、當DC接到過來的這三個值的以后,會根據username到域控的賬號數據庫(ntds.dit)里面找到該username對應的hash,然后把這個hash拿出來和傳過來的challenge值再混合hash。
7、將混合后的hash值跟傳來的response進行比較,相同則認證成功,反之,則失敗,當然,如果是本地登錄,所有驗證肯定也全部都直接在本地進行了。
在Windows2000以后,Windows機器都用NTLM算法在本地保存用戶的密碼,密碼的NTLM哈希保存在%SystemRoot%System32configSAM文件中。Windows操作系統中的密碼一般由兩部分組成:一部分為LM Hash,另一部分為NTLM Hash。在Windows中,Hash的結構通常如下:
Username:RID:LM-Hash:NT-Hash
在windows2000以后的系統中,第一部分的 LM-hash 都是空值,因為LM-hash可以很容易的破解,所以windows2000之后這個值默認為空,所以第二部分的NTLM-hash才真正是用戶密碼的哈希值。在滲透測試中,通常可從Windows系統中的SAM文件和域控數據庫的NTDS.dit文件(在域環境中,用戶信息存儲在NTDS.dit中)中獲得所有用戶的Hash。
使用PwDump工具獲取密碼Hash
PwDump7可以在CMD下提取出系統中的用戶的密碼hash,使用管理員權限直接運行該工具即可:
獲取到Hash后,我們可以用破解工具來破解得到明文密碼,也可以進行哈希傳遞攻擊來橫向滲透。
-
WINDOWS
+關注
關注
3文章
3541瀏覽量
88631 -
數據安全
+關注
關注
2文章
681瀏覽量
29939 -
內網
+關注
關注
0文章
37瀏覽量
8981
發布評論請先 登錄
相關推薦
評論