文檔簡介:html
摘錄了一些經常使用的比較複雜句式的tcpdum命令,過於簡單的如基於地址、端口抓包就不收錄了linux
一、抓取全部通過eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP數據git
tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'github
二、抓取全部通過eth1,目標MAC地址是00:01:02:03:04:05的ICMP數據網絡
tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'tcp
三、抓取全部通過eth1,目的網絡是192.168,但目的主機不是192.168.1.200的TCP數據ide
tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'測試
四、篩選出設置了ip選項的報文htm
tcpdump -i eth1 'ip[0] > 69'ip
五、匹配MF,分片包
tcpdump -i eth1 'ip[6] = 32'
六、匹配MF,不分片包
tcpdump -i eth1 'ip[6] = 64'
測試分片:ping -M want -s 3000 192.168.1.1
七、抓大於某字節的報文
tcpdump -i eth1 'ip[2:2] > 600'
八、只抓syn包
tcpdump -i eth1 'tcp[tcpflags] = tcp-syn'
九、抓SYN, ACK
tcpdump -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'
備註:
TCP標記值:tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-push, tcp-ack, tcp-urg
十、抓SMTP數據
tcpdump -i eth1 '((port 25) and (tcp[(tcp[12]>>2):4] = 0x4d41494c))'
十一、抓HTTP get數據
tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x47455420'
十二、抓SSH的返回數據
tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D'
1三、抓DNS請求數據
tcpdump -i eth1 udp dst port 53
持續更新中...
2017.8.1 以上命令摘錄自潛水大叔的wiki,連接以下:
http://linuxwiki.github.io/NetTools/tcpdump.html