tcpdump过滤ssl数据包

问题描述 投票:4回答:2

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

networking ssl sniffing tcpdump
2个回答
2
投票

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

你将不得不稍微调整它,但它应该工作。

此外,还有一个专门的SSL_DUMP utility


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:“使stdout行缓冲。如果你想在捕获它时看到数据,这很有用。”这将帮助您输出grep/tee/awk
  • src host dst host:如果您不想指定源和目标IP,则可以忽略这些过滤。
  • tcp[13] == 2TCP标题octate no。 13是用于设置标志的octate。要设置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|
 |---------------|

因此,上述配置应适用于大多数情况。

© www.soinside.com 2019 - 2024. All rights reserved.