tcpdump 筛选抓包

2020-01-08  本文已影响0人  hongdada

安装

$ sudo yum install tcpdump

常用参数

tcpdump -i eth0
$ sudo tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.usbmon1 (USB bus number 1)
5.any (Pseudo-device that captures on all interfaces)
6.lo
tcpdump -i eth0 -w debug.cap
$ sudo tcpdump -i eth0 -w debug.cap -C 1
$ ls debug* -l
-rw-r--r-- 1 tcpdump tcpdump 1000956 Jan 14 10:16 debug.cap
-rw-r--r-- 1 tcpdump tcpdump 1000323 Jan 14 10:32 debug.cap1
-rw-r--r-- 1 tcpdump tcpdump 1000017 Jan 14 10:51 debug.cap2
-rw-r--r-- 1 tcpdump tcpdump  970705 Jan 14 11:08 debug.cap3
tcpdump -r debug.cap
tcpdump -v
tcpdump -vv
tcpdump -i eth0 -c 100
tcpdump -n
tcpdump -nn
tcpdump -s 0
tcpdump -S
sudo tcpdump -Z user2

常用的参数组合:

sudo tcpdump -i eth0 -nnS -s 0 -c 100 -Avvv [<expression>]
sudo tcpdump -i eth0 -nnS -s 1024 -c 100 -Avvv [<expression>]
sudo tcpdump -i eth0 -nnS -s 1024 -C 10 -c 10000 -v -w debug.cap [<expression>]

默认 tcpdump 会抓取所有的数据,可以通过指定过滤规则来过滤数据包。

过滤筛选

网卡过滤

指定eth1网卡

tcpdump -i eth1

所有网卡

tcpdump -i any

主机过滤

要获取指定 IP 的数据包,不管是作为源地址还是目的地址,使用下面命令:

tcpdump host 192.168.3.7

要指定 IP 地址是源地址或是目的地址则使用:

tcpdump src 192.168.1.100
tcpdump dst 192.168.1.100

或者

tcpdump src host 192.168.1.100
tcpdump dst host 192.168.1.100

网段过滤

tcpdump -i eth1 net 192.168
tcpdump -i eth1 src net 192.168
tcpdump -i eth1 dst net 192.168

端口过滤

tcpdump port 22
tcpdump src port 22
tcpdump dst port 22

端口范围过滤

tcpdump portrange 22-125

协议过滤

tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 icmp

常用表达式

非 : ! or "not" (去掉双引号)  
且 : && or "and"  
或 : || or "or"

我们还可以使用“与” (and&&)、“或” (or|| ) 和“非”(not!) 来将两个条件组合起来。当我们需要基于某些条件来分析网络报文是非常有用。

写入读取文件

将捕获的包写入文件

tcpdump -i eth1 -w file.cap

读取tcpdump写入的文件

tcpdump -r file.cap

当然,一般都是下载下来使用Wireshark查看

具体案例

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

参考:

tcpdump使用技巧

tcpdump 常用操作

tcpdump命令详解

抓包神器 tcpdump 使用介绍

tcpdump参数解析及使用详解(转载)

tcpdump命令

网络基本功(十八):细说tcpdump的妙用(下)

上一篇 下一篇

猜你喜欢

热点阅读