1.常見參數(shù)
tcpdump -i eth0 -nn -s0 -v port 80
-i 選擇監(jiān)控的網(wǎng)卡
-nn 不解析主機名和端口號,捕獲大量數(shù)據(jù),名稱解析會降低解析速度
-s0 捕獲長度無限制
-v 增加輸出中顯示的詳細信息量
port 80 端口過濾器,只捕獲80端口的流量,通常是HTTP
2.
tcpdump -A -s0 port 80
-A 輸出ASCII數(shù)據(jù)
-X 輸出十六進制數(shù)據(jù)和ASCII數(shù)據(jù)
3.
tcpdump -i eth0 udp
udp 過濾器,只捕獲udp數(shù)據(jù)
proto 17 協(xié)議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 過濾器,根據(jù)目的IP過濾
src 過濾器,根據(jù)來源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的數(shù)據(jù)包
tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
匹配POST包,POST的數(shù)據(jù)可能不在包里
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的數(shù)據(jù)
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遠程連接服務器執(zhí)行tcpdump命令,并在本地的wireshark分析
ssh root@remotesystem 'tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i -
ssh ubuntu@115.159.28.111 'sudo tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i -
14.
配合shell獲取最高的IP數(shù)
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