Расшифровать SSL-пакеты с помощью PyShark

Я могу расшифровывать SSL-пакеты в wireshark (GUI), используя закрытые ключи. Точно так же, как расшифровывать пакеты с помощью PyShark (программно). Есть ли другой способ выполнить ту же задачу, используя другой программный подход?


person Ameya Kulkarni    schedule 05.05.2017    source источник


Ответы (1)


Это не проверено, но override_prefs позволит вам добавить пользовательские флаги в tshark или переопределить некоторые:

.- вы можете передать словарь атрибуту override_prefs, например

def create_ssl_override(ssl_key_path, server='127.0.0.1', port='443',
                        protocol='http', ssl_debug_file='ssl_debug.log'):

    ssh_key_info = '{server},{port},{protocol},{pem_path}'.format(
       server=server, port=port, protocol=protocol, pem_path=pem_path)

    return {
      'ssl.desegment_ssl_records': 'TRUE',
      'ssl.desegment_ssl_application_data': 'TRUE',
      'tcp.desegment_tcp_streams': 'TRUE',
      'ssl.keys_list': ssl_key_info,
      'ssl.debug_file': ssl_debug_file
    }

ssl_overrides = create_ssl_override('my_server_key_file.pem')

Поэтому при создании объекта захвата передайте override_prefs=ssl_overrides в качестве одного из аргументов. Опять же, я не проверял это, и я не уверен, что pyshark сможет работать с выводом ssl xml, но попробуйте.

Если не использовать tshark напрямую (пример из https://wiki.wireshark.org/SSL)

tshark -o "ssl.desegment_ssl_records: TRUE" -o "ssl.desegment_ssl_application_data: TRUE" -o "ssl.keys_list: 127.0.0.1,4443,http,/home/dirkx/xx/privkey.pem" -o "ssl.debug_file: /home/dirkx/.wireshark-log" -i eth0 -R "tcp.port == 4443"
person Totoro    schedule 05.06.2017