首先提議:
如果你是一個很容易遺忘的人,那么一定不要忘記在第一次設置密碼的同時創建一張可以恢復Windows XP中的賬戶密碼的啟動盤,它可以讓你免去格式化硬盤的煩惱。
從“控制面板”中找到“用戶賬戶”項,選中自己的賬戶進入如圖所示的控制界面,我們可以看到左側任務列表中有一項“阻止一個已忘記的密碼”,點擊后便可打開“忘記密碼向導”,向導會提示插入一張格式化過的空白磁盤,操作過程中會讓你輸入該賬戶所使用的密碼,很快便可以創建一張密碼重設盤。
以后,當我們忘記了賬戶密碼的時候,在沒有使用“歡迎屏幕”登錄方式的情況下登錄到Windows XP后,按下“Ctrl + Alt + Del”組合鍵,出現“Windows 安全”窗口,點擊選項中“更改密碼”按鈕,出現更改密碼窗口。這個窗口中,將當前用戶的密碼備份,點擊左下角“備份”按鈕,激活“忘記密碼向導”,按照提示創建密碼重設盤。
如果在Windows XP的登錄窗口輸入了錯誤的密碼,就會彈出“登錄失敗”窗口,如果你的確想不起來自己的密碼是什么時,可點擊“重設”按鈕,啟動密碼重設向導,通過剛才所創建的密碼重設盤,就可以用這張密碼重設盤更改密碼并啟動系統。重新設定密碼,登錄Windows XP。
“密碼重設盤”的創建,含有一定的危險性,因為任何人都可以使用這一張“密碼重設盤”來登錄Windows XP,都可以以該用戶的名義進入用戶帳戶,操作真正用戶所能操作的一切,所以必須將“密碼重設盤”保存在適當的地方,以防丟失或失泄密。
---------------------------------------
方法1——利用“administrator”(此方法適用于管理員用戶名不是“administrator”的情況)
我們知道在安裝Windows XP過程中,首先是以“administrator”默認登錄,然后會要求創建一個新賬戶,以進入Windows XP時使用此新建賬戶登錄,而且在Windows XP的登錄界面中也只會出現創建的這個用戶賬號,不會出現“administrator”,但實際上該“administrator”賬號還是存在的,并且密碼為空。
當我們了解了這一點以后,假如忘記了登錄密碼的話,在登錄界面上,按住Ctrl+Alt鍵,再按住Del鍵二次,即可出現經典的登錄畫面,此時在用戶名處鍵入“administrator”,密碼為空進入,然后再修改“zhangbp”的口令即可。
---------------------------------------------
方法2——刪除SAM文件(注意,此法只適用于WIN2000)
Windows NT/2000/XP中對用戶帳戶的安全管理使用了安全帳號管理器(Security Account Manager , SAM)的機制,安全帳號管理器對帳號的管理是通過安全標識進行的,安全標識在帳號創建時就同時創建,一旦帳號被刪除,安全標識也同時被刪。安全標識是唯一的,即使是相同的用戶名,在每次創建時獲得的安全標識完全不同。因此,一旦某個帳號被用戶名重建帳號,也會被賦予不同的安全標識,不會保留原來的權限。安全帳號管理器的具體表現就是%SystemRoot%\system32\config\sam文件。SAM文件是Windows NT/2000/XP的用戶帳戶數據庫,所有用戶的登錄名以及口令等相關信息都會保存在這個文件中。
知道了這些,我們的解決辦法也產生了:刪除SAM文件,啟動系統,它會重建一個干凈清白的SAM,里面自然沒有密碼了。
不過,這么簡單的方法在XP是不適用的,可能微軟以此為BUG,做了限制……所以現在在XP系統下,即使你刪除了SAM,還是不能刪除密碼,反而會使系統啟動初始化出錯,從而進入死循環而不能進系統!!
---------------------------------------------
方法3——從SAM文件中找密碼(前提……會使用DOS基本命令就行)
在系統啟動前,插入啟動盤,進入:C:\WINNT\System3\Config\ 用COPY命令將SAM文件復制到軟盤上。拿到另一臺機子讀取。這里需要的工具是LC4,運行LC4,打開并新建一個任務,然后依次擊“IMPORT→Import from SAM file”,打開已待破解的SAM文件,此時LC4會自動分析此文件,并顯示出文件中的用戶名;之后點擊“Session→Begin Audit”,即可開始破解密碼。如果密碼不是很復雜的話,很短的時間內就會得到結果。
不過,如果密碼比較復雜的話,需要時間會很長,這時我們就需要用下面的方法了。:(
---------------------------------------------
方法4——用其他SAM文件覆蓋(前提是你可以得到另外一臺電腦的SAM文件和它的密碼……個人覺得是最為可行的辦法)
1——如上所說,SAM文件保存著登錄名以及口令,那么我們只要替換SAM文件就是替換登錄名以及口令了。不過,這個替換用的SAM文件的“產地”硬盤分區格式要和你的系統一樣(看是FAT32還是NTFS,你自己確認)。最好這個“產地”的系統沒有設密碼,安全方面設置沒動過(實際上很大部分的個人電腦都是這樣),當然,比較保險的方式是把XP的[Win NT\System 32\Config\]下的所有文件覆蓋到[C:\Win NT\System 32\Config\]目錄中(假設你的XP安裝在默認分區C:),
2——如果得不到別人的幫助(我是說“萬一”),你可以在別的分區上在安裝一個XP系統,硬盤分區格式要和原來的一樣,并且請你注意一定不要和原來的XP安裝在同一分區!在開始之前,一定要事先備份引導區MBR,備份MBR的方法有很多,使用工具軟件,如殺毒軟件KV3000等。裝完后用Administrator登陸,現在你對原來的XP就有絕對的寫權限了,你可以把原來的SAM考下來,用10PHTCRACK得到原來的密碼。也可以把新安裝的XP的Win NT\System 32\Config\下的所有文件覆蓋到C:\Win NT\System 32\Config\目錄中(架設原來的XP安裝在這里),然后用KV3000恢復以前悲憤的主引導區MBR,現在你就可以用Administrator身份登陸XP了。
[2號方案我自己都覺得麻煩,還是1號:叫別人幫忙比較好……]
【另外,據說C:\windows\repair 目錄下的SAM是原始版本的,可以用它來覆蓋 system32下的這個 SAM,這樣就可以刪除現在的密碼,而恢復到剛開始安裝系統時的密碼了。如果這個密碼為空,豈不是…… 】
---------------------------------------------
方法5——使用Win 2000安裝光盤引導修復系統(前提……很明顯吧?就是你要有一張Win 2000安裝光盤)
使用Win 2000安裝光盤啟動電腦,在Wndows2000安裝選擇界面選擇修復Windows 2000(按R鍵);,然后選擇使用故障控制臺修復(按C鍵),系統會掃描現有的Window2000/XP版本。一般只有一個操作系統,所以只列出了一個登錄選擇(l:C:\Windows)。從鍵盤上按l,然后回車,這個時候,Window XP并沒有要求輸人管理員密碼,而是直接登錄進入了故障恢復控制臺模式(如果使用的是Windows XP安裝光盤啟動的,那是要求輸人管理員密碼的。這里指的管理員是指系統內建的Administraor賬戶)熟悉Windows的朋友都知道,故障恢復控制臺里面可以進行任何系統級別的操作,例如:復制、移動、刪除文件,啟動、停止服務,甚至格式化、重新分區等破壞性操作。
測試使用光盤:集成SP3的Windows 2000 Proessional 簡體中文版。
測試通過的系統:Windows XP Proessional,打SPI補丁的Windows XP (FAT32和NTFS文件系統都一樣)
[需要注意的是,由于各種原因,市面上的一些Windows 2000安裝光盤不能夠顯現故障控制臺登錄選項,所以也無法利用這個漏洞。同時,由于故障控制臺模式本身的限制,也無法從網絡上利用這個漏洞,換句話說,這個漏洞僅限于單機。]
---------------------------------------------
方法6——利用NET命令(有兩個必要前提才行:按裝WINDOWS XP的分區必須采用FAT 32文件小系統,用戶名中沒有漢字。)
我們知道在Windows XP中提供了“net user”命令,該命令可以添加、修改用戶賬戶信息,其語法格式為:
net user [UserName [Password | *] [options]] [/domain]
net user [UserName {Password | *} /add [options] [/domain]
net user [UserName [/delete] [/domain]]
每個參數的具體含義在Windows XP幫助中已做了詳細的說明,在此筆者就不多闡述了。好了,我們現在以恢復本地用戶“zhangbq”口令為例,來說明解決忘記登錄密碼的步驟:
1、重新啟動計算機,在啟動畫面出現后馬上按下F8鍵,選擇“帶命令行的安全模式”。
2、運行過程結束時,系統列出了系統超級用戶“administrator”和本地用戶“zhangbq”的選擇菜單,鼠標單擊“administrator”,進入命令行模式。
3、鍵入命令:“net user zhangbq 123456 /add”,強制將“zhangbq”用戶的口令更改為“123456”。若想在此添加一新用戶(如:用戶名為abcdef,口令為123456)的話,請鍵入“net user abcdef 123456 /add”,添加后可用“net localgroup administrators abcdef /add”命令將用戶提升為系統管理組“administrators”的用戶,并使其具有超級權限。
4、重新啟動計算機,選擇正常模式下運行,就可以用更改后的口令“123456”登錄“zhangbq”用戶了。另外,zhangbq 進入 登入後在〔控制臺〕→〔使用者帳戶〕→選忘記密碼的用戶,然後選〔移除密碼〕後〔等出〕 在登入畫面中選原來的用戶便可不需密碼情況下等入 (因已移除了) 刪除剛才新增的用戶,在〔控制臺〕→〔使用者帳戶〕→選〔alanhkg888〕,然後選〔移除帳戶〕便可
[但是有人提出:在實驗后得知——在安全模式命令符下新建的用戶不能進入正常模式(此結論暫不確認)]
方法7——用破解密碼軟件(前提是你要有標準的系統安裝光盤——不是那種“集成”多個系統的D版盤)
1——使用PASSWARE KIT 5.0中的Windows KEY 5.0,用于恢復系統管理員的密碼,運行后生成3個文件:TXTSETUP.OEM、WINKEY.SYS和WINKEY.INF,3個文件共50KB。把這3個文件放在任何軟盤中,然后使用XP安裝光盤啟動電腦,啟動過程中按F6鍵讓系統采用第三方驅動程序。此時,正是我們切入的最好時機,放入該軟盤就會自動跳到Windows KEY的界面。他會強行把ADMINISTRATOR的密碼換成12345,如此一來何愁大事不成?嗬嗬!當你重新啟動以后,你會被要求再次修改你的密碼。
2——使用OFFICE NT PASSWORD & REGISTRY EDITOR.用該軟件可以制作LINUX啟動盤,這個啟動盤可以訪問NTFS文件系統,因此可以很好地支持Windows 2000/XP。使用該軟盤中的一個運行在LINUX下的工具NTPASSWD就可以解決問題,并且可以讀取注冊表并重寫賬號。使用方法很簡單,只需根據其啟動后的提示一步一步做就可以了。在此,建議你使用快速模式,這樣會列出用戶供你選擇修改那個用戶密碼。默認選擇ADMIN組用戶,自動找到把ADMINISTRATOR的名字換掉的用戶,十分方便。
3——ERD.Commander2003為Windows的管理員和最終用戶,面對隨時可能崩潰的系統,可能每人都會有自己的一套工具,用來挽救數據和修復系統。ERD Commander這可以算是Winternals Administrators' Pak工具中最強大的組件了,其中一個引人注目的功能就是修改密碼,Windows NT/2000/XP/2003 系統中任何一個用戶的密碼都可以在不知道原先密碼的情況下被ERD修改掉。
---------------------------------------------
方法8——修改屏幕保護程序(前提是你有設置屏保)
使用NTFSDOS這個可以從DOS下寫NTFS分區的工具。用該軟件制作一個DOS啟動盤,然后到C:\Win NT\System 32下將屏幕保護程序Logon.Scr改名,接著拷貝Command.com到C:\Win NT\System 32下(WIN2000下可以用CMD.EXE),并將該文件改名為Logon.Scr。這樣啟動機器15分鐘以后,本該出現的屏幕保護現在變成了命令行模式,而且是具有ADMINISTRATOR權限的,通過他就可以修改密碼或者添加新的管理員賬號了。改完以后不要忘了把屏幕保護程序的名字改回去。---------------------------------------------
方法9——使用啟動腳本(前提……會使用DOS基本命令就行)
Windows XP啟動腳本(startup scripts)是計算機在登錄屏幕出現之前運行的批處理文件,它的功能類似于Windows 9×和DOS中的自動執行批處理文件autoexec.bat。利用這個特性,可以編寫一個批處理文件重新設置用戶密碼,并將它加入啟動腳本中,這樣就達到了目的。以下是具體步驟(假設系統目錄為C:\Windows)。
1.使用Windows98啟動盤啟動電腦。在DOS下新建一個文件叫a.bat,內容只需要一條“net user”命令即可:“Net user rwd 12345678”。這條命令的意思是將用戶rwd的密碼設置為“12345678”(有關Net命令的用法,可參考Windows幫助)。然后將文件a.bat保存到“C:\windows\system32\GroupPolicy\Machine\Scripts\Startup”下。
2.編寫一個啟動/關機腳本配置文件scripts.ini,這個文件名是固定的,不能改變。內容如下:
[Startup]
0CmdLine=a.bat
0Parameters=
3.將文件scripts.ini保存到“C:\winnt\system32\GroupPolicy\Machine\Scripts”下。scripts.ini保存著計算機啟動/關機腳本的設置數據,文件內容通常包含兩個數據段:[Startup]和[Shutdown]。[Startup]數據段下是啟動腳本配置,[Shutdown]數據段下是關機腳本配置。每個腳本條目被分成腳本名和腳本參數兩部分存儲,腳本名保存在XCmdLine關鍵字下,參數保存在XParameters關鍵字下,這里的X表示從0開始的腳本序號,以區別多個腳本條目和標志各腳本條目的運行順序。
4.取出Windows 98啟動盤,重新啟動電腦,等待啟動腳本運行。啟動腳本運行結束后用戶rwd的密碼就被恢復為“12345678”。
5.登錄成功后刪除上述步驟建立的兩個文件。
[實際上你可以借用另一臺電腦用“記事本”編寫a.bat和scripts.ini,再用軟盤通過DOS復制到自己的電腦上]
說明:
以上腳本使用的是FAT32文件系統,如果使用NTFS文件系統,可以將這塊硬盤以從盤模式掛接到其它能識別NTFS文件系統(如Windows 2000或Windows XP)的計算機上進行上述操作。本方法可以恢復管理員(Administrator)的密碼。對Windows2000系統中本地計算機用戶和域用戶的密碼恢復同樣有效。
------------------------------------------------------------------------------------------------------
個人瞎猜的方法
==============
方法10——利用輸入法漏洞(前提是進入系統看見的不是歡迎界面,而是一般的系統網絡用戶登陸窗口)
[其奧義取自網管軟件登陸的破解,沒有在系統里實驗過。不過倒也沒有后遺癥,你們姑且試試]
按ctrl+shift打開拼音輸入法,出現拼音的狀態條,在狀態條上點擊右鍵,就會出現一個下拉菜單,選擇其中的定義詞組(放心,就算系統限制右鍵,在這也不管用)然后選擇文件菜單里面的保存,就會調出保存對話框,然后隨便選擇一個文件夾,點擊右鍵,選擇資源管理器,打開,進去添加個超級用戶,一切就OK啦!
(另外也可以用下拉菜單里的[幫助],打開CHM幫助文件,[選項]-[Internet選項]-[Internet臨時文件夾]-[設置]-[查看文件],同樣可以進文件夾)
另外也可以利用輸入法BUG,這個方法很簡單:就是調出輸入法,調到智能ABC,輸入VV。然后按左方向鍵,光標到字母最前面,按DEL刪掉,按空格,這時系統提示出錯,登陸窗口就被關掉了。進去后……要怎么做,不用多說吧?
[這方法的初衷無非是先進入系統,再更改添加用戶。大不了放棄原先的管理員用戶,自己另建一個使用……]
---------------------------------------------
方法11——使用注冊表(前提……你敢修改注冊表)
[借鑒于“修改注冊表自動登陸系統”]
“修改注冊表自動登陸系統”的內容如下:
【單擊“開始 運行”,在輸入框中鍵入“regedit”打開注冊表編輯器,然后在注冊表編輯器左方控制臺中依次單擊展開“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/Current Version/Winlogon”,再選擇“編輯 添加 字符串值”,在數值名稱中鍵入“AutoAdminLogon”,然后在窗口中的空白位置上點一下,再雙擊剛新建的字符串“AutoAdminLogon”,在彈出的“編輯字符串”對話框中輸入“1”設置系統允許自動登錄。再重復以上的操作,創建一個名為“DefaultUserName”的字符串值,編輯字符串為您準備用于自動登錄的賬戶名稱。再新創建一個名為“Defaultpassword”的字符串值,并編輯字符串為您準備用于自動登錄的用戶賬戶密碼,編輯完并檢查無誤后,關閉注冊表編輯器并重新啟動電腦即可自動登錄。注意,如果已有“DefaultUserName”,可以不必重新創建,直接更改原有字符串值。如果您的系統工作在局域網環境下,并且在登錄到系統上時需要登錄域服務器,那么您還需要再添加一個“DefaultDomainName”并編輯字符串為您登錄的域名稱。】
而我在修改注冊表時,發現里面本來就有“Defaultpassword”的字符串,(這是我的個人情況),當然,我原來就沒有設密碼,所以字符串的值為空。我是想,如果你們的系統也有“Defaultpassword”的字符串,那是否它的值就是密碼呢?
或者你們誰敢以上文的方法修改注冊表,沒準會屏蔽原先的登陸窗口呢!當然,要先備份注冊表。
關于SAM文件
使用過NT內核Windows操作系統的朋友都知道NT內核對系統密碼的管理機制比Win32內核的Windows操作系統要強得多,這部分歸功于NT系統的門衛——SAM。
對于Windows的啟動,很多用戶并沒什么特別的想法,大多數的人都這樣看待這個問題:按下電源,稍等片刻,“傻瓜化”的Windows登錄界面就出現在我們眼前。但是看了此文,你也許就會有點不同的想法了。
微軟做了兩個不同的系統骨架,一個叫Win32,我們用的Win9x/Me系統就附在它上面;另一個叫NT(New Technology),也就是WinNT/2000/XP/2003的骨架。不過很不幸,微軟有點“偏心”,Win32的骨架做得明顯有點過小,所以它成了瘦子,而NT則是典型的美國壯漢。更不幸的是,微軟給Win32配備的PWL門衛是個花瓶,不僅連個家門都看不住,而且嘴巴也守不住秘密;而NT呢,又撈了個好處,SAM門衛盡心盡責,嘴巴也難撬開。NT內核Windows操作系統的密碼安全性較Win32內核Windows操作系統的密碼安全性高出很多跟SAM不無關系,在這篇文章里,我們就一起來認識一下NT內核Windows操作系統的看門神——SAM。
忠實的SAM門衛
SAM最初是跟隨第一代NT來到世界的,它在微軟總部的特工代號叫做“安全賬戶管理器”(Security Accounts Manager),經歷了幾代系統的改進,這個門衛越來越強壯了。SAM平時居住在WINNT\System32\Config下。當然,它不僅僅是一個SAM文件這么簡單,它還帶有一名隨從:Security(如圖1所示)。在NT內核Windows系統啟動的時候,SAM就開始忙碌了,首先,它在入口處要求你出示身份證——沒有?那么就不能進入Windows,并且沒得商量。即使你通過了“門檢”,事情也還遠遠沒有結束,SAM隨時盯著你呢,只要哪里又有人進來了,它就趕緊去問人家要“證件”……SAM記錄的數據很多,包括所有組、賬戶信息、密碼HASH、賬戶SID等,應該說是一個考慮得比較周全的門衛。
前面說過了,SAM不僅僅是一個文件那么簡單,它不但有文件數據,在注冊表里面還有一個數據庫,位于HKEY_LOCAL_MACHINE\SAM下,這是一個比較復雜的結構(如圖所示)。SAM在系統啟動后就處于鎖定狀態,我們沒法擅自更改這個文件內容。
SAM的主要結構和用戶分組
從上述注冊表里的分支我們可以看到以下結果:
1.在HKEY_LOCAL_MACHINE\SAM\SAM\
Domains下就是SAM的內容,其下有兩個分支“Account”和“Builtin”。
2.Domains\Account\Users下存放的就是各個賬號的信息,當然,這里是加密過的二進制數據,每個賬號下面有兩個子項,F和V。項目V中保存的是賬戶的基本資料,用戶名、所屬組、描述、密碼、注釋、是否可以更改密碼、賬戶啟用、密碼設置時間等。項目F中保存的是一些登錄記錄,比如上次登錄時間、錯誤登錄次數等。SAM靠這些齊全的備忘錄來保存與用戶賬號相關的各種信息。
3.Domains\Builtin存放著不同用戶分組信息,SAM就是根據這個來劃分NT中固有的6個不同的工作組的,它們分別是:管理員(Administrators)、備份操作員(Backup Operators)、客人(Guests)、高權限用戶(Power Users)、修復員(Replicator)和普通用戶(Users)。
幕后指揮官
在Windows系統中,雖然SAM如此盡力,但是它卻如《Terminator 3(終結者3)》里MODEL 101的設置一樣,不聽從你的指揮。它只聽本地安全認證(Local Security Authority)程序——LSASS.EXE的差遣,就連進門時的審查也是LSASS的指示。如果你把LSASS殺了,你就等著被趕出門吧——當然,對于普通用戶來說,如果你試圖用普通的進程管理工具或者Windows系統的進程管理殺掉“LSASS.EXE”進程的話,只會得到“該進程為關鍵系統進程,任務管理器無法結束進程。”的提示,本地安全認證(Local Security Authority)在Windows系統中主要負責以下任務:1.重新找回本地組的SID和用戶權限;2.創建用戶的訪問令牌;3.管理本地安裝的服務所使用的服務賬號;4. 存儲和映射用戶權限;5.管理審核的策略和設置;6.管理信任關系。
“薩姆也是人”
俗話說,“人無完人”。盡管SAM(薩姆)是這么盡心盡責,可是在這里,我們還是必須用那句話——“薩姆也是人”來形容它。由于一些設計上的失誤,在WinNT/2000里,如果你忘記了密碼,那么你要做的不是呼天喊地,只需要在非NT環境里把SAM驅逐出硬盤就可以了。但是在XP以后的Windows操作系統里,這個情況得以改善,如果你把薩姆大叔踢了,NT也躲著死活不肯出來了。
當然,這也并不是說XP以后的Windows的操作系統密碼都無法破解,要知道:經典的LC4和NtPassword都專門拿SAM開刀