解析哈希值傳遞攻擊的基本原理
如今網絡攻擊者的技術已經發展到了一個非常高的程度,甚至不需要至到你的用戶密碼就可以直接反問你的系統,不要驚訝,通過哈希值傳遞攻擊完全可以達到上述所說的效果。而且哈希值傳遞攻擊不需要通過零日漏洞或者釣魚信息,那么讓我們來看一看究竟什么是哈希值傳遞攻擊。
數據包級別的哈希
每當我們在windows系統中為帳戶創建一個密碼時,系統都會將密碼轉化為哈希值。哈希值是加密函數的結果,加密函數會取出數據中任意大小的字符串來執行數學加密函數,并產生一個固定大小的字符串,最終的結果并不是用戶所輸入的密碼(例如123456),而是哈希字符串“94354877D5B87105D7FEC0F3BF500B33”。
這從幾個方面來看是很有意義的。首先,這意味著你的密碼不是以純文本的格式保存在你的本地硬盤中以致任何人都可能看到你的密碼。其次這意味著當你使用密碼驗證到另一個設備(例如域控制器)時你的密碼并不是以純文本的格式在網絡上傳遞的。下面我們將探討哈希是如何創造的。
當你試圖訪問計算機中受用戶名和密碼身份驗證保護的資源,主機會要求你進行身份驗證。通常情況下,你需要提供一個用戶名和密碼。當你輸入你的密碼后,計算機會立即對密碼執行哈希函數并將其提交給主機,主機就會將其與身份驗證數據庫進行對比,如果哈希匹配的話,你就可以通過驗證。
現在,考慮一種替代方案。如果當我們手動建立與主機(主機上有我們想要訪問的資源)的連接時,我們不是輸入用戶名和密碼,而是輸入管理員用戶名以及我們竊取的管理員哈希。這樣我們就能夠獲取對主機的管理權限訪問。請記住,主機所需要的只是接收與其匹配的哈希值。這意味著你不需要對密碼執行單向哈希函數,你只需要提供哈希值,這也是哈希值傳遞攻擊的基本原理。
【編輯推薦】