tcpdump过滤ssl数据包

时间:2011-11-22 09:18:09

标签: networking ssl sniffing tcpdump

我需要使用tcpdump过滤掉所有SSL数据包。我知道只有第一个数据包才能被识别为ssl。是否可以匹配第一个数据包,然后过滤掉其余的SSL流?

2 个答案:

答案 0 :(得分:2)

你也可以在tcpdump中过滤tcp流,这个站点解释了如何以这种方式使用tcpdump,我希望它有所帮助:tcpdump.org/tcpdump_man.html

你必须稍微调整一下,但它应该有效。

此外,还有专门的SSL_DUMP utility

答案 1 :(得分:0)

是的,可以。您可以按照以下命令过滤SSL流量的第一个数据包,

方法1

[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:是您的本地主机的IP地址
  • dst host:是目标主机的IP地址
  • dst port:是服务SSL的目标端口。您可以根据自己的配置更改默认(443)端口。
  • -c:用于在接收到计数包后退出tcpdump

-c标志是过滤的主要组成部分,因为此标志告诉tcpdump在特定数据包计数后退出。在这里,我仅用1捕获一个(第一个)数据包后退出tcpdump

方法2

上述解决方案仅在每次启动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,则可以忽略这些过滤。

    < / li>
  • tcp[13] == 2TCP标头中以八位数字编号。 13是用于设置标志的八位字节。要设置SYN0 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|
 |---------------|

因此上述配置适用于大多数场景。