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