tcpdump 显示无输出

tcpdump 显示无输出

我目前正在学习 tcpdump 并且无法理解它。当我输入:

sudo tcpdump

它具有进出我的机器的所有流量。我如何将其应用于监听我自己或另一个网络上的所有内容(即指定 IP)?

我尝试过sudo tcpdump host xxx.xxx.xxx.xxx,但没有输出。

另外,如果我想监听进出网站的流量,我该怎么做?

我尝试了sudo tcpdump -n dst host gmail.com,但还是没有输出。

谢谢!

答案1

通常,主机只能接收:

  • 任何专门发送给它的流量(单播
  • 任何播送它所连接的特定网段内的流量
  • 任何组播它特别请求接收的网段内可用的流量

受到全部的交通量您拥有的网段,您需要一个可管理的网络交换机,可以将其配置为将所有流量的副本发送到 tcpdumping 系统所连接的特定交换机端口。

有一些技术限制:例如,如果网段中的总流量超过单个交换机端口可以处理的流量,那么显然 tcpdumping 系统无法接收所有流量,除非它并行使用多个端口(可能在绑定/组队配置)。

作为替代方案,您可以执行交换机 MAC 表欺骗攻击,使交换机无法跟踪连接到哪个端口的内容,从而使其开始以广播形式发送所有内容。但这将是主动攻击,而不仅仅是被动倾听。

现代可管理交换机可以具有反 MAC 欺骗功能:如果您尝试对此类交换机进行 MAC 欺骗攻击,它可能会完全关闭您的端口和/或向网络管理员发出警报。换句话说,在工作中这样做可能会很快让你失去工作。

聆听所有交通在您的计算机和 gmail.com 之间只是sudo tcpdump -s0 -nvv host gmail.com,但试图监听进入 gmail.com 的所有流量将是徒劳的:gmail.com 是一个地理分布的网站,在世界各地有多个实例。每个用户通常都会连接到一个在网络方面距离他们相当近的实例。

即使你可以攻击互联网路由协议,让世界其他地方相信你自己的网络就是 gmail.com 所在的地方(有效地将 gmail.com 的流量带到你这里),流量可能不仅会超载您自己的网络连接,以及您的网络提供商的本地设备。

相关内容