实验八、Windows本地破解用户口令
目錄
一、實(shí)驗(yàn)?zāi)康募耙?/p>
二、實(shí)驗(yàn)原理
1.Windows NT 系統(tǒng)密碼存儲(chǔ)的基本原理
2.SAM的導(dǎo)出方法
3.SAMInside破解軟件
三、實(shí)驗(yàn)環(huán)境
四、實(shí)驗(yàn)步驟及內(nèi)容
五、實(shí)驗(yàn)總結(jié)
六、分析與思考
一、實(shí)驗(yàn)?zāi)康募耙?/strong>
1、了解Windows2000/XP/Server 2003系統(tǒng)密碼的加密機(jī)制及其脆弱性;
2、學(xué)會(huì)使用Windows本地密碼破解工具來破解密碼跟審計(jì)密碼的安全性;
3、了解設(shè)置健壯的Windows口令,以及配置強(qiáng)壯的密碼策略的必要性。
二、實(shí)驗(yàn)原理
1.Windows NT 系統(tǒng)密碼存儲(chǔ)的基本原理
????? SAM(Security Accounts Manager 安全賬戶管理器)是Windows NT 內(nèi)核操作系統(tǒng),包括Windows2000/XP/Server 2003/Vista/7的用戶賬戶數(shù)據(jù)庫,所有用戶的登錄名及口令等相關(guān)信息都保存在這個(gè)文件中。系統(tǒng)在保存sam信息之前對(duì)sam信息進(jìn)行了壓縮處理,因此,sam文件中的信息不可讀取。此外,在系統(tǒng)運(yùn)行期間,sam文件被system賬號(hào)鎖定,即使是administartor賬號(hào)也無法打開。sam數(shù)據(jù)庫位于注冊(cè)表HKLM\SAM\SAM下,受到ACL保護(hù),可以使用regedt32.exe打開注冊(cè)表編輯器并設(shè)置適當(dāng)權(quán)限查看SAM中的內(nèi)容。SAM數(shù)據(jù)庫在磁盤上就保存在%systemroot%\system32\config\目錄下的SAM文件中,在這個(gè)目錄下還包括一個(gè)security文件,是安全數(shù)據(jù)庫的內(nèi)容,兩者有較少的關(guān)系。SAM數(shù)據(jù)庫中包括所有組,賬戶的信息,包括密碼HASH、賬戶的SID等。
????? Windows系統(tǒng)在SAM中采用了兩種密碼的加密機(jī)制,所以,在sam文件中保存著兩個(gè)口令字,一個(gè)是LanMan版本的散列值(LM),另一個(gè)是NT版本的散列值(NTLM)。
????? ◆ LanMan 散列算法(LM)
????? LanMan散列算法處理用戶口令的過程是:將用戶口令分成兩半,每一半都是7個(gè)字符(不足7個(gè)字符的以0x00補(bǔ)齊),然后分別對(duì)這另個(gè)口令進(jìn)行加密,最后將加密后得到的散列值串連在一起,得到最終的LM散列值。
????? ◆ NT散列算法(NTLM)
????? 密碼散列有兩部分組成:一部分是通過變現(xiàn)DES算法,使用密碼的大寫OEM格式作為密鑰(分成2個(gè)KEY,每個(gè)KEY7字節(jié),用0補(bǔ)足14個(gè)字節(jié)),通過DESECB方式獲得一個(gè)128位的密鑰,加密特殊字符串"KGS!@#$%"獲得一個(gè)16字節(jié)長度的值。另一部分則是使用MD4對(duì)密碼的UNICODE形式進(jìn)行加密獲得的一個(gè)散列。
????? 從上述LM算法流程來看,可以發(fā)現(xiàn)LM安全性上的幾點(diǎn)不足:
????? 1)LM算法將14個(gè)字節(jié)的密碼分為兩組分別進(jìn)行加密,使得兩組密文可以分別破解,并且明文空間從95^14減少到了95^7;
????? 2)LM算法不區(qū)分密碼的大小寫字符,使得明文空間從95^7減少到69^7;
????? 3)LM算法不像其他散列算法一樣包含隨機(jī)的初始向量IV,使得用空間換取時(shí)間的字典攻擊(如彩虹表)等成為可能,2^43的明文空間使用彩虹表最多只需幾個(gè)小時(shí)便能破解。
????? 雖然LM非常不安全,但Windows為了保持前后兼容性,是許多以前支持LM認(rèn)證的經(jīng)典應(yīng)用不至于突然不能使用,所以LM扔存在于相當(dāng)Windows各種版本的操作系統(tǒng)中,不過Vista/7已經(jīng)默認(rèn)不使用LM存儲(chǔ)賬戶密碼散列。
????? NTLM散列的安全性較LM有所提升,因?yàn)槠涿魑目臻g擴(kuò)展到了95^128,采用暴力破解的時(shí)間復(fù)雜度大大增加。但是NTLM散列和LM散列一樣,都沒有在算法中包含隨機(jī)數(shù)據(jù)(salt),所以仍然會(huì)受到字典攻擊。但由于NTLM的明文空間較大,其字段占用的空間也會(huì)呈幾何級(jí)數(shù)增長(NTLM的彩虹表大小為200G左右,而LM的彩虹表只需幾百兆即可),破解時(shí)間自然也較LM要長很多。
2.SAM的導(dǎo)出方法
????? SAM文件系統(tǒng)運(yùn)行時(shí)受到保護(hù),僅對(duì)是可讀寫的system,所以在系統(tǒng)運(yùn)行時(shí)不能將SAM文件復(fù)制出來,必須使用別的系統(tǒng)啟動(dòng)才能復(fù)制SAM文件。
????? SAM文件的獲取方法大致有一下四種:
????? ◆ 通過物理接觸主機(jī),啟動(dòng)其他操作系統(tǒng)來獲取windows分區(qū)上的SAM文件。
????? ◆ 獲取%SystemRoot%\repair\sam文件。
????? ◆ 使用pwdump等工具從注冊(cè)表中導(dǎo)出SAM散列值,轉(zhuǎn)儲(chǔ)成類似與UNIX系統(tǒng)的password格式文件。
????? ◆從網(wǎng)絡(luò)中嗅探分析SMB報(bào)文,從中獲取密碼散列字符串。
????? 在Windows NT 4.0 SP3 之前,所有的密碼散列是以非常簡單的DES加密來實(shí)現(xiàn)安全存儲(chǔ),DES的密鑰只是從用戶賬戶的SID來導(dǎo)出的,所以只需要SAM文件便能破解加密的散列。
????? 但是在NT 4.0 SP3 之后的版本中,Windows引入了SysKey,并且在2000之后作為默認(rèn)執(zhí)行的加密手段。所以要破解經(jīng)過SysKey加密的SAM散列,必須要先從system文件中導(dǎo)出boot key,然后利用MD5導(dǎo)出hashed boot key,再用hashed boot key導(dǎo)出RC4 key,用此RC4 key 便能解密出和Windows NT的 SAM中一樣的散列密文。最后用NT中的解密手段即可獲得能夠進(jìn)行字典攻擊的密碼散列。
3.SAMInside破解軟件
????? SAMInside 為一款俄羅斯人出品的密碼破解軟件,支持Windows NT/2000/XP/Server 2003/Vista/7等操作系統(tǒng),主要用來恢復(fù)Windows的用戶登錄密碼。與一般的Windows密碼破解軟件有所不同的是。多數(shù)的Windows密碼恢復(fù)軟件都是將Windows用戶密碼重置,比如Passware Kit 系列中的Windows Key 等等。SAMInside 則是將用戶密碼以可閱讀的明文方式破解出來,而且SAMInside可以使用分布式方式攻擊方式同時(shí)使用多臺(tái)計(jì)算機(jī)進(jìn)行密碼的破解,大大提高破解速度。
????? SAMInside的離線使用方式需要sam文件盒syskey文件導(dǎo)入后才能進(jìn)行破解,而在線方式則可以直接從本機(jī)獲取,可以從LSASS進(jìn)程直接導(dǎo)入所需要的信息,然后對(duì)指定的用戶進(jìn)行破解即可。
三、實(shí)驗(yàn)環(huán)境
WindowsXP,局域網(wǎng)
四、實(shí)驗(yàn)步驟及內(nèi)容
1. 首先查看本地主機(jī)的密碼策略。
????? 在"開始"菜單中打開"運(yùn)行"對(duì)話框,輸入"secpol.msc"打開"本地安全策略編輯器"。
????? 1)禁用"密碼必須符合復(fù)雜性要求"。
????? 2)設(shè)置"密碼長度最小值":8位以上。
???? 然后訪問"安全設(shè)置" -->"本地策略"-->"安全選項(xiàng)",然后再右側(cè)找到"網(wǎng)絡(luò)安全:不要在下次更改密碼是存儲(chǔ)LAN Manager的哈希值"的設(shè)置,確認(rèn)或更改其為"禁用"(默認(rèn)為“禁用”)。
2. 在本地計(jì)算機(jī)中新建一個(gè)用戶。密碼設(shè)置為8-14的隨機(jī)純數(shù)字組合,如用戶名為“test”,密碼為“13678954376”。
????? 可打開一個(gè)命令提示符,輸入如下命令直接添加用戶。
????? net user test 123456789 /add
????? 當(dāng)然,也可以通過控制面板中的用戶賬戶組件來添加新用戶并為其設(shè)置密碼。
3. 打開一個(gè)命令提示符,進(jìn)入實(shí)驗(yàn)工具目錄中的“pwdump7”,運(yùn)行Pwdump7.exe后即可直接顯示本地計(jì)算機(jī)上所有用戶及其密碼散列值(包括LM散列值和NTLM散列值)
????? 上述輸出的用戶信息基本格式如下:
????? “用戶名:安全相對(duì)表示符(RID):LM散列:NTLM散列”
????? 接著,我們使用如下命令將上述用戶散列信息存儲(chǔ)到磁盤上的“C:\sam.txt”文件中去。pwdump7 > c:\sam.txt
4. 進(jìn)入實(shí)驗(yàn)工具目錄中的“SAMInside2.6.1”,雙擊運(yùn)行SAMInside程序(SAMInside.exe),顯示主界面如下所示。
5. 點(diǎn)擊菜單項(xiàng):“File”——>“Import From PWDUMP -file ……”。然后選擇前面存儲(chǔ)的本機(jī)用戶密碼散列文件“C:\sam.txt”,點(diǎn)擊“打開”按鈕返回主界面。
6. 在“User”欄中僅選擇我們剛才添加的臨時(shí)用戶(“如“test”)。
7. 點(diǎn)擊菜單項(xiàng)“Audit”,確認(rèn)勾選“LM-Hash Attack”,確認(rèn)勾選“Brute-force Attack”,即暴力破解方式。
?8. 點(diǎn)擊菜單項(xiàng)“Service”->“option”,在左側(cè)選擇“Brute-force Attack”,然后在右側(cè)定制暴力破解的字符集。
????? 為了保證實(shí)驗(yàn)的時(shí)間,因此我們?cè)谇懊嫣砑拥玫呐R時(shí)測試用戶的密碼為8-14位的隨機(jī)純數(shù)字組合,所以我們?cè)谶@里僅選擇[0...9]字符集,點(diǎn)擊“oK”按鈕后回到主界面。再點(diǎn)擊“Audit”選擇“Start attack”開始暴力破解。破解后顯示的用戶LM-password即為之前設(shè)置的用戶密碼。
五、實(shí)驗(yàn)總結(jié)
通過過這次實(shí)驗(yàn)我們知道了WindowsXP 系統(tǒng)的登錄名和口令都保存在SAM中,SAM數(shù)據(jù)庫含有賬戶信息,密碼Hash。我們通過使用cmd命令導(dǎo)出SAM散列值。并且通過使用SAMinside工具成功破解了Windows用戶和密碼。
六、分析與思考
1)寫出實(shí)驗(yàn)完成過程,并回答各實(shí)驗(yàn)任務(wù)的相關(guān)問題。
設(shè)置本地密碼策略,新建用戶設(shè)置密碼,通過使用cmd運(yùn)行pwdump7可以讀取本地用戶和密碼散列值,使用Saminside選擇前面pwdump存儲(chǔ)的文件,選擇用戶勾選攻擊類型LM-Hash和Brute-force,然后設(shè)置Brute-force的字典類型,進(jìn)行攻擊即可得到用戶名和密碼。
2)嘗試著對(duì)有字符,數(shù)字,特殊符號(hào)混合的用戶密碼進(jìn)行破解?
當(dāng)有字符時(shí)選擇Brute-force attack標(biāo)簽下的All printable選項(xiàng),數(shù)字就選用Digits,特殊符號(hào)Sepcial symbols有哪些混合就選上
總結(jié)
以上是生活随笔為你收集整理的实验八、Windows本地破解用户口令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis框架常用依赖
- 下一篇: Windows Server入门系列32