sad*_*ali 10 ssl networking tcp tcpdump
我有一台服务器,许多客户端使用SSL连接.最近我在服务器日志中观察到SSL握手错误(来自SSL MAC错误).错误本身并不重要,但我想知道为什么有些客户端能够连接而其他客户端失败,还需要确定哪些客户端出现故障.
为了调试这个问题,我想捕获在服务器上发生的所有SSL握手,因为我不知道有问题的客户端何时连接,我不想捕获所有流量,直到发生这种情况.我只想捕获所有SSL握手,然后使用Wireshark进行分析.假设我只能访问tcpdump而没有其他工具可以捕获.
Jyo*_*Lys 33
我不知道你究竟在调用握手是什么,但是我建议这个命令可能会占用你想要的95%以上:
tcpdump -ni eth0 "tcp port 443 and (tcp[((tcp[12] & 0xf0) >> 2)] = 0x16)"
Run Code Online (Sandbox Code Playgroud)
现在它做了什么:
tcp[12]表示捕获tcp包的第13个字节,对应于前半部分是偏移量,后半部分是保留的.偏移量一旦乘以4,就会得到TCP标头的字节数,这意味着((tcp[12] & 0xf0) >> 2)提供TCP标头的大小.
TLS数据包的第一个字节定义内容类型.值22(十六进制为0x16)已被定义为"握手"内容.
因此,tcp[((tcp[12] & 0xf0) >> 2)] = 0x16在TCP标头设置为之后捕获具有第一个字节的每个数据包0x16.
可以执行更多过滤,但这严格回答了您的问题.
| 归档时间: |
|
| 查看次数: |
32570 次 |
| 最近记录: |