Linux

tcpdump 顯示無輸出

  • September 24, 2020

我目前正在學習 tcpdump 並且無法理解它。當我輸入:

sudo tcpdump

它有進出我機器的所有流量。我將如何將其應用於我自己或其他網路(即指定 IP)的所有內容?

我試過sudo tcpdump host xxx.xxx.xxx.xxx了,但沒有輸出。

另外,如果我想收聽進出網站的流量,我該怎麼做?

我試過sudo tcpdump -n dst host gmail.com了,但還是沒有輸出。

謝謝!

通常,主機只能接收:

  • 專門發送給它的任何流量(單播
  • 它連接到的特定網路段內的任何廣播流量
  • 網段內它已明確請求接收的任何可用的多播流量

要接收您擁有的網段中的所有流量,您需要一個可管理的網路交換機,該交換機可以配置為將所有流量的副本發送到連接 tcpdumping 系統的特定交換機埠。

存在一些技術限制:例如,如果網段中的總流量超過單個交換機埠可以處理的,那麼顯然 tcpdumping 系統無法接收所有流量,除非它並行使用多個埠(可能在綁定/組隊配置)。

作為替代方案,您可以執行交換機 MAC 表欺騙攻擊,以使交換機失去對連接到哪個埠的跟踪,從而使其開始將所有內容作為廣播發送。但這將是一種主動攻擊,而不僅僅是被動傾聽。

現代可管理交換機可以具有反 MAC 欺騙功能:如果您嘗試對此類交換機進行 MAC 欺騙攻擊,它可能會完全關閉您的埠和/或警告網路管理員。換句話說,在工作中這樣做可能是你丟掉工作的捷徑。

收聽您的電腦和 gmail.com 之間的所有流量只是sudo tcpdump -s0 -nvv host gmail.com,但嘗試絕對收聽進入 gmail.com 的所有流量將是徒勞的:gmail.com 是一個地理分佈的站點,在世界各地都有多個實例. 每個使用者通常都會連接到一個在網路方面離他們相當近的實例。

即使您可以攻擊 Internet 路由協議並讓世界其他地方相信您自己的網路是 gmail.com 所在的位置(有效地將 gmail.com 的流量帶給您),流量量可能不僅會超載您自己的網路連接,但您的網路提供商的本地設備也是如此。

引用自:https://unix.stackexchange.com/questions/610668