Tcpdump 表达式介绍:
表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。
在表达式中一般如下几种类型的关键字。
第一种是关于类型的关键字,主要包括host,net,port, 例如:
主机:host 245.27.56.34, 指明245.27.56.34是一台主机,
网络:net 255.255.244.128 指明255.255.244.128是一个网络地址,
端口:port 22 指明端口号是22。
如果没有指定类型,缺省的类型是host.
第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src,这些关键字指明了传输的方向。 例如:
src 182.168.41.23 指明IP包中源地址是182.168.41.23 ;
dst 182.168.41.23 指明IP包目的地址是182.168.41.23 ;
如果没有指明方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括ip,arp,rarp,tcp,udp等类型。
还有三种逻辑运算,取非运算是 'not ' '! ',与运算是'and','&&';或运算 是'or','││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要。
1、抓取包含172.32.85.64的数据包
# tcpdump -i eth0 host 172.32.85.64
2、抓取包含10.10.10.0/24网段的数据包
# tcpdump -i eth0 net 10.10.10.0/24
3、抓取包含端口22的数据包
# tcpdump -i eth0 port 22
4、抓取特定协议的数据包:
抓取udp协议的数据包 #tcpdump -i eth0 udp
抓取icmp协议的数据包 #tcpdump -i eth0 icmp
抓取arp协议的数据包 #tcpdump -i eth0 arp
抓取ip协议的数据包 #tcpdump -i eth0 ip
5、抓取源ip是172.32.85.64数据包。
# tcpdump -i eth0 src host 172.32.85.64
6、抓取目的ip是172.32.85.64数据包
# tcpdump -i eth0 dst host 172.32.85.64
7、抓取源端口是22的数据包
# tcpdump -i eth0 src port 22
8、抓取源ip是10.10.10.253且目的ip是22的数据包
# tcpdump -i eth0 src host 10.10.10.253 and dst port 22
9、抓取源ip是172.32.85.64或者包含端口是22的数据包
# tcpdump -i eth0 src host 172.32.85.64 or port 22
10、抓取源ip是172.32.85.64且端口不是22的数据包
# tcpdump -i eth0 src host 172.32.85.64 and not port 22
11、抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。
# tcpdump -i eth0 \( src host 10.10.10.2 and dst port 22 \) or \( src host 10.10.10.65 and dst port 80 \)
12、抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的数据包。
# tcpdump -i eth0 'src host 10.10.10.59 and dst port 22' or ' src host 10.10.10.68 and dst port 80 '
13、把抓取的数据包记录存到/tmp/fill文件中,当抓取100个数据包后就退出程序。
# tcpdump –i eth0 -w /tmp/1.cap -c 100
阅读(898) | 评论(0) | 转发(0) |