tcpdump 複雜過濾規則

文檔簡介: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

相關文章
相關標籤/搜索