NTLM哈希深度解析:從原理到安全實踐

NTLM哈希深度解析:從原理到安全實踐

作為一名白帽子黑客,深入理解NTLM哈希機制對保障企業網絡安全至關重要。

1. NTLM哈希概述

NTLM(New Technology LAN Manager)是微軟推出的一套身份驗證協議套件,用于在Windows網絡中驗證用戶身份并保護通信安全。它通過客戶端-服務器之間的“挑戰/響應”機制工作,避免了明文密碼在網絡中的傳輸。

在Windows系統中,用戶的明文密碼不會直接存儲,而是會保存其密碼哈希值。本地用戶的密碼哈希存儲在SAM(Security Account Manager)數據庫中,而域內用戶的密碼哈希則保存在域控的NTDS.dit文件中。

2. LM Hash與NTLM Hash

2.1 LM Hash(LAN Manager Hash)

LM Hash是Windows早期采用的加密算法,由IBM設計,存在明顯安全缺陷。

LM Hash計算過程

  1. 將用戶密碼轉換為大寫,并轉換為16進制字符串
  2. 不足14字節時使用0在后方補全
  3. 將16進制字符串分成兩個7byte部分
  4. 每部分轉換為56bit的比特流(不足左邊補0)
  5. 每7bit為一組,每組末尾加0,重新組合
  6. 分別用固定字符串"KGS!@#$%"作為Key進行DES加密
  7. 將加密后的兩組結果拼接,得到最終的LM Hash值

LM Hash的安全缺陷

  • 密碼長度限制為14字符,強度不足7字符時,第二個分組加密結果固定為aad3b435b51404ee
  • 不區分大小寫,降低了密碼空間
  • 使用硬編碼密鑰和弱加密算法(DES)
  • 可逆性較高,易于破解

2.2 NTLM Hash

為解決LM Hash的安全問題,微軟在Windows NT 3.1中引入了NTLM協議。

NTLM Hash計算過程

  1. 將用戶明文密碼轉換為十六進制格式
  2. 對十六進制格式的密碼進行Unicode編碼(在每個字節后添加0x00)
  3. 使用MD4摘要算法對Unicode編碼數據進行Hash計算

NTLM Hash生成示例:

明文密碼:12345
轉換成16進制:313233343536
轉換成unicode:310032003300340035003600
md4加密: 32ed87bdb5fdc5e9cba88547376818d4

NTLM Hash基于MD4算法,不可逆,相比LM Hash安全性顯著提高。從Windows Vista和Server 2003開始,微軟已默認禁用LM Hash。

3. NTLM認證流程

NTLM認證采用質詢/響應(Challenge/Response) 機制,分為本地認證和網絡認證兩種場景。

3.1 本地認證

用戶登錄系統時:

  1. Windows調用winlogon.exe接收輸入密碼
  2. 密碼交給lsass.exe進程,該進程在內存中存儲一份明文密碼
  3. 將明文密碼加密為NTLM Hash
  4. SAM文件中的NTLM Hash比對
  5. 匹配則通過認證

3.2 網絡認證

網絡認證涉及三個消息交換:Type1(協商)、Type2(質詢)和Type3(身份驗證)。

  1. Type1(協商):客戶端向服務器發送Type1消息,包含認證主體、用戶、機器及所需安全服務等信息。
  2. Type2(質詢):服務器生成16位隨機Challenge,本地存儲后發送給客戶端。
  3. Type3(響應):客戶端使用用戶NTLM Hash加密Challenge,得到Net-NTLM Hash,封裝到Type3消息發送給服務器。
  4. 驗證:服務器使用存儲的NTLM Hash同樣加密Challenge,比較自己計算的結果與客戶端發送的是否匹配。

此過程中,Net-NTLM Hash不同于NTLM Hash,它是由原始NTLM Hash與服務器Challenge計算得到的,不能直接用于哈希傳遞攻擊(PTH),但可通過暴力破解獲取明文密碼。

4. NTLM哈希的安全威脅

NTLM協議存在多種安全威脅,白帽子黑客需要了解這些攻擊手法以更好地防御它們。

4.1 哈希傳遞攻擊(Pass-the-Hash, PTH)

PTH攻擊利用NTLM認證的缺陷,使攻擊者能夠使用用戶的密碼哈希值進行NTLM認證,而無需明文密碼。

利用條件

  • 獲取了目標用戶的NTLM Hash
  • 目標主機開放SMB等服務
  • 目標系統上存在相同的用戶賬戶(在域環境中,域用戶哈希相同,成功率更高)

