tcpdump 顯示無輸出
我目前正在學習 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 的流量帶給您),流量量可能不僅會超載您自己的網路連接,但您的網路提供商的本地設備也是如此。