2017-05-05 4 views
0

Ich bin in der Lage, SSL-Pakete in wireshark (GUI) mit den privaten Schlüsseln zu entschlüsseln. In der gleichen Weise, wie Pakete mit PyShark (programmatisch) entschlüsselt werden. Gibt es eine andere Möglichkeit, dieselbe Aufgabe mit einem anderen programmatischen Ansatz zu erledigen?Entschlüsseln von SSL-Paketen mit PyShark

Antwort

0

Dies ist nicht getestet, aber override_prefs lassen Sie benutzerdefinierte Fahnen in der tshark oder einig außer Kraft setzen:

.- Sie ein Wörterbuch passieren können override_prefs wie Attribut

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') 

Also, wenn Ihr Capture-Objekt erstellen Übergeben Sie override_prefs = ssl_overrides als eines der Argumente. Wieder habe ich das nicht getestet und ich bin mir nicht sicher, ob Pyshark in der Lage sein würde, mit der ssl-XML-Ausgabe zu arbeiten, aber probiere es aus.

Wenn nicht tshark direkt (zB aus 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" 
Verwandte Themen