利用工具

  • Mimikatz:最常用的PTH工具
    privilege::debug
    sekurlsa::pth /user:administrator /domain:tisheng.test /ntlm:3ec403e7aee6461f12e8f7b644410605
    
  • 成功后會彈出新窗口,可訪問遠程主機資源

4.2 Net-NTLM Relay攻擊

Net-NTLM Relay是一種中間人攻擊,將捕獲的Net-NTLM Hash重放到其他服務,模擬合法用戶執行惡意操作。

攻擊原理

  1. 攻擊者截取Net-NTLM Hash(Response消息)
  2. 將Hash重放到其他使用NTLM認證的應用(如SMB、HTTP、LDAP)
  3. 繞過認證簽名校驗,利用未啟用簽名的協議

Relay攻擊類型

  • Relay2SMB:重放到SMB服務器,直接控制目標服務器
  • Relay2HTTP:重放到Exchange服務器,收發郵件等
  • Relay2LDAP:在域環境中最有效,可提升權限、設置委派等

利用工具

  • impacket-smbrelayx.py
    python3 smbrelayx.py -h 10.10.1.230 -c whoami
    
  • impacket-ntlmrelayx.py
    python3 ntlmrelayx.py -t smb://10.10.1.230 -c whoami -smb2support
    

4.3 NTLM哈希竊取技術

攻擊者通過多種手段誘使系統泄露NTLM哈希值:

  1. LLMNR/NBNS毒化:利用名稱解析協議,當DNS解析失敗時,Windows會使用LLMNR/NBNS協議,攻擊者可響應這些請求并要求認證。
  2. 惡意文件誘騙
    • desktop.ini:修改文件夾圖標屬性指向惡意UNC路徑
    • scf文件:利用IconFile屬性支持UNC路徑的特性
    • 惡意快捷方式:創建指向遠程SMB服務器的快捷方式
  3. 瀏覽器觸發:頁面中包含UNC路徑時,瀏覽器會嘗試請求并觸發NTLM認證
  4. COM對象濫用:通過VBScript/PowerShell實例化Shell.ApplicationMSXML2.XMLHTTP等COM對象,向攻擊者控制的UNC路徑發起請求

近期漏洞利用

  • CVE-2025-24054:攻擊者通過釣魚郵件發送包含惡意.library-ms文件的ZIP壓縮包,用戶解壓后Windows Explorer會自動與惡意文件交互,觸發漏洞連接攻擊者控制的SMB服務器并泄露NTLM哈希。盡管微軟已發布補丁,但研究人員發現修復并不完整,仍存在繞過風險。

5. 防御措施與最佳實踐

作為白帽子黑客,了解攻擊手段后更需要掌握如何有效防御。

5.1 基礎防護措施

  1. 及時安裝安全更新:立即安裝2025年3月的Windows安全更新,修復CVE-2025-24054等漏洞。
  2. 禁用不必要的NTLM認證:在網絡環境中優先使用更安全的Kerberos認證。
  3. 啟用SMB簽名:要求所有SMB通信必須簽名,防止Relay攻擊。
  4. 強化密碼策略:使用復雜且長度超過14字符的密碼,避免LM Hash生成。

5.2 高級防護策略

  1. 審計自啟動路徑:定期檢查Startup文件夾及Run注冊表,防止惡意腳本自啟動。
  2. 限制COM組件濫用:通過組策略白名單管理Shell.ApplicationMSXML2.XMLHTTP等危險COM對象。
  3. 控制UNC訪問:隔離或認證外部網絡共享訪問。
  4. 部署多因素認證:增加認證層次,即使哈希泄露也能提供保護。
  5. 啟用LAPS(本地管理員密碼解決方案):確保每臺機器的本地管理員密碼不同,有效防御PTH橫向移動。
  6. 網絡流量監控:部署IDS/IPS規則(如Snort 64742/64743)攔截異常NTLM認證流量。

5.3 深度防御實踐

  1. 限制域管理員權限:避免域管理員賬戶登錄普通主機,減少憑證泄露風險。
  2. 實施網絡分段:將網絡劃分為多個安全區域,限制橫向移動范圍。
  3. 定期進行安全評估:使用Mimikatz、Responder等工具模擬攻擊,發現環境中的脆弱點。
  4. 監控異常身份驗證嘗試:實施高級安全監控,及時發現和響應可疑活動。

6. 結語

NTLM協議由于其設計缺陷和歷史遺留問題,仍然是Windows環境中重要的安全攻擊面。作為一名白帽子黑客,深入理解NTLM哈希的工作原理和相關攻擊技術,有助于更好地評估和防御企業網絡的安全風險。

