我需要使用 tcpdump 过滤掉所有 SSL 数据包。我知道只有第一个数据包可以被识别为 ssl。是否可以匹配第一个数据包,然后过滤掉 SSL 流的其余部分?
2 回答
You can filter a tcp stream in tcpdump too, this site explains how to use tcpdump in this way, I hope it helps: tcpdump.org/tcpdump_man.html
You will have to tweak it a bit, but it should work.
Also, there is a dedicated SSL_DUMP utility
是的你可以。您可以按照以下命令过滤第一个SSL
流量包,
方法一
[root@arif]# tcpdump -i eth0 src host 192.168.0.2 and dst host 40.113.200.201 and dst port 443 -c 1
在哪里,
-i
: 就是提接口src host
: 是你本地主机的 ipdst host
: 是目标主机的 ipdst port
SSL
: 是提供服务的目的端口。您可以根据您的配置更改默认 (443) 端口。-c
: 用于tcpdump
收到count个包后退出。
-c
标志是过滤的主要组成部分,因为此标志告诉tcpdump
在特定数据包计数后退出。在这里,我习惯于在仅捕获一个(第一个)数据包后1
退出。tcpdump
方法二
上述解决方案只有在您tcpdump
每次都启动时才有效。如果要过滤掉每个SSL
流的唯一第一个数据包,请按照以下命令进行操作,
[root@arif]# tcpdump -li eth0 src host 192.168.0.2 and dst host 40.113.200.201 and port 443 and tcp[13] == 2
在哪里,
l
:“使标准输出行缓冲。如果您想在捕获数据时查看数据,这很有用。” 这将帮助您grep/tee/awk
输出。src
host
dst
host
:如果您不想指定源和目标 ip,则可以忽略这些过滤。tcp[13] == 2
在TCP
标题八进制数中。13
是用于设置标志的八进制数。使用十进制设置SYN
位0 0 0 0 0 0 1 0
组合(请看下图)2
。因此,这将帮助您仅过滤作为流SYN
的第一个数据包的数据包。SSL
|C|E|U|A|P|R|S|F|
|---------------|
|0 0 0 0 0 0 1 0|
|---------------|
所以上面的配置应该适用于大多数场景。