繞過 Windows 密碼保護 — SneakyWinIntruder (SWI)

(This legacy article is Chinese-only. Translate it to English.)

Sneaky Win Intruder in Windows 7 PESneakyWinIntruder (SWI) 在 Windows PE 3.0 下的運行畫面。

做電腦維修的,其中一樣常做的就是向客人查詢 Windows 密碼,因為 Windows 內的事件檢視器、當機報告 (Minidump) 等都是很有用的除錯工具。例如當見到事件編號 (Event ID) 為 7 的紅色交叉,硬碟編號是 0 (Harddisk0) 又顯示有錯誤區塊 (bad block) 的話便已可以確診有壞磁區 (如果之後又沒有了壞磁區,可能是硬碟自己修復了,但始終曾經出現問題)。另一方面,有不少有名的系統診斷軟體 (例如舊版本的 Sysinternals Autoruns) 都是要 Windows 在登入後才能運作的 (如果 Windows 不能進入,其實仍可以用 Paraglider's Runscanner 在非登入時模擬登入狀態使用該些軟體,這個下次再談)。那是否表示如果聯絡不上客人維修便要延誤了嗎?客人的電話錯了怎辦?除了等他再打過來,其實可以主動點 - 強行登入 Windows!

坊間繞過 Windows 密碼的方法和軟體破多,有窮舉法 (brute force attack),但不能準確知道所花時間,例如 Elcomsoft 便有能使用 CUDA GPU 加速的產品;一類是重設密碼的,例如使用 ERDCommander LockSmith 或 NTPWEdit 重設 Windows 密碼,這方法個人從沒有使用,因為密碼重設後難保不會讓客人懷疑或帶來麻煩,例如若客人有 EFS (Encrypting File System) 加密了的檔案,不用回本來的密碼是開不了的;另一類則不會更改密碼,直接進入 Windows,例如 Konboot、WindowsGate;一類則可製作一個新帳戶,用它來「為所欲為」也不怕。小弟常用最後一種,因為很重視個人私隱;使用客人的帳戶應可免則免。完成後只要刪除新建的帳戶便可消除大部份足印

這一種方法的代表者有「將 sethc.exe/utilman.exe 換成 cmd.exe」技巧。不知道大家有沒有試過在登入時碰下 shift 鍵太多次之後 Windows 出現啟動相粘鍵的訊息?sethc.exe 就是那時執行的程式。而 utilman.exe 則是 Vista/7 登入畫面左下角的輕鬆存取功能。只要將它們換成 cmd.exe 就可以在登入畫面喚出由系統身份 (NT Authority\System) 執行的「命令提示字元」,然後在那裡輸入 lusrmgr.msc 或用 net user 指令就可以新增帳戶然後進入 Windows 了。

由於小弟偏好這個技巧,但坊間的軟體好像沒有一種是完全利用這種技巧 (近似的雖有 WindowsGate、Sala's Password Renew、Dc-PASS,但都不是利用 sethc.exe),所以小弟編寫了一些指令檔,在令自己對工作生厭之前將這堆刻板的步驟自動化... 接下來會介紹 Sneaky Win Intruder Type 1,以下簡稱 Swi 1。


注意:執行 Swi 前請確定它所依賴的程式已經放在 Swi 資料夾或者系統資料夾 (System32)。請參閱 Readme.txt。

Swi 1 所做的可以簡單分成三部份:

1 - 置換 sethc.exe

因客人 Windows 受密碼保護,首要是用另一個作業系統起機 (e.g. Windows PE),進入後執行 Swi1.bat。跟著指示做。過程中如果它偵測到目標 Windows 為 Vista/7,而且 UAC (User Account Control) 狀態為開啟,便需輸入「y」關上 UAC 以確保後期運作無誤。成功後可關機然後啟動目標 Windows,進入第二部份。

Sneaky Win Intruder in Windows 7在 Windows 7 下搜尋 Windows 的畫面;可輸入「s」進入此選單

Sneaky Win Intruder in NoName XPE在 NoName XPE 下的 Part 1 完成畫面
(在 Windows PE 1.x 下執行前需先從 XP 補回 attrib.exe 和 find.exe,放在 Swi 資料夾)

2 - 新增帳戶

在目標 Windows 的登入畫面按下 shift 鍵五次,在彈出的「命令提示字元」輸入「adduser1」便會自動建成帳戶。過程中它會問是否重新載入歡迎畫面,如新增帳戶後歡迎畫面仍未出現新帳戶,可輸入「y」。最後用以下的帳戶資料登入:
  • 用者:temp
  • 密碼:Password12! (區分大小寫)

Windows 7 logon screen, sethc.exe hacked
Windows 7 下的 Part 2 過程動畫

(可見 Windows 7 下些訊息未能正常顯示,但不影響運作,按任何鍵繼續便可)

※ 3 -
還原系統

電腦修好,是時候刪除帳戶、「抹掉足印」了!先打開命令提示字元 (cmd.exe),輸入「clean1」。(注意不要經 shift 鍵技巧打開,否則恢復過程可能失敗。)

至目前為止,帳戶已刪除,sethc.exe 已恢復,上次登錄用戶記憶已刪除 (僅在 AutoAdminLogon 項目沒有設定時)。這時候其實您的部分已經完成,餘下的將在客人取回電腦後首次登入時在背景繼續執行。但是,若該用戶沒有系統管理員權限,作業便會失敗 (透過 RunOnce 執行的原故)。儘管真的失敗了,
其實普通用戶也不會輕易察覺到剩餘的痕跡;若成功,UAC 將重新啟用 (若最初是開的),用者設置檔 (user profile) 和其餘遺留下來的程式將被刪除。

已試過能用在中文或英文的 Windows XP、2003、Vista、7,基礎系統為 Windows PE 1.x 的 (NoName XPE,Hiren's Boot CD),PE 2.0 (VistaPE),PE 3.0 (C7PE)。不過仍有一點 bugs,請參閱 Readme.txt。

最後,按此下載。(請注意 Part 2 指令錯寫為「adduser」,要知道應為「adduser1」。下一版本會修正。)

歡迎用以下方式儲存或分享本文:

Comments

  1. 你好,文章底部有下載的連結啊~

    題外話,最近發覺這個版本欠了 attrib.exe、reg.exe 在舊版 PE 下使用有點不便,最好自行補回。

    另外有些 user 在首次使用時不知道要輸入「search」來搜尋已安裝的 Windows,下一版會改善介面。

    ReplyDelete

Post a Comment