从网络或 pcap 文件中提取 SSL 证书

Apa*_*koh 5 ssl tcpdump pcap ssl-certificate

如果有人能指点我从实时 HTTPS 连接(直接从网络)或网络跟踪文件(pcap 文件)中提取 SSL/TLS 证书的工具或方法,我将不胜感激。我尝试使用 ssldump,但无法提取证书。我也可以使用 Wireshark(手动),但我想以自动方式执行此操作。为此,我正在使用 Linux 平台。谢谢

编辑:我想提取 SSL 证书,而不是在 SSL 握手期间服务器发送到客户端(浏览器)。我想使用网络嗅探器 (tcpdump) 来捕获网络中的 SSL 连接,然后从生成的 pcap 文件中提取证书(或实时进行)。

nro*_*ans 3

您是否需要特定格式的证书(PEM/DER/...)?

ssldump 可以使用 -N 选项显示解析后的 ASN.1 证书,并使用 -r 读取 pcap 文件作为输入。以下命令可以以人类可读的形式向您显示证书。

ssldump -Nr file.pcap | awk 'BEGIN {c=0;} { if ($0 ~ /^[ ]+Certificate$/) {c=1; print "========================================";} if ($0 !~ /^ +/ ) {c=0;} if (c==1) print $0; }'
Run Code Online (Sandbox Code Playgroud)

awk 脚本不是最干净的,但可以完成工作(非常欢迎改进)。

ssldump 的 -x 选项将显示实际的数据包有效负载 (packet_data)。这将包括记录层和握手协议字段(即不仅仅是证书)。更智能的脚本/代码可能能够从那里提取它并将其转换为更常见的格式。