2017-10-04 104 views
2

我有tcpdump和scapy在同一接口上運行sniff()。有一個scp文件傳輸發生。scapy嗅探()似乎並不捕獲TCP數據包,只顯示以太網幀

tcpdump:我看到有seq和ack的tcp數據包經過。

scapy sniff()返回列表:我在每個數據包摘要()中看到的所有內容均爲(MAC addr1) > (Mac addr 2) (0x800)/Raw。即使在數據包.show()中,我所看到的都是帶有「## [Ethernet] ##」,src和dst的鏈接層。

我跑了這個超時30,所以我知道我會捕獲一個空文本文件的scp傳輸,所以我知道我的計時是正確的。

肯定有TCP數據包經過,但沒有一個被檢測到。 Scapy有問題嗎?

謝謝

+0

TCP封裝在IP中,封裝在以太網中。 IP數據包是以太網幀的有效載荷,TCP段是IP數據包的有效載荷。你根本解碼不夠深。 –

+0

請報告'sniff()'和'pkt.show()'的輸出。 – Pierre

回答

1

有可能是防止Scapy的從處理以太網淨荷中的錯誤。

您可以嘗試設置conf.debug_dissector = True來調試問題。因爲這可能是一個已經修復的錯誤(我們有一個類似於Python 3直到最近纔看到的錯誤),所以您還可以獲得Scapy的當前開發版本(來自repository)。

如果更新到當前開發版本後仍然存在問題,請report it

+0

我修好了。你是對的。我只需要更新到最新版本,因爲我的版本是buggy。我在這裏刪除了一箇舊評論,因爲我也修正了這個問題。 – Arrow