2017-05-05 308 views
0

我能夠使用私鑰在wireshark(GUI)中解密SSL數據包。以同樣的方式使用PyShark(以編程方式)解密數據包。有沒有其他方法可以使用任何不同的編程方法來完成相同的任務?使用PyShark解密SSL數據包

回答

0

這不是測試,但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"