盡管微軟正在逐步推廣更安全的Kerberos認證協議,但在混合環境或工作組模式下,NTLM仍將繼續存在相當長的時間。防御縱深策略持續安全測試是應對這些威脅的關鍵,即使是對已宣稱修復的漏洞也應保持警惕。

希望通過這篇技術文章,您能更全面地理解NTLM哈希的安全機制和威脅,為構建更安全的網絡環境貢獻力量。


本文僅用于安全研究和教育目的,請合法合規地使用這些技術知識。未經授權的網絡攻擊、數據竊取等行為均屬違法,需承擔法律責任。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/97031.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97031.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97031.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

4-3.Python 數據容器 - 集合 set(集合 set 概述、集合的定義、集合的遍歷、集合的常用方法)

集合 set 概述集合用于存儲一系列元素集合存儲的元素是無序的,不支持索引集合存儲的元素是不可以重復的集合存儲的元素可以是不同類型的,例如、數字、字符串、甚至是其他集合集合是可變的,在程序運行時可以添加、刪除其中的元素一、集合的定義…

驗證碼請求與緩存問題解決方案

驗證碼請求與緩存問題解決方案 1.問題描述 請求驗證碼圖片未變化,且未監聽到新請求的問題。 2.問題分析 這個問題的根本原因通常是瀏覽器緩存機制導致的 - 瀏覽器會緩存相同URL的圖片,導致第二次請求時直接從緩存讀取而不發送新請求。 3.解決方案思路 在…

安卓接入通義千問AI的實現記錄

官網&#xff1a;https://help.aliyun.com/zh/model-studio/use-qwen-by-calling-api#b1320a1664b9a 創建網絡請求 創建一個BaseNetworkApi基類用于實現各種攔截器等。 abstract class BaseNetworkApi {fun <T> getApi(serviceClass: Class<T>, baseUrl: String…

Linux 命令瀏覽文件內容

Linux 命令瀏覽文件內容 1. cat 查看文件的所有內容1.1 -n 顯示行號1.2 -b 顯示沒有空行的行號2. head 前10行標準輸出2.1 -c 輸出每行第一個字符2.2 -n 指定行數3. tail 顯示文件的最后 10 行數據3.1 -c 顯示指定字符3.2 -n 指定行數3.3 顯示追加內容4. more 分頁顯示文件內容…

UVa11607 Cutting Cakes

UVa11607 Cutting Cakes題目鏈接題意分析AC 代碼題目鏈接 UVa11607 Cutting Cakes 題意 平面上有n&#xff08;n≤1 500&#xff09;個點&#xff0c;其中沒有3 點共線。另外有m&#xff08;m≤700 000&#xff09;條直線&#xff0c;你的任務是對于每條直線&#xff0c;輸出3…

[e3nn] 等變神經網絡 | 線性層o3.Linear | 非線性nn.Gate

第4章&#xff1a;等變神經網絡模塊 歡迎回來&#xff5e; 在我們探索e3nn的旅程中&#xff0c;我們已經揭示了一些基本概念&#xff1a; 在第1章&#xff1a;不可約表示&#xff08;Irreps&#xff09;中&#xff0c;我們學習了Irreps作為等變數據的標簽&#xff0c;告訴我們數…

共享云服務器替代傳統電腦做三維設計會卡頓嗎

與傳統本地工作站相比&#xff0c;云服務器在硬件配置、協作效率和成本控制方面具有明顯優勢&#xff0c;但設計師們比較關心的主要問題始終是&#xff1a;使用共享云服務器進行三維設計會出現卡頓嗎&#xff1f;這取決于硬件配置、網絡環境、軟件優化及使用場景等多方面因素。…

Autosar之CRC模塊概述

簡介 CRCL模塊提供如下的算法&#xff0c;用于對輸入數據進行循環冗余校驗&#xff0c;用于核對數據傳輸過程中是否被更改或者傳輸錯誤&#xff1a; CRC8: SAEJ1850 CRC8H2F: CRC8 0x2F polynomial CRC16: CCITT-FALSE CRC32: 0xF4ACFB13 CRC32P4: CRC32 0x1F4ACFB13 polynomia…

隱私計算框架PrivacyMagic(密算魔方)

隱私計算框架PrivacyMagic&#xff08;密算魔方&#xff09; 動機&#xff1a;寫論文時為了實現方案需要調用各種密碼學庫&#xff0c;寫起來有些混亂&#xff0c;失去了代碼結構的美感。最可氣的是現有的密碼學方案基本上是個寫個的&#xff0c;接口、類型并不通用&#xff0…

Linux--->網絡編程(TCP并發服務器構建:[ 多進程、多線程、select ])

