Windows認(rèn)證
認(rèn)證流程
電腦開(kāi)機(jī)后,會(huì)運(yùn)行一個(gè)名叫 winlogon.exe 的進(jìn)程洁桌,它會(huì)調(diào)用電腦的登錄界面并顯示給用戶鞭光,用戶輸入密碼后,winlogon.exe 進(jìn)程會(huì)把密碼發(fā)送給 lsass.exe 進(jìn)程植康,將用戶的密碼跟SAM文件的LM-HASH或者NTLM-HASH做對(duì)比,對(duì)比成功即登錄成功展懈。
winlogon.exe
該進(jìn)程主要就是負(fù)責(zé)把登錄界面顯示給用戶销睁,讓用戶登錄使用。
lsass.exe
Lsass.exe進(jìn)程主要負(fù)責(zé)管理本地安全策略和認(rèn)證機(jī)制存崖,這些策略包
括密碼策略冻记、賬戶策略、用戶權(quán)限来惧、域策略等等冗栗。同時(shí),它還負(fù)責(zé)對(duì)用戶進(jìn)行身份驗(yàn)證供搀,以確保只有授權(quán)的用戶才能訪問(wèn)系統(tǒng)資源隅居。
- 該進(jìn)程會(huì)把winlogon.exe進(jìn)程發(fā)送來(lái)的密碼進(jìn)行加密(LM-Hash、NTLM-Hash)葛虐,跟SAM文件中的密碼做對(duì)比军浆;
- 同時(shí)將收到的明文賬號(hào)密碼在本地內(nèi)存中保留一份用作備用。
SAM文件
該文件在C:\Windows\System32\config
目錄下挡闰,是用來(lái)存儲(chǔ)用戶賬號(hào)密碼的,該文件中的密碼是經(jīng)過(guò)加密的(LM-Hash、NTLM-Hash)摄悯。
大概格式如下:
用戶名
:RID
:LM-Hash
:NTLM-Hash
Administrator:500:64822E174CBB6CD287916C896CBF48D9:C7C654DA31CE51CBEECFEF99E637BE15
LM-HASH
LM-HASH 要點(diǎn)
采用DES加密赞季,易被破解,從Windows vista系統(tǒng)開(kāi)始被禁用奢驯。LM-Hash如果是AAD3B435B51404EEAAD3B435B51404EE
申钩,則表示LM-Hash被禁用或值為空。
LM-HASH加密算法
假設(shè)明文密碼為Admin@666
:
1.密碼轉(zhuǎn)換為大寫
Admin@666 -> ADMIN@666
- 轉(zhuǎn)為16進(jìn)制
轉(zhuǎn)換地址:https://www.sojson.com/hexadecimal.html
ADMIN@666 -> 41444d494e40363636
- 長(zhǎng)度補(bǔ)全(如果密碼的十六進(jìn)制不足14個(gè)字節(jié)瘪阁,也就是28位十六進(jìn)制撒遣,則會(huì)自動(dòng)在最后用0字節(jié)也就是十六進(jìn)制00補(bǔ)全)
41444d494e40363636 -> 41444d494e403636360000000000
- 將
41444d494e403636360000000000
編碼分成2組7字節(jié),把分好的兩組十六進(jìn)制字符串轉(zhuǎn)換為二進(jìn)制
41444d494e4036 -> 0100 0001 0100 0100 0100 1101 0100 1001 0100 1110 0100 0000 0011 0110
36360000000000 -> 0011 0110 0011 0110 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
- 每7位二進(jìn)制為一組,在每組最后加0管跺,然后再轉(zhuǎn)換成十六進(jìn)制
第一組:
01000001010001000100110101001001010011100100000000110110
分組 ->
0100000
1010001
0001001
1010100
1001010
0111001
0000000
0110110
加0 ->
01000000
10100010
00010010
10101000
10010100
01110010
00000000
01101100
合并 ->
0100000010100010000100101010100010010100011100100000000001101100
轉(zhuǎn)換成十六進(jìn)制 ->
40A212A89472006C
第二組:
00110110001101100000000000000000000000000000000000000000
分組 ->
0011011
0001101
1000000
0000000
0000000
0000000
0000000
0000000
加0 ->
00110110
00011010
10000000
00000000
00000000
00000000
00000000
00000000
合并 ->
0011011000011010100000000000000000000000000000000000000000000000
轉(zhuǎn)換成十六進(jìn)制 ->
361A800000000000
- 把每組十六進(jìn)制作為DES加密的密鑰义黎,對(duì)
KGS!@#%
也需要是十六進(jìn)制
KGS!@#$%
的16進(jìn)制為4B47532140232425
第一組
內(nèi)容為:4B47532140232425
密鑰為:40A212A89472006C
結(jié)果為:64822E174CBB6CD2
64822E174CBB6CD2
第二組
內(nèi)容為:4B47532140232425
密鑰為:361A800000000000
結(jié)果為:87916C896CBF48D9
87916C896CBF48D9
最終拼接結(jié)果:64822E174CBB6CD287916C896CBF48D9
https://www.toolkk.com/tools/lm-hash
LM hash加密缺點(diǎn)
- 密碼長(zhǎng)度最大只能為14個(gè)字符
- 密碼不區(qū)分大小寫
- 如果明文密碼長(zhǎng)度小于7個(gè),第二個(gè)分組的加密結(jié)果一定是
aad3b435b51404ee
- DES容易被破解 密碼強(qiáng)度不高
NTLM-HASH
NTLM-HASH 簡(jiǎn)介
NTLM-Hash是微軟為了在提高安全性的同時(shí)保證兼容性而設(shè)計(jì)的散列加密算法豁跑。NTLM Hash是基于MD4加密算法進(jìn)行加密的廉涕。Windows操作系統(tǒng)個(gè)人版從Windows vista之后,服務(wù)器版從Windows Server2003之后, 認(rèn)證方式均為NTLM-Hash。
NTLM-HASH加密算法
假設(shè)明文密碼為Admin@666
:
- 將明文口令轉(zhuǎn)換成十六進(jìn)制的格式
Admin@666 -> 41646d696e40363636
轉(zhuǎn)換地址:https://www.sojson.com/hexadecimal.html
- 將16進(jìn)制轉(zhuǎn)換成Unicode格式艇拍,即在每個(gè)
字節(jié)
之后添加0x00
41646d696e40363636 -> 410064006d0069006e004000360036003600
- 使用MD4摘要算法對(duì)Unicode編碼數(shù)據(jù)進(jìn)行Hash計(jì)算狐蜕,結(jié)果即為NTLM-HASH值
410064006d0069006e004000360036003600 -> c7c654da31ce51cbeecfef99e637be15
驗(yàn)證:
https://www.toolkk.com/tools/ntlm-hash