如何刪除win2000中的sam文件
Q:
如何刪除win2000中的sam文件
windows\system32\config目錄下,有個sam文件,但在系統執行時,此文件是受保護的,如何能將其刪除?用lc4軟體破解系統登入密碼時,需匯入此文件,但每次匯入時總提示檔案類型不支持而無法匯入,怎麼才能解決?
A:
設法刪除winnt\system32\config\sam文件,但關於此的各種辦法,都沒辦法「不破壞其他帳號和權限」。
因為2000本機驗證(指非登入到域),仍採用NTLM(NT LAN
Manager),本機所有的用戶帳號和組帳號都存貯在上述的SAM文件中,刪了這個文件以後,當然由用戶新增的用戶帳號、組帳號都沒有了,即使你以後再建同名帳號,權利權限也得重新設定才行。
這個是因為NT、2000在系統中標識帳號(或者確切地說是對像),用的是SID(安全標識符,32個16進制數,占128位,即16個字元),名字只是為了用戶與系統交互方便。
而SID具有唯一性,新增的同名帳號與以前帳號的SID肯定是不同的。
而隨資源存貯的ACL(訪問控制列表)中的各條ACE(訪問控制項),恰恰都是以SID標識用戶、組的權限如何的。
刪完SAM文件後,再次登入進來見到的管理員、Guest和內裝組,是系統按照預設值重新產生的。即系統會重新產生一個SAM文件,在這個文件中,管理員密碼為空。
方法一
光碟啟動,安裝第二套系統(NT/2000/XP/03均可),進入第二套系統,刪除SAM文件
方法二
取下硬碟,掛到另一台電腦上,刪除SAM文件
方法三
利用NTFSDOS(在網上可搜尋到這類軟體)軟碟啟動電腦,刪除SAM文件
方法四
如果你的WINNT夾在FAT分區上,也可以直接利用98啟動碟/98光碟啟動電腦,刪除SAM文件。
「不破壞其他帳號和權限」的方法:
方法一
如果以前製作過該機的緊急修復盤ERD(你需要知道此時的管理員密碼),可利用ERD修復,但會丟失製作ERD時到現在所建的帳號或配置資訊。
●對於NT4,光碟啟動,修復,提供ERD。
●對於2000,需手動將WINNT\repair\RegBack\sam複製到winnt\system32\config下,覆蓋sam文件即可。
說明:
1、製作2000的ERD時,需要選制作備份註冊表選項,才會有RegBack這個夾。
2、2000不能像NT4那樣,直接利用ERD進行密碼復原。為什麼2000在這裡做了這樣一個變化,我也不十分清楚,可能是關於安全的考慮。
方法二
使用工具軟體NTPASSWORD(在網上能搜尋到),製作一張軟碟即可。
利用它可以給管理員重新設一個密碼,最好設一個具體的密碼,比設密碼為空容易成功。
方法三
利用「鳳凰萬能啟動碟」中的ERD Commander 2002,見前面我的文章:點擊進入。
相關的討論:
1、物理安全的重要性。裝有公司重要資料的伺服器或者筆記型電腦,雖然你可以設定完善的NTFS權限,但如果硬碟被人拿走,掛到別的電腦上,或者裝第二套系統。通過「取得所有權」,你設得那些權限就不起作用了。
所以重要資料應當設定加密內容,即EFS(加密文件系統),並將證書匯出(選項「如果匯出成功,從本地機刪除私匙),這樣即使他偷走你的硬碟,可以把資料毀掉,但卻無法讀出資料。這就是EFS的作用,有空的時候,我會單獨撰文講解EFS的。
說明:
共享權限是網路級、資料夾級權限,NTFS權限為本機級、文件級權限。
也就是說共享權限只對網路訪問起作用,如果用戶坐在電腦面前本機訪問時,共享權限是不起作用的,這點初級網管要注意:
盡量利用NTFS權限,而且它也能設得更細緻。再就是我們只能把一個資料夾共享出來,設定共享權限,而不能把一個文件共享出來,如果夾下不同的文件需要不同的權限,那你只能利用NTFS權限實現。
2、帳號匯出匯入。域帳號可以利用csvde或ldifde指令實現,但本機帳號,2000系統卻沒有提供這樣的工具軟體。
可考慮使用前面的辦法:利用「制作備份」製作ERD,選制作備份註冊表選項,然後將WINNT\repair\RegBack\sam拷出(因為直接複製winnt\system32\config\sam文件,系統不允許),比如重裝系統後,進入到「恢復控制台」,手動拷到winnt\system32\config下,覆蓋sam文件即可。
我們能否手工刪除guest帳號嗎?答案是肯定的,我們知道guest帳號資訊是存儲在sam文件和註冊表中的,對於sam文件,系統允許我們手工修改,但經我試驗只要刪除註冊表中guest的帳號註冊資訊我們就可達到目的。方法如下(以Windows
NT和Windows 2000為例):
C:\>regedit
開啟HKEY_LOCAL_MACHINE\SAM\SAM,我們會看到裡面已經沒有資訊了,事實上是有資訊的主要是我們的權限不夠,一般這時候我們是Administrator權限,而事實上此時對於系統的內裝的SYSTEM是可以訪問的,那麼如何去開啟SAM下的帳號資訊呢?
我們先關閉regedit,然後執行:
C:\>regedt32
找到HKEY_LOCAL_MACHINE視窗,選SAM\SAM,然後點功能表中的權限設定,這時候我們可看到Administrators組只具有特殊權限,而SYSTEM帳號卻擁有全部控制權限,想一想這是為什麼呢?其實很容易理解,SYSTEM帳號是系統啟動時候需要的帳號,很多系統內核程序和服務程序大都是以該帳號的權限執行的,若權限太低的話,恐怕我們的系統就執行不了!現在我們需要做的是更改Administrators權限(一定要在進階選項中記住該權限內容以備後用)為全部控制,這樣我們就可以訪問SAM下的資訊了。再次執行regedit:
C:\>regedit
哈!此時HKEY_LOCAL_MACHINE\SAM\SAM下就有東西了,步步深入一直找到:
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F5
和
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Guest
刪除000001F5和Guest,然後退出regedit,再次執行regedt32,恢復Administrators對sam的權限(還記得Administrators的特殊權限嗎?一定要記得啊,實在沒有記住的話找其它同系統的機器看看也行,是一樣的),這樣是為了安全考慮,防止用戶不小心刪除系統帳號。
syskey被設計用來防止輕易獲得SAM密碼
*** 將syskey啟動後系統有什麼發生了什麼,如何關掉syskey呢?***
-1-
將syskey啟動後,在註冊表HKLM\\System\\CurrentControlSet\\Control\\Lsa下被增加了新的鍵值'SecureBoot'中儲存了syskey的設定:
1 - KEY儲存在註冊表中
2 - KEY由用戶登入時輸入的密碼產生
3 - KEY儲存在軟碟中
但是把主鍵刪除或者把值設成0並沒能將syskey關閉,看來還有其他的地方......
-2-
HKLM\\SAM\\Domains\\Account\\F 是一個二進制的結構,通常儲存著電腦的SID和其他的描述資訊。
當syskey被啟動後,其中的內容就變大了(大小大約是原來的兩倍) 增加的部分估計是加密的KEY+一些標記和其他的數值,這些標記和數值中一定有一部分包括
SecureBoot 相同的內容。所以,在NT4(已安裝SP6修正檔包)將這些標記位設為0可能就可以關閉syskey了。
在改變這些設定時系統給出了一個錯誤提示說明SAM和系統設定相互衝突,但是在重新啟動電腦後,系統已經不再使用syskey了。
-3-
再win2000中還有另一個地方還存儲著關於syskey的資訊
HKLM\\security\\Policy\\PolSecretEncryptionKey\\
這也是一個二進制的結構,也是使用同樣的存儲方式,將這裡相應部分同樣設為0,syskey就已經從win2000中移除了。
(如果這三部分修改出現錯誤(不一致),系統會在下次啟動是自動恢復為預設值)
-4-
,然後就是密碼資訊部分。舊的密碼資訊是長度是16字元,但使用syskey後長度全部被增加到20字元。
其中頭四個字元看起來想是某種計數器,可能是歷史使用記錄計數器。奇怪的是,當syskey被啟動時,他並不立即記錄,而是在系統下次啟動時才記錄。而且,當密鑰被改變時,密碼資訊似乎並沒有相應更新。