1. Sniff参数介绍
以下介绍sniff用于抓包时常用的参数
count: 类型为int,指定最多嗅探多少个符合要求的报文,设置为0时则一直捕获。
store:类型为bool,l指定保存抓取的数据包或者丢弃,默认值为True。
prn:l类型为function,回调函数,对每个报文进行处理,默认值为None。
offline:无指定类型,默认值为None。从pcap文件读取数据,而不进行探嗅。
filter:类型为str,用于筛选抓取的信息,默认值为None,不进行筛选。
timeout:类型为int或float,在给定的事件后停止嗅探,默认值为None。
iface:类型为str,指定抓包的网卡,不指定则代表所有网卡,默认值为None。
2. Sniff过滤规则介绍
filter的规则使用 Berkeley Packet Filter (BPF)语法,可使用host描述主机,port描述端口,也支持“与、或、非”等逻辑运算。
type:用于规定使用名字或数字代表的类型,如host、net、port、portrange
dir:用于规定流量的方向,如src、dst
proto:规定匹配的协议,如tcp、udp、ip6等
常用以下几个维度设置过滤规则
- 网络协议(protocal)
可选值为ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp, icmp
- 源目的地址
Src host、 dst host;指定源目的地址过滤时可以指定具体IP地址也可以指定网段范围,如src net 123.12.1 、dst net 19.12.1.0
- 源、目的端口
当接收过滤的报文为TCP/UDP报文时可设置匹配端口号的规则,dst port、src port.设置匹配端口的规则时可指定一个范围进行匹配dst portrange 12300-12400
- 报文长度(length)
可指定预期报文的长度大于或小于某个值,less/greater length
3. Sniff抓包示例
例1:指定在eth2接口上抓包,抓包个数为10个、报文类型为ICMP、源IP为10.25.153.124
例2:制定抓TCP报文源IP网段为10.8.93.0/24,抓包时间为5秒