TCPDump工具
主要功能:捕获和分析数据包。
TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not等逻辑语句来帮助你去掉无用的信息。
命令格式:tcpdump [ 选项 ] [ -c 数量 ] [ -i 网络接口 ] [ -w 文件名 ] [ 表达式 ]
常用选项:
-
-l:使标准输出变为缓冲行形式;
-
-c:抓包次数;
-
-nn:直接以 IP 及 Port Number 显示,而非主机名与服务名称;
-
-s :<数据包大小> 设置每个数据包的大小;
-
-i:指定监听的网络接口;
-
-r:从指定的文件中读取包;
-
-w:输出信息保存到指定文件;
-
-a:将网络地址和广播地址转变成名字;
-
-d:将匹配信息包的代码以人们能够理解的汇编格式给出;
-
-e:在输出行打印出数据链路层的头部信息;
-
-f:将外部的Internet地址以数字的形式打印出来;
-
-t:在输出的每一行不打印时间戳;
-
-v :输出稍微详细的报文信息;加一个v更详细。
四种表达式:过滤报文条件
-
1、关于类型的关键字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host。
-
2、确定传输方向的关键字,主要包括src, dst ,dst or src, dst and src ,这些关键字指明了传输的方向。例如 src210.27.48.2 ,指明ip包中源地址是210.27.48.2, dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。
-
3、协议的关键字,主要包括ip,arp,tcp,udp等类型。
-
4、三种逻辑运算,与运算是’and’,‘&&’; 或运算是’or’ ,’||’; 非运算是 ‘not ‘ ‘! ‘。
其他重要的关键字如下: broadcast,less(小于),greater(大于)
举例说明:
1、截获eth0网卡10次收发所有数据包并将抓包结果保存到test文件,再读取test抓包结果文件
tcpdump i eth0 c 10 w test
tcpdump r test
2、截获来访问80端口的所有数据包(指定端口范围portrange 1-1024)
tcpdump port 80
3、截获所有来自主机114.254.151.51的进出所有数据包
tcpdump host 114.254.151.51
4、截获ip包中源地址是114.254.151.51的(目的是dst)
tcpdump src 114.254.151.51
5、截获主机114.254.151.51和主机114.254.151.52的通信
tcpdum host 114.254.151.51 and 114.254.151.52
6、截获tcp协议并且源地址114.254.151.51来访问80的端口
tcpdump tcp and src 114.254.151.51 and port 80
7、截获主机114.254.151.51除了和114.254.151.52之外的所有ip包
tcpdump ip host 114.254.151.51 and ! 114.254.151.52
8、截获长度大于1000数据包,对于DDOS攻击时,可以使用
tcpdump -i eth0 greater 1000
9、截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3 icmp协议的通信
tcpdump host 10.10.211.6 and \(10.10.211.4 or 10.10.211.1\) and icmp
10. 抓去xff头信息
tcpdump -i eth1 -p tcp and port 80 -xx -XX -w fuzj
tcpdump tcp port 80 -X -s 0 -w fuzj.log