標籤:
我是如何破解你的WINDOWS密碼的 ?(1)
密碼可以看作我們主要,甚至某些情況下唯一可用於防範入侵的防線。就算入侵者無法在物理上接觸到電腦,對於對外的Web應用,他們依然可以通過遠端桌面通訊協定或身分識別驗證功能訪問到伺服器上的服務。 本文的主要是為了告訴您Windows建立和儲存密碼雜湊(Hash)的方式,以及這些雜湊的破解方式。在介紹了如何破解Windows密碼後,我還將介紹一些技巧,協助您防範此類攻擊。
介紹
密碼可以看作我們主要,甚至某些情況下唯一可用於防範入侵的防線。就算入侵者無法在物理上接觸到電腦,對於對外的Web應用,他們依然可以通過遠端桌面通訊協定或身分識別驗證功能訪問到伺服器上的服務。
本文的主要目的是為了告訴您Windows建立和儲存密碼雜湊(Hash)的方式,以及這些雜湊的破解方式。在介紹了如何破解Windows密碼後,我還將介紹一些技巧,協助您防範此類攻擊。
Windows是如何儲存密碼的
運行Windows的電腦使用兩種方法對使用者密碼建立雜湊,這兩種方法在本質上有著不同的安全意義。這兩種方法分別是LAN Manager (LM)以及NT LAN Manager第二版(NTLMv2)。雜湊是一種加密功能所獲得的結果,這種加密需要擷取任意大小的字串資料,並用演算法對其進行加密,然後返回一個固定大小的字串。
LM密碼雜湊
LAN Manager雜湊是Windows作業系統最早使用的密碼雜湊演算法之一,並且在Windows 2000、XP、Vista和7中使用了更先進的NTLMv2之前,這也是唯一可用的版本。這些新的作業系統雖然可以支援使用LM雜湊,但主要是為了提供向後相容性,不過在Windows Vista和Windows 7中,該演算法預設是被禁用的。
密碼的LM雜湊需要使用下列六個步驟計算獲得:
-
將使用者的密碼全部轉換為大寫字母
-
給密碼添加空(null)字元,直到密碼長度等於14個字元
-
將新獲得的密碼拆分為兩組7位的字元值組
-
使用這些值建立兩個DES加密金鑰,並為每一組添加一個同位位元,這樣即可建立出64位的密鑰
-
使用每個DES祕密金鑰加密一個預定義的ASCII字元([email protected]#$%),這樣即可獲得兩個8位元組Ciphertext值
-
這兩個8位元組的Ciphertext值結合組成一個16位元組的值,也就是最終獲得的LM雜湊
舉例來說,如果使用“PassWord123”作為密碼,在上述操作中這個密碼會被分別轉換為:
-
PASSWORD123
-
PASSWORD123000
-
PASSWOR和D123000
-
PASSWOR1和D1230001
-
E52CAC67419A9A22和664345140A852F61
-
E52CAC67419A9A22664345140A852F61
圖1: 將密碼轉換為LM雜湊
LM儲存的密碼有一些明顯的不足。首先是,加密工作是基於資料加密標準(DES)的,DES最初來源於IBM在二十世紀七十年代的一個項目,該項目最終被NIST進行了改進,並獲得了NSA的支援,於1981年作為一項ANSI標準發布。多年以來,DES都被認為是足夠安全的,但由於這種小型密鑰只有56位,因此從九十年代開始,已經變得不那麼安全。到了1998年,Electronic Frontier Foundation只需要大概23小時即可破解DES。因此,DES開始變得不夠安全,並逐漸被三重DES(Triple-DES)以及AES所取代。簡單來說,這些都屬於其他加密標準,但由於現代電腦的強大效能,很快也被破解。
LM雜湊最大的弱點可能就是DES密鑰的建立過程。在這個過程中,使用者提供的密碼會被自動轉換為全部大寫,並通過補充變為14個字元(這也是LM雜湊密碼的最大長度),隨後會被分為兩組7位字元的值。對於由14個可印刷的ASCII字元組成的密碼,有95的14次方種可能性,而一旦將其腰斬為兩組7位的字元,可能性就降低為95的7次方種,而如果您只允許使用大寫的ASCII字元,可能性將進一步降低為69的7次方種。因此從本質上將,就算您使用不同的大小寫字元,並使用長密碼,一旦密碼被儲存成LM雜湊,所有的努力都將付諸東流,在暴力破解面前,LM雜湊將不堪一擊。
NTLMv2密碼雜湊
NT LAN Manager (NTLM)是由微軟開發,用於取代LM的身分識別驗證協議。最終通過改進,從Windows NT 4開始,NTLMv2被用作全新的驗證方法。
NTLMv2雜湊(下文簡稱為NT雜湊)的建立在作業系統實際參與的工作上更加簡單,並需要使用MD4雜湊演算法,通過一系列數學計算建立雜湊。MD4演算法需要使用三次,這樣才能產生NT雜湊。舉例來說,“PassWord123”這個密碼的MD4雜湊就可以表示為“94354877D5B87105D7FEC0F3BF500B33”。
圖2: 將密碼轉換為NTLMv2雜湊
MD4通常比DES更加健壯,因為可以接受更長的密碼,可允許同時使用大寫和小寫字母,並且並不需要將密碼拆分為更小,更易於破解的片段。
對於使用NTLMv2建立的雜湊,可能最大的不足在於Windows無法使用一種名為Salting的技術。Salting這種技術可以用於產生隨機數,並將該隨機數用於計算密碼的雜湊。這意味著完全相同的密碼可能會具有完全不同的雜湊值,這才是最理想的情況。
在這種情況下,使用者就可以建立所謂的Rainbow Table。Rainbow table並不是指五顏六色的咖啡桌,實際上是一種表格,其中包含了由某一數量的字元所能組成的每一種可能密碼的每一個雜湊值。通過使用Rainbow table,我們就可以從目標電腦提取密碼的雜湊值,並在表中進行檢索。一旦在表中找到相同的內容,就等於知道了密碼。正如您所想的,就算由很少字元組成的Rainbow table,整個表也會非常龐大。這意味著此類表的建立、儲存,以及檢索都是很麻煩的工作。
結論
在本文的第一部分中,我們介紹了密碼雜湊的概念,以及Windows用於建立和儲存這些數值的機制。另外我們還介紹了每種方法的局限性,以及可以用於破解這些密碼的可能途徑。在後續的內容中,我們將介紹擷取和破解這些雜湊的方法,並證明局限性的存在。在介紹完之後,我還將提供一些技巧,讓您獲得更進一步的保護,並建立滿足所需強度的密碼。
這篇是網上找的,但是譯者只翻譯了第一篇,我接下來會翻譯第二篇
我是如何破解你的WINDOWS密碼的 ?(1)