
我正在嘗試調試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 服務的流量時成功測試了這一點。