XP系統EFS加密破解的一線希望
如果某個用戶把自己的登錄帳戶刪除,那麼其他用戶將無法訪問其EFS加密文件。更可惡的是,一旦公司里的某個用戶心懷怨氣,惡意加密了本屬於別的用戶的重要文件,將會導致嚴重問題。一般情況下,這些EFS加密文件已經被判了死刑,但是實際上只要滿足以下條件的話,我們還是可以在末日來臨之前打開逃生的天窗:
(1) 必須知道該被刪帳戶的密碼。
(2) 該被刪帳戶的配置文件必須存在。如果使用「本地用戶和組」管理單元刪除帳戶,則配置文件保留的機會很大,如果使用「用戶帳戶」控制面板刪除帳戶,則有一半機會保留配置文件。如果配置文件不幸被刪,則只能祈禱可以藉助Easy Recovery之類的數據恢復工具進行恢復。
可能有些朋友會覺得這兩個條件比較苛刻,此處賣個關子先……
EFS加密原理
大家知道,EFS加密實際上綜合了對稱加密和不對稱加密:
(1) 隨機生成一個文件加密密鑰(叫做FEK),用來加密和解密文件。
(2) 這個FEK會被當前帳戶的公鑰進行加密,加密後的FEK副本保存在文件$EFS屬性的DDF欄位里。
(3) 要想解密文件,首先必須用當前用戶的私鑰去解密FEK,然後用FEK去解密文件。
看到這里,似乎EFS的脈絡已經很清晰,其實不然,這樣還不足於確保EFS的安全性。系統還會對EFS添加兩層保護措施:
(1) Windows會用64位元組的主密鑰(Master Key)對私鑰進行加密,加密後的私鑰保存在以下文件夾:
%UserProfile%\Application Data\Microsoft\Crypto\RSA\SID
提示 Windows系統里的各種私有密鑰,都用相應的主密鑰進行加密。Windows Vista的BitLocker加密,也用其主密鑰對FVEK(全卷加密密鑰)進行加密。
(2) 為了保護主密鑰,系統會對主密鑰本身進行加密(使用的密鑰由帳戶密碼派生而來),加密後的主密鑰保存在以下文件夾:
%UserProfile%\Application Data\Microsoft\Protect\SID
整個EFS加密的密鑰架構如圖1所示。
圖1
提示 EFS密鑰的結構部分,參考自《Windows Internals 4th》的第12章。
回到「任務描述」部分所述的兩個條件,現在我們應該明白原因了:
(1) 必須知道該被刪帳戶的密碼:沒有帳戶密碼,就無法解密主密鑰。因為其加密密鑰是由帳戶密碼派生而來的。
提示 難怪Windows XP和2000不同,管理員重設帳戶密碼,也不能解密EFS文件。
(2) 該被刪帳戶的配置文件必須存在:加密後的私鑰和主密鑰(還包括證書和公鑰),都保存在配置文件里,所以配置文件萬萬不可丟失,否則就會徹底「鬼子不能進村」。重裝系統後,原來的配置文件肯定被刪,這時候當然不可能恢復EFS文件。
可能有用戶會想,只需新建一個同名的用戶帳戶,然後把原來配置文件復制給新帳戶,不就可以解密EFS文件了?原因在於帳戶的SID,因為新建用戶的SID不可能和老帳戶一樣,所以常規方法是不可能奏效的。我們必須另闢蹊徑,讓系統再造一個完全一樣的SID!
恢復步驟
為了方便描述,這里假設被刪帳戶的用戶名為Admin,Windows安裝在C盤。
1.再造SID
注意 本方法取自「聲明」部分提到的那篇文章。
首先確認被刪帳戶的SID,這里可以進入以下文件夾:
C:\Documents and Settings\Admin\Application Data\Microsoft\Crypto\RSA
在其下應該有一個以該被刪帳戶的SID為名的文件夾,例如是S-1-5-21-4662660629-873921405-788003330-1004(RID為1004)
現在我們要設法讓新建帳戶同樣具有1004的RID,這樣就能達到目的。
在Windows中,下一個新建帳戶所分配的RID是由HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注冊表項的F鍵值所確定的。F鍵值是二進制類型的數據,在偏移量0048處的四個位元組,定義下一個帳戶的RID。那麼也就是說,只需要修改0048處的四個位元組,就能達到目的(讓新建帳戶獲得1004的RID)
確認好以後,別忘記把Admin帳戶的配置文件轉移到別的地方!
(1) 默認情況下,只有system帳戶才有許可權訪問HKEY_LOCAL_MACHINE\SAM,這里在CMD命令提示符窗口,運行以下命令,以system帳戶身份打開注冊表編輯器:
pexec -i -d -s %windir%\regedit.exe
提示 可以在以下網站下載psexec:
http://www.sysinternals.com/Utilities/PsExec.html
(2) 定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注冊表項,雙擊打開右側的F鍵值。
(3) 這里要說明一下,Windows是以十六進制、而且以反轉形式保存下一個帳戶的RID。什麼意思呢?也就是說,如果是1004的RID,對應十六進制就是03EC,但是我們必須把它反轉過來變成EC03,再擴展為4個位元組,就是EC 03 00 00。
所以,我們應該把F鍵值的0048偏移量處,把其中四個位元組改為「EC 03 00 00」,如圖2所示。
圖2
(4) 重要:別忘了重啟計算機!
(5) 重啟以後,新建一個同名帳戶Admin,它的SID應該和以前是完全一樣。如果不相信的話,可以藉助GetSID或者PsGetSID等工具測試一下。
2.「破解」EFS
接下來的方法就非常簡單了,用新建的Admin帳戶身份登錄系統,隨便加密一個文件,然後注銷,用管理員帳戶登錄系統,把原來保留的配置文件復制到C:\Documents and Settings\Admin文件夾下。
再用Admin帳戶登錄系統,現在可以解密原來的EFS文件了。
疑難解答
1.如果已經重裝系統,那怎麼辦?
「聲明」部分提到的那篇文章里提到,如果還記得原來帳戶的密碼,並且配置文件沒有被刪除的話,還有希望。這時候可以藉助sysinternals的NEWSID工具把系統的計算機SID重設為原來的值,再用前面描述的方法構造所需的RID,這樣就可以獲得所需的帳戶SID。剩餘步驟完全一樣。
http://www.sysinternals.com/Utilities/NewSid.html
2.有用戶曾經遇到這樣的問題:登錄系統時收到提示說密碼過期,需要重設,重設密碼登錄後發現打開EFS文件。
KB890951提到這個問題。其解釋是因為在修改密碼時,系統還沒有載入配置文件(有點語焉不詳),原文如下:
This problem occurs because the user profile for the current user is not loaded correctly after you change the password.
配置文件和EFS有何相干?看完本文,大家應該知道,EFS的私鑰和主密鑰都是保存在配置文件里的。由於配置文件沒有載入,所以主密鑰的加密版本沒有得到更新(沒有跟上帳戶密碼的變化),導致主密鑰無法正確解密,從而無法解密私鑰和FEK。這就是問題的真正原因。
該KB提供了一個內部補丁,可以解決這個問題。KB890951的鏈接如下:
http://support.microsoft.com/kb/890951
3.有關公鑰的問題
為了容易理解,筆者故意忽略了公鑰。公鑰保存也保存在帳戶的配置文件里:
%UserProfile%\Application Data\Microsoft\SystemCertificates\My\Certificates
在EFS恢復的操作中,必須確保公鑰也要復制到新帳戶的配置文件里。盡管看起來公鑰與EFS解密無關(它負責加密)。
原來,加密文件$EFS屬性的DDF欄位里除了有帳戶SID和加密的FEK副本外,還有公鑰的指紋信息(Public Key Thumbprint)和私鑰GUID信息(私鑰的某種散列值)。
系統在掃描加密文件$EFS屬性中的DDF欄位時,根據用戶配置文件里的公鑰中所包含的公鑰指紋和私鑰GUID信息,當然還有帳戶的SID,來判斷該帳戶是否具有對應的DDF欄位,從而判斷該用戶是否屬於合法的EFS文件擁有者。
所以公鑰也很重要。
當然公鑰是可以「偽造」的(可以偽造出所需的公鑰指紋和私鑰GUID),以欺騙EFS系統,具體方法可以參考國外的那篇原稿,此處不再贅述。
加強EFS的安全
由於EFS把所有的相關密鑰都保存在Windows分區,所以這可能給EFS帶來一定的安全隱患。目前有一些第三方工具號稱可以破解EFS,這些工具首先攻擊SAM配置單元文件,嘗試破解帳戶密碼,從而破解帳戶密碼→主密鑰的加密密鑰→主密鑰→EFS私鑰→FEK的「密鑰鏈」。
Ⅱ 電腦重裝系統加密文件打不開了怎麼辦
如果你重裝系統前沒有備份證書,文件就永遠也打不開了,請記住這次教訓吧。
EFS解密
如果其他人想共享經過EFS加密的文件或文件夾,又該怎麼辦呢?由於重裝系統後,SID(安全標示符)的改變會使原來由EFS加密的文件無法打開,所以為了保證別人能共享EFS加密文件或者重裝系統後可以打開EFS加密文件,必須要進行備份證書。
點擊「開始→運行」菜單項,在出現的對話框中輸入「certmgr.msc」,回車後,在出現的「證書」對話框中依次雙擊展開「證書-當前用戶→個人→證書」選項,在右側欄目里會出現以你的用戶名為名稱的證書。選中該證書,點擊滑鼠右鍵,選擇「所有任務→導出」命令,打開「證書導出向導」對話框。
在向導進行過程中,當出現「是否要將私鑰跟證書一起導出」提示時,要選擇「是,導出私鑰」選項,接著會出現向導提示要求密碼的對話框。為了安全起見,可以設置證書的安全密碼。當選擇好保存的文件名及文件路徑後,點擊「完成」按鈕即可順利將證書導出,此時會發現在保存路徑上出現一個以PFX為擴展名的文件。
當其他用戶或重裝系統後欲使用該加密文件時,只需記住證書及密碼,然後在該證書上點擊右鍵,選擇「安裝證書」命令,即可進入「證書導入向導」對話框。按默認狀態點擊「下一步」按鈕,輸入正確的密碼後,即可完成證書的導入,這樣就可順利打開所加密的文件。
Ⅲ 重裝系統後 原加密文件怎麼打開
你自己不是知道密碼嗎?如果C盤的安裝目錄被刪除,那文件就打不開了,但也不一定,如果不是的話。如果真的沒辦法,就用破解字典(但是很大10G左右)用暴力破解,就是一點一點試。我想如果你有電腦高手朋友還是讓他幫你破解。
WORD應該是沒有裝好,你把它刪了,在微軟官網下一個試試