tcpdump 使用介紹

介紹

tcpdump 是一款強大的網絡抓包工具,運行在 linux 平臺上。熟悉 tcpdump 的使用能夠幫助你分析、調試網絡數據。

選項

-n  表示不要解析域名,直接顯示 ip。
-nn**  不要解析域名和端口。
-X  同時用 hex 和 ascii 顯示報文的內容。
-XX  同 -X,但同時顯示以太網頭部。
-S  顯示絕對的序列號(sequence number),而不是相對編號。
-i  監聽的網卡。
-v, -vv, -vvv  顯示更多的詳細信息。
-c number  截取 number 個報文,然後結束。
-A  只使用 ascii 打印報文的全部數據,不要和 -X 一起使用。
-D  列出所有可以監控的網卡。

過濾器

機器上的網絡報文數量異常的多,很多時候我們只關係和具體問題有關的數據報(比如訪問某個網站的數據,或者 icmp 超時的報文等等),而這些數據只佔到很小的一部分。把所有的數據截取下來,從裏面找到想要的信息無疑是一件很費時費力的工作。而 tcpdump 提供了靈活的語法可以精確地截取關心的數據報,簡化分析的工作量。這些選擇數據包的語句就是過濾器(filter)!

過濾器也可以簡單地分爲三類:type, dir 和 proto。

Type 讓你區分報文的類型,主要由 host(主機), net(網絡) 和 port(端口) 組成。src(源地址) 和 dst(目的地址) 也可以用來過濾報文的源地址和目的地址。

過濾的真正強大之處在於你可以隨意組合它們,而連接它們的邏輯就是常用的 與/AND/&& 、 或/OR/|| 和 非/not/!。

用例

1.監聽所有端口,直接顯示 ip 地址
	tcpdump -nS
	
2.顯示更詳細的數據報文,包括 tos, ttl, checksum 等
	tcpdump -nnvvS
	
3.顯示數據報的全部數據信息,用 hex 和 ascii 兩列對比輸出
	tcpdump -nnvvXS
	
4.監控一個指定的網絡接口
	tcpdump -i eth0
	
5.基於IP查找流量
	tcpdump host 114.114.114.114 
	
6.根據來源和目標進行篩選
	tcpdump src 1.1.1.1 (源地址)
	tcpdump dst 1.0.0.1 (目的地址)
	tcpdump not src  1.1.1.1 (過濾源地址)
	tcpdump not dst   1.0.0.1 (過濾目的地址)
	
7.查看某一網段或者子網的進出流量
	tcpdump net 1.2.3.0/24
	
8.使用十六進制輸出
	tcpdump -c 1 -X icmp
	
9.顯示特定端口的流量
	tcpdump port 3389 
	tcpdump src port 1025
	tcpdump dst port 1026
	
10.顯示特定協議的流量
	tcpdump icmp
	tcpdump udp
	tcpdump tcp
	
11.查看某一範圍內的所有端口的流量
	tcpdump portrange 21-23
	
12.將包存在文件中
	tcpdump port 80 -w capture_file
	
13.從文件中讀取
	tcpdump -r capture_file
	
14.來自特定的IP,發往特定的端口
	tcpdump -nnvvS src 139.5.6.4 and dst port 3389
	
15.從某個網段來,到某個網段去
	tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
	
16.到某個IP的非ICMP流量
	tcpdump dst 192.168.0.2 and src net and not icmp
	tcpdump -vv src mars and not dst port 22
	
17.GET請求
	tcpdump -vvAls0 | grep 'GET'
	tcpdump -s 0 -A 'tcp dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
	
18.POST請求
	tcpdump -vvAls0 | grep 'Host:'
	tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

輸出

10:35:25.648675 IP chenlvzhoudembp.54018 > 192.168.1.1.domain: 18464+ PTR? 1.1.168.192.in-addr.arpa. (42)
10:35:25.650092 IP 192.168.1.1.domain > chenlvzhoudembp.54018: 18464* 1/0/0 PTR 192.168.1.1. (67)
10:35:25.895269 IP chenlvzhoudembp.58063 > 117.34.61.133.http: Flags [F.], seq 706908684, ack 3609747502, win 4096, length 0
10:35:25.896315 IP chenlvzhoudembp.52148 > 192.168.1.1.domain: 8596+ PTR? 133.61.34.117.in-addr.arpa. (44)
10:35:26.739836 IP chenlvzhoudembp.57928 > 14.215.177.39.https: Flags [F.], seq 907035098, ack 3372296595, win 4096, length 0
10:35:26.790594 IP 192.168.1.1.domain > chenlvzhoudembp.52148: 8596 NXDomain 0/1/0 (106)

第一列:時分秒毫秒
第二列:網絡協議
第三列:發送方的ip地址+端口號(或者協議)
第四列:>
第五列:接收方的ip地址+端口號(或者協議)
第六列:冒號
第七列:Flag標識符:
[S]:建立連接的標識SYN
[P]:發送數據的標識
[F]:結束連接的標識FIN
[.]:沒有標識

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章