Я пытаюсь отладить NTLM
проблема аутентификации. Одна из моих идей заключалась в том, чтобы захватить сетевой трафик и посмотреть на него. В моем случае NTLM
аутентификация проходит через нестандартный порт (6901). Конечно, Wireshark не может его обнаружить. Но есть нет NTLM
(NTLMSSP
) протокол в списке в Decode as
меню. Я не могу любить Вот.
Есть ли способ попросить Wireshark декодировать трафик как NTLM
?
Или мне нужно изменить захваченный трафик, например изменение TCP
порт или как-то другой?
Сценарий 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.
Я не совсем уверен, какие порты 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.