破解Windows密碼 - Ophcrack
May 23, 2009 by 維尼
Windows使用雜湊(hash)的方式儲存密碼,也就是如果我的密碼是Rhomboid,經過某個函數後會變成類似281DAF40(我隨便掰的)這種亂七八糟的字串,Windows會把這個字串儲存起來。下一次我們要輸入密碼時,電腦會經過同一個函數運算,如果輸出的結果是281DAF40,那電腦就會認定密碼正確。所以要得到密碼,要先找到這個hash值才行。這個hash值雖然藏在硬碟裡面,但還是可以透過各種管道把他找出來。
雜湊是單向的運算,也就是Rhomboid可以被運算成281DAF40,但是281DAF40沒有辦法運算回Rhomboid。那我們拿到這個hash值有什麼用?當然還是有的!假設我有一個表格,上面寫著各種不同的密碼經過運算之後會變成什麼值,那當我得到一個hash值之後,我很快就可以回推原本的密碼是什麼,這樣的表格稱為Rainbow Table。可以想見表格越大,能夠處理的密碼就越多,而ophcrack最小的表格是380MB。實際的表格和運算法沒有這麼簡單,我數學也不好無法精準解釋,請參考文末所附的網址。 Ophcrack就是依此原則設計的免費軟體,他有兩個版本,一個是線上下載,在Windows運行中使用,但會被很多防毒軟體擋下來。另一個是可開機光碟映像檔(Ophcrack LiveCD),比較方便。下載後要先燒錄成光碟。用光碟開機後程式會自動尋找系統內的密碼檔開始運算。我在我的電腦新設了四個使用者,密碼分別是abc、145792468、Medicine、FeAxhioZ4211,前三個顯然是不合格的密碼,但第四個看起來比較安全了吧?但結果還是只花了2分39秒就全部被算出來了!很恐怖吧! 就我初步瞭解,Windows Vista使用NTLM演算法,對於Rainbow Table比較有抵抗力。另外如果密碼包含!#%@*($等符號,想要使用ophcrack破解,需額外付費購買更完整的Rainbow Table。密碼超過14個字也會更安全,提供各位設定密碼時參考。(原來Windows XP有這麼大一個漏洞呀!) 這篇文章很不精確,請路過的高手見諒。我很好奇如果不同的字串經過hash可能得到同一個值,那是否意味著對於我們設定的一個密碼,其實可以輸入超過一個以上的密碼,而也可以被電腦接受?