1. 程式人生 > >[linux] tcpdump抓包案例

[linux] tcpdump抓包案例

1.常見引數
tcpdump -i eth0 -nn -s0 -v port 80

-i  選擇監控的網絡卡
-nn 不解析主機名和埠號,捕獲大量資料,名稱解析會降低解析速度
-s0  捕獲長度無限制
-v  增加輸出中顯示的詳細資訊量
port 80 埠過濾器,只捕獲80埠的流量,通常是HTTP


2.
tcpdump -A -s0 port 80
-A 輸出ASCII資料
-X 輸出十六進位制資料和ASCII資料

3.
tcpdump -i eth0 udp
udp 過濾器,只捕獲udp資料
proto 17 協議17等效於udp
proto 6  等效於tcp

4.
tcpdump -i eth0 host 10.10.1.1
host 過濾器,基於IP地址過濾

5.
tcpdump -i eth0 dst 10.105.38.204
dst 過濾器,根據目的IP過濾
src 過濾器,根據來源IP過濾

6.
tcpdump -i eth0 -s0 -w test.pcap
-w 寫入一個檔案,可以在Wireshark中分析

7.
tcpdump -i eth0 -s0 -l port 80 | grep 'Server:'
-l 配合一些管道命令的時候例如grep

8.
組合過濾
and or &&
or or ||
not or !

9.
快速提取HTTP UA
tcpdump -nn -A -s1500 -l | grep "User-Agent:"

使用egrep 匹配 UA和Host
tcpdump -nn -A -s1500 -l | egrep -i 'User-Agent:|Host:'

10.
匹配GET的資料包
tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

匹配POST包,POST的資料可能不在包裡
tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

11.
匹配HTTP請求頭
tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"
匹配一些POST的資料
tcpdump -s 0 -A -n -l | egrep -i "POST /|pwd=|passwd=|password=|Host:"
匹配一些cookie資訊
tcpdump -nn -A -s0 -l | egrep -i 'Set-Cookie|Host:|Cookie:'

12.
捕獲DNS請求和響應
tcpdump -i eth0 -s0 port 53

13.
使用tcpdump捕獲並在Wireshark中檢視

使用ssh遠端連線伺服器執行tcpdump命令,並在本地的wireshark分析
ssh 
[email protected]
'tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i - ssh [email protected] 'sudo tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i - 14. 配合shell獲取最高的IP數 tcpdump -nnn -t -c 200 | cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20 15.捕獲DHCP的請求和響應 tcpdump -v -n port 67 or 68