破解Windows系統EFS加密文件

EFS(Encrypting File System,加密文件系統)加密是一種基於NTFS磁盤技術的加密技術。EFS加密基於公鑰策略。在使用EFS加密一個文件或文件夾時,系統首先會生成一個由僞隨機數組成的FEK(File Encryption Key,文件加密鑰匙),然後將利用FEK和數據擴展標準X算法創建加密後的文件,並把它存儲到硬盤上,同時刪除未加密的原始文件。接下來系統利用你的公鑰加密FEK,並把加密後的FEK存儲在同一個加密文件中。而在訪問被加密的文件時,系統首先利用當前用戶的私鑰解密FEK,然後利用FEK解密出文件。在首次使用EFS時,如果用戶還沒有公鑰/私鑰對(統稱爲密鑰),則會首先生成密鑰,然後加密數據。如果你登錄到了域環境中,密鑰的生成依賴於域控制器,否則它就依賴於本地機器。說起來非常複雜,但是導適褂黴討芯兔揮心敲綽櫸沉恕FS加密的用戶驗證過程是在登錄Windows時進行的,只要登錄到Windows,就可以打開任何一個被授權的加密文件。換句話說,EFS加密系統對用戶是透明的。這也就是說,如果你加密了一些數據,那麼你對這些數據的訪問將是完全允許的,並不會受到任何限制。而其他非授權用戶試圖訪問你加密過的數據時,就會收到“訪問拒絕”的錯誤提示。

  我的電腦一般來說不會有別人使用,而我經常重裝系統,又懶得備份密鑰,所以我從來沒有使用過Windows 2003或者Windows XP的EFS功能。今天讀到了一些關於EFS密鑰沒有備份因而數據無法恢復的求助帖子,所以突然想出一個點子想試着解開EFS的加密。

  我構造的試驗環境是在Windows XP Pro SP2系統中的一塊NTFS磁盤上建立一個test文件夾,啓用EFS加密。文件夾中是一個加密過的文本文件1.txt。現在我先用另一個帳戶去嘗試讀取這個文件,然後在第二個系統中(相當於重裝系統沒有證書的情況)再次嘗試讀取這個文件。

  第一步,啓用我係統中的GUEST帳戶。

  此時從資源管理器中是不能訪問test文件夾的。

  打開cmd,在任務管理器中終止explorer.exe進程,打開PsExec嘗試用system登錄。

  失敗。提示進程無法創建。看來全縣不夠。

  回到管理員帳戶,新建一個管理員帳戶test並以之登錄。

  在test帳戶中運行資源管理器可以訪問test文件夾,但是不能打開1.txt加密文件。

  此時再用上法以system登錄。此時打開文件爲亂碼!

  運行IceSword.exe,在 文件 中定位test文件夾。右鍵選擇1.txt,複製到桌面,文件名任意,後綴不變。

  雙擊打開文件,正常讀出!第一步破解EFS成功!

  第二步,登陸Windows Server 2003 SP1系統(管理員身份)。

  使用上述方法再次複製1.txt到桌面,打開後出現亂碼,和system讀取時情況一致。第二種嘗試失敗。

  總結:

  本方法意義:

  目前僅適用於察看系統中其他人使用EFS加密過的文件(請讀者務必不要做違法及危害他人權利的事!),在系統重裝或私鑰丟失情況下的文件恢復有待進一步地探索。

  本方法使用的兩個軟件:

  PsExec IceSword。前者是國外非常流行的遠程控制軟件,命令行界面。後者則是PJF製作的國內著名隱藏進程察看軟件冰刃。

  本方法適用條件:

  1. 需要足夠運行上述兩個軟件的權限(如果可以結合net user命令的話應該不難,這只是一個小提示,讀者還請自律^_^)。

  2. 系統內還有該EFS加密文件對應的密鑰(這一條件是基於我的初步推測)

  本方法成功的原因淺析:

  1. 利用了system帳戶特有的內核級權限,這可能是能夠讀取管理員或其他正常用戶密鑰的條件。

  2. IceSword特有的讀取加密文件的技術。關於這一點,是我最百思不得其解的地方,真希望能聽到PJF親自闡述一下這是如何實現的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章