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