EFS(Encrypting File System,加密文件系統(tǒng))加密是一種基于NTFS磁盤技術(shù)的加密技術(shù)。EFS加密基于公鑰策略。在使用EFS加密一個(gè)文件或文件夾時(shí),系統(tǒng)首先會(huì)生成一個(gè)由偽隨機(jī)數(shù)組成的FEK(File Encryption Key,文件加密鑰匙),然后將利用FEK和數(shù)據(jù)擴(kuò)展標(biāo)準(zhǔn)X算法創(chuàng)建加密后的文件,并把它存儲(chǔ)到硬盤上,同時(shí)刪除未加密的原始文件。接下來(lái)系統(tǒng)利用你的公鑰加密FEK,并把加密后的FEK存儲(chǔ)在同一個(gè)加密文件中。而在訪問(wèn)被加密的文件時(shí),系統(tǒng)首先利用當(dāng)前用戶的私鑰解密FEK,然后利用FEK解密出文件。在首次使用EFS時(shí),如果用戶還沒(méi)有公鑰/私鑰對(duì)(統(tǒng)稱為密鑰),則會(huì)首先生成密鑰,然后加密數(shù)據(jù),那怎樣才能讓密鑰的生成不依賴于域控制器呢?
說(shuō)起來(lái)非常復(fù)雜,但是實(shí)際使用過(guò)程中就沒(méi)有那么麻煩了。EFS加密的用戶驗(yàn)證過(guò)程是在登錄Windows時(shí)進(jìn)行的,只要登錄到Windows,就可以打開(kāi)任何一個(gè)被授權(quán)的加密文件。換句話說(shuō),EFS加密系統(tǒng)對(duì)用戶是透明的。這也就是說(shuō),如果你加密了一些數(shù)據(jù),那么你對(duì)這些數(shù)據(jù)的訪問(wèn)將是完全允許的,并不會(huì)受到任何限制。而其他非授權(quán)用戶試圖訪問(wèn)你加密過(guò)的數(shù)據(jù)時(shí),就會(huì)收到“訪問(wèn)拒絕”的錯(cuò)誤提示。
我的電腦一般來(lái)說(shuō)不會(huì)有別人使用,而我經(jīng)常重裝系統(tǒng),又懶得備份密鑰,所以我從來(lái)沒(méi)有使用過(guò)Windows 2003或者Windows XP的EFS功能。今天讀到了一些關(guān)于EFS密鑰沒(méi)有備份因而數(shù)據(jù)無(wú)法恢復(fù)的求助帖子,所以突然想出一個(gè)點(diǎn)子想試著解開(kāi)EFS的加密。
我構(gòu)造的試驗(yàn)環(huán)境是在Windows XP Pro SP2系統(tǒng)中的一塊NTFS磁盤上建立一個(gè)test文件夾,啟用EFS加密。文件夾中是一個(gè)加密過(guò)的文本文件1.txt?,F(xiàn)在我先用另一個(gè)帳戶去嘗試讀取這個(gè)文件,然后在第二個(gè)系統(tǒng)中(相當(dāng)于重裝系統(tǒng)沒(méi)有證書的情況)再次嘗試讀取這個(gè)文件。
第一步,啟用我系統(tǒng)中的GUEST帳戶。
此時(shí)從資源管理器中是不能訪問(wèn)test文件夾的。
打開(kāi)cmd,在任務(wù)管理器中終止explorer.exe進(jìn)程,打開(kāi)PsExec嘗試用system登錄。
失敗。提示進(jìn)程無(wú)法創(chuàng)建??磥?lái)全縣不夠。
回到管理員帳戶,新建一個(gè)管理員帳戶test并以之登錄。
在test帳戶中運(yùn)行資源管理器可以訪問(wèn)test文件夾,但是不能打開(kāi)1.txt加密文件。
此時(shí)再用上法以system登錄。此時(shí)打開(kāi)文件為亂碼!
運(yùn)行IceSword.exe,在 文件 中定位test文件夾。右鍵選擇1.txt,復(fù)制到桌面,文件名任意,后綴不變。
雙擊打開(kāi)文件,正常讀出!第一步破解EFS成功!
第二步,登陸Windows Server 2003 SP1系統(tǒng)(管理員身份)。
使用上述方法再次復(fù)制1.txt到桌面,打開(kāi)后出現(xiàn)亂碼,和system讀取時(shí)情況一致。第二種嘗試失敗。
總結(jié):
本方法意義:
目前僅適用于察看系統(tǒng)中其他人使用EFS加密過(guò)的文件(請(qǐng)讀者務(wù)必不要做違法及危害他人權(quán)利的事!),在系統(tǒng)重裝或私鑰丟失情況下的文件恢復(fù)有待進(jìn)一步地探索。
本方法使用的兩個(gè)軟件:
PsExec IceSword。前者是國(guó)外非常流行的遠(yuǎn)程控制軟件,命令行界面。后者則是PJF制作的國(guó)內(nèi)著名隱藏進(jìn)程察看軟件冰刃。
本方法適用條件:
1. 需要足夠運(yùn)行上述兩個(gè)軟件的權(quán)限(如果可以結(jié)合net user命令的話應(yīng)該不難,這只是一個(gè)小提示,讀者還請(qǐng)自律^_^)。
2. 系統(tǒng)內(nèi)還有該EFS加密文件對(duì)應(yīng)的密鑰(這一條件是基于我的初步推測(cè))
本方法成功的原因淺析:
1. 利用了system帳戶特有的內(nèi)核級(jí)權(quán)限,這可能是能夠讀取管理員或其他正常用戶密鑰的條件。
2. IceSword特有的讀取加密文件的技術(shù)。