我能够使用私钥解密wireshark(GUI)中的SSL数据包。以同样的方式如何使用 PyShark(以编程方式)解密数据包。有没有其他方法可以使用任何不同的编程方法来完成相同的任务?
问问题
1349 次
1 回答
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"
于 2017-06-05T19:02:33.200 回答