使用tcpdump檢視原始資料包

安全劍客發表於2020-11-30
儘管Snort之類的工具在篩選透過我們的網路而來的所有內容方面做得非常出色,但有時必須要檢視原始資料。為此,我們最好的工具是“ tcpdump”。

使用tcpdump檢視原始資料包使用tcpdump檢視原始資料包
使用tcpdump的最基本方法是簡單地發出以下 :

tcpdump

您可以使用-v選項獲得更多詳細資訊,而-vv可以獲取更多資訊。

有用的選項

假設您已登入到要管理的遠端計算機。如果您不帶任何選項執行“ tcpdump”,則輸出將被來自您的SSH連線的資料包淹沒。為避免這種情況,只需從輸出中消除埠22:

tcpdump not port 22

您可以使用許多不同的埠來執行此操作:

tcpdump not port 143 and not port 25 and not port 22

如果要進行相反的操作,即僅監視某個埠(這對於除錯網路應用程式非常有用),則可以執行以下操作:

tcpdump port 143

您還可以從網路上的特定主機獲取資料:

tcpdump host hal9000
如果您的計算機具有多個網路介面,則還可以指定要收聽的網路介面:

tcpdump -i eth1

您還可以指定協議:

tcpdump udp

您可以在/ etc / protocols中找到協議列表。

儲存輸出以備後用

在某些情況下,您可能希望將輸出重定向到檔案,以便以後可以詳細研究它或使用其他程式來解析輸出。在以下示例中,您仍然可以在將輸出儲存到檔案時觀看輸出:

tcpdump -l | tee tcpdump_`date +%Y%m%e-%k.%M`

在上面的示例中,我們可以使用日期和時間來標識每個轉儲。在處理一天中特定時間出現的問題時,這可能會派上用場。

tcpdump還可以選擇將其輸出轉儲為二進位制格式,以便以後讀取。要建立一個二進位制檔案:

tcpdump -w tcpdump_raw_`date +%Y%m%e-%k.%M`

稍後,您可以讓tcpdump使用以下 讀取檔案

tcpdump -r tcpdump_raw_YYYMMDD-H.M

您也可以使用ethereal程式開啟原始轉儲並解釋它。

tcpdump為我們提供了有關往返於網路的所有資料包的資訊。

將Ethereal與tcpdump一起使用Ethereal

Ethereal是一種也可以用來捕獲網路資料包的工具。安裝後,您可以開啟您製作的原始轉儲檔案。

檢視正在發生的事情變得相當容易。您可以看到源IP和目標IP以及它是什麼型別的資料包。這很容易,然後即可對您可能遇到的網路問題進行故障排除並分析可疑行為。只是為了增加一則軼事,當我編寫本課並解釋自己的轉儲時,我在個人工作站上看到了一些奇怪的活動。我幾乎每隔固定時間就查詢世界上不同IP的機器上的埠32772。我為埠32772執行了一個特定的轉儲,如下所示:

tcpdump port 32772 -w dump_32772

讀取原始輸出

如您所見,即使從tcpdump讀取所謂的“人類可讀”輸出也可能有點神秘。看下面的示例,我只是從轉儲中選出一個隨機資料包:

17:26:22.924493 IP (894) ack 1624 win 9648

我們所擁有的是對的Web伺服器請求。時間戳記過後,您會在主機名(即埠80)的末尾註意到.www。這將被髮送到發出請求的主機test.linux.org的埠34365。“ P”代表TCP“ oush”功能。這意味著應該立即傳送資料。在2845:3739(894)之後的數字中,2845標記第一個資料包的八位位組的編號。數字3739是資料包傳送的最後一個位元組的數字加1。數字894是傳送的資料包的長度。表示“ ack 1624”的部分是“ acknowledge”的TCP術語-表示該資料包已被接受,下一個預期的資料包編號為1624。之後,我們看到“ win 9648”傳送主機正在等待視窗大小為9648個八位位組的資料包。這之後是時間戳。

現在,如果您認為難以解釋,則使用-x選項,它將在十六進位制輸出中包含資料包內容。

18:12:45.149977 IP (1448) 
ack 487 win 64320x0000:  4500 05dc 6a81 4000 4006 493b c0a8 0006  E...j.@.@.I;....
        0x0010:  c0a8 0009 0050 86e8 8fa4 1d47 1c33 e3af  .....P.....G.3..
        0x0020:  8010 1920 b4d9 0000 0101 080a 13a0 7a77  ..............zw
        0x0030:  019e 5f14 4854 5450 2f31 2e31 2032 3030  .._.HTTP/1.1.200
        0x0040:  204f 4b0d 0a44 6174 653a 2054 6875 2c20  .OK..Date:.Thu,.
        0x0050:  3135

我們可以從輸出中得知這是一個HTTP請求。至於其餘的,它不是人類可讀的,但是我們很容易知道這是一個合法的資料包。使用這種格式的另一個好處是,即使我們無法完全解釋此資料包的狀況,也可以將其傳送給可能的人。最終,這是未經任何過濾透過網路傳輸的原始資料。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2738044/,如需轉載,請註明出處,否則將追究法律責任。

相關文章