Задать вопрос
@Luminuxed

Как вывести определенное расширение TLS из .pcapng файла с помощью pyshark?

Я работаю на Python с библиотекой pyshark, у меня есть .pcapng файл с трафиком. Мне нужно вывести расширение TLS, которое стоит не первым по счету в списке расширений в файле с трафиком. Например, мне нужно получить значение поля "tls.handshake.extension.type" расширения "Extension: supported_versions". Но выводится значение "Extension: Reserved", которое стоит первым в списке расширений.

67bcb5e9a0d9d904732771.png

Я пробовал выводить расширение, "type" которого равен был бы значению нужного мне расширения, но это не дало результаты, потому что "tls.handshake.extension.type", как я понял, хранит только одно значение.

Вот пример где я что-то пытался
pcap = pyshark.FileCapture(file_path, display_filter='tls')
with open("tls_log.txt", "w") as log_file:
    for pkt in pcap:
        if "TLS" in pkt:
            if (hasattr (pkt.tls, 'record_content_type')):
                if (getattr(pkt.tls, 'record_content_type') == "22"):
                    log_file.write(f'{pkt["TLS"]}')
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
Так не пойдёт?
import pyshark

display_filter = 'tls.record.content_type == 22'
pcap = pyshark.FileCapture(file_path, display_filter=display_filter)
d = {}

for packet_number, packet in enumerate(pcap):
    for layer in packet:
        if 'Supported Version:' in str(layer):
            for line in str(layer).splitlines():
                if 'Supported Version:' in line:
                    tls_version = line.split(' ')[3]
                    if packet_number in d:
                        d[packet_number].append(tls_version)
                    else:
                        d[packet_number] = [tls_version]

print(d)

>>> {0: ['1.3', '1.2'], 1: ['1.3'], 2: ['1.3', '1.2'], 3: ['1.3'], 4: ['1.3', '1.2'], 5: ['1.3']}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы