『壹』 iptrace抓包時注意什麼
用tcpmp 抓下來的包(保存為文件),可以用WireShark 打開。
把 tcpmp抓下來的包保存為文件,用-w參數。比如:
tcpmp -i eth0 -w filename
2,tcpmp抓包的時候,會對數據包進行截取,默認只保存96個位元組,例如以下:
[root@TJ-A-CASP-1 ~]# tcpmp host 10.243.255.241 -w sms-20101206-casp1-01
tcpmp: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
這樣就看不到數據包的信息了,用-s參數可以指定保留數據包多少位元組。例如:
[root@TJ-A-CASP-1 ~]# tcpmp -s 65535 host 10.243.255.241 -w sms-20101206-casp1-01
tcpmp: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
solaris系統上抓包命令:snoop
執行命令:snoop -o ./test.pcap 10.1.125.197
這個命令是要求系統把與10.1.125.197通訊的數據包記錄到test.pcap文件中
抓下來的數據包保存後,也可以用wireshark打開。
AIX系統上的抓包命令:iptrace
典型命令格式:iptrace -d 10.1.1.1 -b /temp/iptrace.pcap
其中-d 後面表示目標地址,-b 表示雙向通信
這條命令是將與10.1.1.1通訊的數據包記錄到iptrace.pcap文件中。
抓下來的數據包保存後,也可以用wireshark打開。
需要注意的是:抓包完成時一定要kill掉iptrace的進程(使用ctrl+c無法終止抓包程序),否則會一直抓包。
『貳』 使用tcpmp查看原始數據包
盡管Snort之類的工具在篩選通過我們的網路而來的所有內容方面做得非常出色,但有時必須要查看原始數據。為此,我們最好的工具是「 tcpmp」。
使用tcpmp的最基本方法是簡單地發出以下命令:
您可以使用-v選項獲得更多詳細信息,而-vv可以獲取更多信息。
有用的選項
假設您已登錄到要管理的遠程計算機。如果您不帶任何選項運行「 tcpmp」,則輸出將被來自您的SSH連接的數據包淹沒。為避免這種情況,只需從輸出中消除埠22:
碼:
您可以使用許多不同的埠來執行此操作:
碼:
如果要進行相反的操作,即僅監視某個埠(這對於調試網路應用程序非常有用),則可以執行以下操作:
您還可以從網路上的特定主機獲取數據:
如果您的計算機具有多個網路介面,則還可以指定要收聽的網路介面:
您還可以指定協議:
您可以在/ etc / protocols中找到協議列表。
保存輸出以備後用
在某些情況下,您可能希望將輸出重定向到文件,以便以後可以詳細研究它或使用其他程序來解析輸出。在以下示例中,您仍然可以在將輸出保存到文件時觀看輸出:
在上面的示例中,我們可以使用日期和時間來標識每個轉儲。在處理一天中特定時間出現的問題時,這可能會派上用場。
tcpmp還可以選擇將其輸出轉儲為二進制格式,以便以後讀取。要創建一個二進制文件:
稍後,您可以讓tcpmp使用以下命令讀取文件
您也可以使用ethereal程序打開原始轉儲並解釋它。
tcpmp為我們提供了有關往返於網路的所有數據包的信息。
將Ethereal與tcpmp一起使用Ethereal
Ethereal是一種也可以用來捕獲網路數據包的工具。安裝後,您可以打開您製作的原始轉儲文件。
查看正在發生的事情變得相當容易。您可以看到源IP和目標IP以及它是什麼類型的數據包。這很容易,然後即可對您可能遇到的網路問題進行故障排除並分析可疑行為。只是為了增加一則軼事,當我編寫本課並解釋自己的轉儲時,我在個人工作站上看到了一些奇怪的活動。我幾乎每隔固定時間就查詢世界上不同IP的機器上的埠32772。我為埠32772運行了一個特定的轉儲,如下所示:
讀取原始輸出
如您所見,即使從tcpmp讀取所謂的「人類可讀」輸出也可能有點神秘。看下面的示例,我只是從轉儲中選出一個隨機數據包:
我們所擁有的是對 https://www.linux.org/ 的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選項,它將在十六進制輸出中包含數據包內容。
我們可以從輸出中得知這是一個HTTP請求。至於其餘的,它不是人類可讀的,但是我們很容易知道這是一個合法的數據包。使用這種格式的另一個好處是,即使我們無法完全解釋此數據包的狀況,也可以將其發送給可能的人。最終,這是未經任何過濾通過網路傳輸的原始數據。