Reference:
http://blog.xuite.net/jyoutw/xtech/23669726-tcpdump+%E7%9A%84%E7%94%A8%E6%B3%95
基本選項有:
.-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 的用法」的內容
第一種是關於類型的關鍵字,主要包括 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
沒有留言:
張貼留言