茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1676246 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_DPP_0053.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2018/12/14 8:00:43
tcpdump 的用法

tcpdump 可用來擷取通過某網路介面的封包。(需有 root 權限!)

這個很久以前上課就有教了,但都沒啥用到!最近因為要查 Mail Server 為啥無法寄信,才又重新上網找了一下相關資料。

參考: 鳥哥Tsung Blog510CTO


基本選項有:
.-n:以數字顯示,不對 IP 作反解,但仍顯示服務名稱。
.-nn:直接以 IP 及 port number 顯示,而非主機名與服務名稱。
.-p:不要以 promiscuous mode 執行。
.-t:不要顯示 timestamp。
.-i:指令要監控的網路介面,如 eth0、lo、any 等。
.-e:使用資料連接層 (OSI 第二層) 的 MAC 封包資料來顯示。
.-c:監聽的封包數,如果沒有這個參數,tcpdump 會持續不斷的監聽,直到使用者輸入 [ctrl]-c 為止。
.-q:僅列出較為簡短的封包資訊,每一行的內容比較精簡。
.-s:抓比較長的 data 做一筆記錄。
.-v:輸出一個稍微詳細的資訊,例如在 IP 封包中可以包括 ttl 和服務類型的資訊。
.-A:封包的內容以 ASCII 顯示,通常用來捉取 WWW 的網頁封包資料。
.-X:可以列出十六進位 (hex) 以及 ASCII 的封包內容,對於監聽封包內容很有用。
.-w:如果你要將監聽所得的封包資料儲存下來,用這個參數就對了!後面接檔名。
.-r:從後面接的檔案將封包資料讀出來。那個『檔案』是已經存在的檔案,並且這個『檔案』是由 -w 所製作出來的。
《範例》 tcpdump -nn -i eth0

可指定條件式要求 tcpdump 只擷取某些封包。
條件式可以是單一的『基本條件式(primitives)』,
或用 and(&&),or(||),not(!) 以及『(』、『)』組合基本條件式而成。

常用的『基本條件式(primitives)』:


host 192.168.0.254
來源或目的 IP 是 192.168.0.254
src host 192.168.0.254
來源 IP 是 192.168.0.254
dst host 192.168.0.254 目的 IP 是 192.168.0.254
ether host aa:bb:cc:dd:ee:ff 來源或目的 mac address 是 aa:bb:cc:dd:ee:ff
ether src aa:bb:cc:dd:ee:ff 來源 mac address 是 aa:bb:cc:dd:ee:ff
ether dst aa:bb:cc:dd:ee:ff 目的 mac address 是 aa:bb:cc:dd:ee:ff

net 192.168.0.0 mask 255.255.255.0
來源或目的 IP 在 192.168.0.X 可加上 src 或 dst 做進一步限制
net 192.168.0.0/24 同上
tcp/udp/icmp 封包內有 tcp/udp/icmp 的資料
port domain 來源或目的 port 為 domain (53) 可加上 src,dst 或 tcp,udp 做進一步限制
port 53 同上
tcp src port smtp 來源 port 為 TCP/25

範例:

tcpdump -i eth0 'tcp'
tcpdump -i eth0 'host 192.168.0.X'
tcpdump -i eth0 'tcp and host 192.168.0.X'
tcpdump -i eth0 'tcp port 22 and host 192.168.0.X'
tcpdump -i eth0 'tcp and (not port 22) and (net 192.168.0.0/24)'

看了鳥哥介紹 -X 的參數,忍不住也來進行個實驗,決定來抓抓 POP3 的封包,我先輸入下列指令來保存封包內容:
# tcpdump -i eth0 -nn -X 'port 110' -w packet
執行後,畫面就不會出現所抓取的封包內容,直接就寫到 packet 這個檔案中。接下來我再執行下列指令來檢視封包內容:
# tcpdump -nnXr packet |less
果不其然,終於也見識到了明碼傳輸的危險性了。


節錄一些「超級詳細 Tcpdump 的用法」的內容

第一種是關於類型的關鍵字,主要包括 host、net、port,例如 host 210.27.48.2,指明 210.27.48.2
是一台主機,net 202.0.0.0 指明 202.0.0.0 是一個網路位址,port 23 指明埠號是 23。如果沒有指 定類型,預設的類型是 host。

第二種是確定傳輸方向的關鍵字,主要包括 src、dst、dst or src、dst and src。這些關鍵字指明了傳 輸的方向。舉例說明,src 210.27.48.2,指明 IP 封包中來源位址是 210.27.48.2 , dst net 202.0.0.0 指明目的位址是 202.0.0.0。如果沒有指明方向關鍵字,則預設是不分方向(src or dst)。

第三種是協定的關鍵字,主要包括 fddi、ip、arp、rarp、tcp、udp 等類型。fddi指明是在FDDI(光纖分 佈式數據介面)上特定的網路協定,實際上它是“ether”的別名,fddi 和 ether 具有類似的來源位址和 目的位址,所以可以將 fddi 協議封包當作 ether 的封包進行處理和分析。其他的幾個關鍵字就是指明了 擷取的封包協定。如果沒有指定任何協定,則 tcpdump 將會擷取所有協定的封包。

除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway、broadcast、less、greater。還有三種
邏輯運算,反相運算式 not,!;與運算式 and,&&;或運算式 or,||。這些關鍵字可以組合起來構成強 大的組合條件來滿足人們的需要,下面舉幾個例子來說明。

A.想要擷取所有 210.27.48.1 的主機收到的和發出的所有的數據封包:
# tcpdump host 210.27.48.1

B.想要擷取主機 210.27.48.1 和主機 210.27.48.2 或 210.27.48.3 的通信,使用命令:(在命令行中使 用小括號時,一定要加跳脫符號\)
# tcpdump host 210.27.48.1 and \( 210.27.48.2 or 210.27.48.3 \)

C.如果想要擷取主機 210.27.48.1 和除了與主機 210.27.48.2 之外所有主機通信的 IP 封包,使用命令
# tcpdump ip host 210.27.48.1 and ! 210.27.48.2

D.如果想要擷取主機 210.27.48.1 接收或發出的 telnet 封包,使用如下命令:
# tcpdump tcp port 23 host 210.27.48.1


E.對本機的 udp 123 埠號進行監視(123 為 ntp 的服務埠號):
# tcpdump udp port 123

F.系統將只對名稱為 hostname 的主機的通信數據封包進行擷取。主機名可以是本地主機,也可以是網路 上的任何一台電腦。下面的命令可以擷取主機 hostname 發送的所有數據封包:
# tcpdump -i eth0 src host hostname

G.下面的命令可以擷取所有送到主機 hostname 的數據封包:
# tcpdump -i eth0 dst host hostname

H.我們還可以擷取通過指定閘道的數據封包:
# tcpdump -i eth0 gateway GatewayIP

I.如果你還想擷取主機指定埠號的 TCP 及 UDP 數據封包,那麼執行以下命令:
# tcpdump -i eth0 host hostname and port 80

J.如果我們只需要列出送到 80 埠號的數據封包,用 dst port;如果我們只希望看到返回 80 埠號的數據
封包,用 src port。
# tcpdump -i eth0 host hostname and dst port 80  目的埠號是 80
或者
# tcpdump -i eth0 host hostname and src port 80  來源埠號是80,一般是提供 HTTP 服務的伺服器

K.如果條件很多的話,要在條件之前加 and 或 or 或 not
# tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80

記錄備查囉!


原文出處:tcpdump 的用法 @ 暉獲無度的步烙閣 :: 隨意窩 Xuite日誌
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|