如何在 Wireshark 中將流量解碼為 NTLM 協定?

如何在 Wireshark 中將流量解碼為 NTLM 協定?

我正在嘗試調試NTLM身份驗證問題。我的想法之一是捕獲網路流量並進行分析。就我而言,NTLM身份驗證是透過非 stardart 連接埠 (6901) 進行的。當然,Wireshark無法偵測到它。但是還有 NTLM( NTLMSSP) 協定在清單中Decode as選單中。我不能這樣做這裡
有沒有辦法讓 Wireshark 將流量解碼為NTLM
或者我需要修改捕獲的流量,例如更改TCP連接埠或其他方式?

答案1

我不太確定 NTLMSSP 實際使用哪些端口,但您可以嘗試使用此 Lua 腳本將 NTLMSSP 解析器註冊到您的自訂端口。

local tcp_port_table = DissectorTable.get("tcp.port")
local tcp_ntlmssp_dis = tcp_port_table:get_dissector(445)
tcp_port_table:add(6901, tcp_ntlmssp_dis)

將其儲存到檔案 - 例如 ntlmssp.lua - 並告訴 Wireshark 載入它,例如

$ wireshark -X lua_script:ntlmssp.lua -r trace.pcap

您可能必須將端口 445 更改為真正需要的端口,或者透過添加其他行(例如tcp_port_table:get_dissector(4711).如果您還需要 UDP,請對 UDP 執行相同的操作。

答案2

Alexander Janssen 的 LUA 腳本不起作用,因為它透過連接埠號碼(445 - SMB/CIFS)取得協議,但可以變更為按名稱註冊 NTLMSSP 解析器,如下所示:

local tcp_port_table = DissectorTable.get("tcp.port")
local tcp_ntlmssp_dis = Dissector.get("ntlmssp")
tcp_port_table:add(6901, tcp_ntlmssp_dis)

6901 是 NTLMSSP 服務運作的連接埠。對於 NTLMSSP 以外的協議,可以使用以下清單中的任何內容https://www.wireshark.org/docs/dfref/應該代替“ntlmssp”工作。

我上週在分析不同自訂 NTLMSSP 服務的流量時成功測試了這一點。

相關內容