(1)Windows系統(tǒng)下的Hash密碼格式
Windows系統(tǒng)下的Hash密碼格式為:用戶名稱:RID:LM-Hash值:NT-Hash值惯豆,
例如:Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::表示
用戶名稱為:Administrator
RID為:500
LM-Hash值為:C8825DB10F2590EAAAD3B435B51404EE
NT-Hash值為:683020925C5D8569C23AA724774CE6CC
(2)Windows下LM-Hash值生成原理
假設(shè)明文口令是"Welcome"厚骗,首先全部轉(zhuǎn)換成大寫"WELCOME",再將口令字符串大寫轉(zhuǎn)后的字符串變換成二進(jìn)制串:
"WELCOME" -> 57454C434F4D4500000000000000
技巧:可以將明文口令復(fù)制到UltraEdit編輯器中炊琉,使用二進(jìn)制方式查看,即可獲取口令的二進(jìn)制串火焰。
如果明文口令經(jīng)過大寫變換后的二進(jìn)制字符串不足14字節(jié)今布,則需要在其后添加0x00補(bǔ)足14字節(jié)。然后切割成兩組7字節(jié)的數(shù)據(jù)阻问,分別經(jīng)str_to_key()函數(shù)處理得到兩組8字節(jié)數(shù)據(jù):
57454C434F4D45 -str_to_key()-> 56A25288347A348A
00000000000000 -str_to_key()-> 0000000000000000
這兩組8字節(jié)數(shù)據(jù)將作為DESKEY對魔術(shù)字符串"KGS!@#$%"進(jìn)行標(biāo)準(zhǔn)DES加密
"KGS!@#$%" -> 4B47532140232425梧税。
56A25288347A348A -對4B47532140232425進(jìn)行標(biāo)準(zhǔn)DES加密-> C23413A8A1E7665F
0000000000000000 -對4B47532140232425進(jìn)行標(biāo)準(zhǔn)DES加密-> AAD3B435B51404EE
將加密后的這兩組數(shù)據(jù)簡單拼接,就得到了最后的LM Hash称近。
LM Hash: C23413A8A1E7665FAAD3B435B51404EE
Windows下NTLM Hash生成原理
IBM設(shè)計(jì)的LM Hash算法存在幾個(gè)弱點(diǎn)第队,微軟在保持向后兼容性的同時(shí)提出了自己的挑戰(zhàn)響應(yīng)機(jī)制,NTLM Hash便應(yīng)運(yùn)而生刨秆。假設(shè)明文口令是"123456"凳谦,首先轉(zhuǎn)換成Unicode字符串,與LM Hash算法不同衡未,這次不需要添加0x00補(bǔ)足14字節(jié)
"123456" -> 310032003300340035003600尸执。
從ASCII串轉(zhuǎn)換成Unicode串時(shí),使用little-endian序缓醋,微軟在設(shè)計(jì)整個(gè)SMB協(xié)議時(shí)就沒考慮過big-endian序如失,ntoh*()、hton*()函數(shù)不宜用在SMB報(bào)文解碼中送粱。0x80之前的標(biāo)準(zhǔn)ASCII碼轉(zhuǎn)換成Unicode碼褪贵,就是簡單地從0x??變成0x00??。此類標(biāo)準(zhǔn)ASCII串按little-endian序轉(zhuǎn)換成Unicode串抗俄,就是簡單地在原有每個(gè)字節(jié)之后添加0x00脆丁。對所獲取的Unicode串進(jìn)行標(biāo)準(zhǔn)MD4單向哈希,無論數(shù)據(jù)源有多少字節(jié)动雹,MD4固定產(chǎn)生128-bit的哈希值偎快,16字節(jié)310032003300340035003600-進(jìn)行標(biāo)準(zhǔn)MD4單向哈希->32ED87BDB5FDC5E9 CBA88547376818D4,就得到了最后的NTLM Hash
NTLM Hash: 32ED87BDB5FDC5E9CBA88547376818D4洽胶。
與LM Hash算法相比晒夹,明文口令大小寫敏感裆馒,無法根據(jù)NTLM Hash判斷原始明文口令是否小于8字節(jié),擺脫了魔術(shù)字符串"KGS!@#$%"丐怯。MD4是真正的單向哈希函數(shù)喷好,窮舉作為數(shù)據(jù)源出現(xiàn)的明文,難度較大读跷。
使用GetHashes獲取Windows系統(tǒng)的Hash密碼值
GetHashes目前最高版本是v1.4梗搅,它是InsidePro公司早期的一款Hash密碼獲取軟件,其公司地址為:http://www.InsidePro.com效览,該公司還有"SAMInside"无切、"PasswordsPro"以及"Extreme GPU Bruteforcer"三款密碼破解軟件。
(1)GetHashes命令使用格式
GetHashes [System key file] Or??GetHashes $Local
一般使用"GetHashes $Local"來獲取系統(tǒng)的Hash密碼值丐枉,該命令僅在system權(quán)限下才能執(zhí)行成功哆键。通常根據(jù)個(gè)人愛好,可以將"GetHashes.exe"工具軟件命名為其他名稱瘦锹。
(2)使用GetHashes獲取系統(tǒng)Hash值實(shí)例
將GetHashes重命名為getpw籍嘹,然后將其復(fù)制到欲獲取hash密碼值的系統(tǒng)盤中,然后執(zhí)行"GetHashes.exe $local"弯院,順利獲取其密碼Hash值辱士,在本案例中使用的是Radmin的Telnet,單擊"文本"-"保存為"將結(jié)果保存為一個(gè)新文件听绳,然后使用UltraEdit編輯器進(jìn)行編輯颂碘,僅僅保存Hash密碼值部分,后面可使用LC5導(dǎo)入Hash密碼值椅挣,即可破解系統(tǒng)的密碼值头岔。