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