TCP并發服務器構建一、服務器單循環服務器&#xff1a;服務端同一時刻只能處理一個客戶端的任務&#xff08;TCP&#xff09;并發服務器&#xff1a;服務端同一時刻可以處理多個客戶端的任務&#xff08;UDP&#xff09;二、TCP服務端并發模型1、多進程進程資源開銷大&#xff…

深入解析達夢數據庫:模式分類、狀態管理與實操指南

達夢數據庫&#xff08;DM Database&#xff09;作為國產數據庫的核心代表&#xff0c;其模式與狀態機制是保障數據高可用、實現主備同步的關鍵基礎。無論是日常運維中的數據庫配置&#xff0c;還是故障場景下的主備切換&#xff0c;都需要深入理解模式與狀態的特性及交互邏輯。…

如何選擇適合自己的PHP微服務框架?

在開始選擇之前&#xff0c;我們首先要明白&#xff1a;為什么需要微服務框架&#xff1f;傳統的單體應用&#xff08;Monolithic Application&#xff09;雖然開發簡單&#xff0c;但隨著業務復雜度的增加&#xff0c;會變得臃腫且難以維護。而微服務架構通過將應用拆分為一組…

ESP32使用場景及大規模物聯網IoT

最近用ESP32搭建了一個網絡,想知道搭建的網絡拓撲對不對。一、物聯網無線通信v.s通訊網絡無線通信我第一個好奇的問題就是&#xff0c;物聯網用ESP32的話&#xff0c;路由器用什么&#xff1f;物聯網也可以組WLAN&#xff0c;通訊網也可以組WLAN。把自己的Tenda AC1200路由器拆…

NSSCTF 4th WP

第一次打比賽AK了&#xff0c;雖然題比較簡單沒啥好說的&#xff0c;但還是想記錄一下 WEB ez_signin 源碼&#xff1a; from flask import Flask, request, render_template, jsonify from pymongo import MongoClient import reapp Flask(__name__)client MongoClient…

Paimon——官網閱讀:主鍵表

主鍵表(Table with PK)PK 是 Primary Key&#xff08;主鍵&#xff09;的縮寫。在數據庫中&#xff0c;主鍵是一個或多個列的組合&#xff0c;其值在表中是唯一的&#xff0c;并且不能為 NULL。主鍵的作用是確保每一行記錄的唯一性&#xff0c;便于數據的查找、管理和維護&…

【配置 PyCharm 連接遠程服務器進行開發和調試的完整流程】

前提條件&#xff1a; 1.PyCharm Professional&#xff08;社區版不支持遠程解釋器&#xff09; 2.代碼在本地目錄里面&#xff0c;可以同步上傳遠程服務器 3.宿主機上安裝了conda 環境 操作方法&#xff1a; 1、在本地使用PyCharm打開工程代碼&#xff1b; 2、然后Add New_in…

在壓力測試中如何確定合適的并發用戶數?

確定壓力測試中的合適并發用戶數 在進行壓力測試時&#xff0c;確定合適的并發用戶數是評估系統性能的關鍵步驟。并發用戶數是指同時向系統發送請求的用戶數量&#xff0c;它直接影響系統的負載水平和性能表現。以下是幾種常用的方法和考慮因素&#xff0c;用于確定合適的并發…

微算法科技(NASDAQ:MLGO)突破性FPGA仿真算法技術助力Grover搜索,顯著提升量子計算仿真效率

在量子計算迅猛發展的今天&#xff0c;量子算法尤其是在搜索和加密領域的應用&#xff0c;正逐步揭開了其顛覆性潛力。然而&#xff0c;量子計算機的實際實現仍是一項復雜且充滿挑戰的任務&#xff0c;因此&#xff0c;如何在經典計算平臺上高效建模和仿真量子算法成為了當前的…

TencentOS Server 4.4 下創建mysql容器無法正常運行的問題

環境 騰訊的 TencentOS Server 4.4 服務器系統 Linux app 6.6.92-34.1.tl4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 25 14:33:47 CST 2025 x86_64 x86_64 x86_64 GNU/Linux docker使用的是yum安裝的版本 [rootapp ~]# docker version Client:Version: 28.0.1-202…

稀土:從“稀有”到“命脈”的科技核心

稀土&#xff0c;這個聽起來有些陌生的詞匯&#xff0c;其實早已悄然滲透進我們生活的方方面面。它并非真的“稀有”&#xff0c;而是指17種金屬元素的統稱&#xff0c;包括鑭、鈰、釹、銪等。這些元素在地殼中并不稀少&#xff0c;但因其獨特的物理和化學性質&#xff0c;使其…