我是如何破解你的WINDOWS密碼的 ?(1)

2022-05-19 00:48:16 字數 3044 閱讀 7237

密碼可以看作我們主要,甚至某些情況下唯一可用於防範入侵的防線。就算入侵者無法在物理上接觸到計算機,對於對外的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字元(kgs!@#$%),這樣即可獲得兩個8位元組ciphertext值

這兩個8位元組的ciphertext值結合組成乙個16位元組的值,也就是最終獲得的lm雜湊

舉例來說,如果使用「password123」作為密碼,在上述操作中這個密碼會被分別轉換為:

password123

password123000

passwor和d123000

passwor1和d1230001

e52cac67419a9a22和664345140a852f61

圖1:將密碼轉換為lm雜湊

lm儲存的密碼有一些明顯的不足。首先是,加密工作是基於資料加密標準(des)的,des最初**於ibm在二十世紀七十年代的乙個專案,該專案最終被nist進行了改進,並獲得了nsa的支援,於2023年作為一項ansi標準發布。多年以來,des都被認為是足夠安全的,但由於這種小型金鑰只有56位,因此從九十年代開始,已經變得不那麼安全。到了2023年,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用於建立和儲存這些數值的機制。另外我們還介紹了每種方法的侷限性,以及可以用於破解這些密碼的可能途徑。在後續的內容中,我們將介紹獲取和破解這些雜湊的方法,並證明侷限性的存在。在介紹完之後,我還將提供一些技巧,讓您獲得更進一步的保護,並建立滿足所需強度的密碼。

這篇是網上找的,但是譯者只翻譯了第一篇,我接下來會翻譯第二篇

客戶問題,如果是你如何破解?

小王是名有3年工作經驗的專案經理,在一次開發實施類的專案啟動時,小王做了非常細緻的計畫,尤其是擔心客戶不配合專案工作產生拖延,制定了一套客戶方和專案組臨時的管理組織結構,並對每個角色都寫了詳細的工作責任說明。小王在專案的執行過程中,發現客戶並不是按照之前承諾的工作職責履行自己的工作,經常按照自我的理...

你是我的酒精

前世的輪迴,今生的追憶。只為奈何橋上那無悔的誓言。縱然尋她千百遍,暮然回首,希望伊人已在燈火闌珊處。你好像那56度白酒,我就是那個酒鬼。遇到你,我醉了,從此整個世界都是愛的國度。見不到你,我暈了,從此整個人間都虛無縹緲。你的一句話,讓我不知所措 你的一句話,讓我輾轉反側 你的 一句話,讓我生不如死 ...

你是Switch我是case

switch case 和 if else 的區別和聯絡 switch case 和if else 都表示分支結構 switch中類似goto,有一一對映關係,判斷一次直接跳轉 if可能進行多次判斷 所以對立事件寫if,else if,而不是if,if 避免多次無效判斷,這也是很多人說switch效...