
Я пытаюсь отладить 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
Скрипт 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.