Собрал краткий обмен между клиентом SSL и сервером (openssl's s_client
и s_server
, если быть точным), и хотите просмотреть ssl-части файла pcap с помощью tshark
. Мне не нужно расшифровывать зашифрованные части, но, по крайней мере, я хотел бы знать значения в незашифрованных полях.
При копировании файла с сервера на рабочий стол я могу открыть файл pcap с помощью Wireshark и увидеть поля по умолчанию:
С другой стороны, tshark -r tls_dump.pcap
отображает только часть пакетов TCP. Например, для того же пакета:
4 0.000069237 127.0.0.1 → 127.0.0.1 TCP 373 54312 → 44330 [PSH, ACK] Seq=1 Ack=1 Win=43776 Len=307 ...
Я пробовал собирать пакеты как с tcpdump -U -i lo 'port 44330' -w tls_dump.pcap
и с tshark -nn -i lo -s 0 -w tls_dump.pcap port 44330
(так как Вот), но при попытке просмотреть пакеты результаты такие же.
tshark
варианты, которые я пробовал:
-2
не имеет никакого эффекта
-2R "ssl"
ничего не показывает
-Y "ssl"
ничего не показывает
-o "ssl.desegment_ssl_records: TRUE" -o "ssl.desegment_ssl_application_data: TRUE"
не имеет никакого эффекта
-T json
показывает только необработанные неинтерпретированные данные полезной нагрузки TCP
-V
показывает только необработанные неинтерпретированные данные полезной нагрузки TCP
--print
не имеет никакого эффекта
--enable-protocol "ssl"
не имеет никакого эффекта
--enable-heuristic "ssl"
дает мне No such protocol ssl, can't enable
ошибка
Как выводить детали пакета SSL из пакета SSL с tshark
?
В итоге сработало указание порта с помощью -d tcp.port==44330,ssl
, поэтому моя полная команда была:
tshark -r tls_dump.pcap -d tcp.port==44330,ssl
Причина, по которой это было необходимо, была связана с некоторыми различиями в версиях Wireshark. На моем рабочем столе была версия 2.6.0
, который смог автоматически определить протокол SSL. На сервере была версия 2.4.6
, который не смог обнаружить SSL и потребовал указать номер порта.
Только пакеты SSL могут быть напечатаны с:
tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl"
Только пакеты SSL в формате JSON:
tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl" -T json