1、tcpdump安装:yum install tcpdump
2、关键字介绍
类型关键字:
指定主机 host 192.168.1.111
指定网络地址 net 202.0.0.0
指定端口 port 8080
方向关键字
src:src 192.168.1.111,ip包源地址是192.168.1.111
dst:det 192.168.1.112,ip包目标地址是192.168.1.112
src or dst
src and dst
协议关键字
fddi、tcp、udp、rarp、arp、http等
其他关键字
gateway(抓取指定网关的数据包)、broadcast、less、greater(非运算 'not ' '! ', 与运算'and','&&';或运算 'or' ,'||';)
3、混杂模式
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。事实上,计算机收到数据包后,由网络层进行判断,确定是递交上层(传输层),还是丢弃,还是递交下层(数据链路层、MAC子层)转发
查看当前网卡是否为混杂模式:#Ifconfig eth0
开启: # ifconfig eth0 promisc
关闭: # ifconfig eth0 -promisc
4、相关选项:
-c:指定要抓取的包数量。
-i interface:指定tcpdump需要监听的接口。
-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-C:用于判断用 -w 选项将报文写入文件的大小是否超过这个值,超过了就新建文件(文件名后缀是1、2、3依次增加)。
-p:不让网络界面进入混杂模式。
-f:将外部的Internet地址以数字的形式打印出来。
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。
-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-vvv:当分析和打印的时候,产生详细的输出。
-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-w:将抓包数据输出到文件中。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-s:指定要监听数据包的长度
-tttt:加入时间戳
5、实例:
1、tcpdump -i ens33 -c 100 -vvv -tttt -s 0 -w 1.cap host 192.168.1.111 and tcp port 8080
抓取从ens33网口出去源地址为192.168.1.111,端口为8080的tcp协议的100个包,具有详细信息、时间戳、不限长度写入1.cap文件
2、tcpdump -i eth33 src host 192.168.1.111 and dst port 8080
抓取从ens33流向源地址为192.168.1.111的包以及接收8080端口的包
6、wireshark界面
7、封包协议
Frame:物理层的数据帧概况。
EthernetII:数据链路层以太网帧头部信息。
InternetProtocol Version 4:互联网层IP包头部信息。
TransmissionControl Protocol:传输层的数据段头部信息。
HypertextTransfer Protocol:应用层的信息。
8、响应详细数据
9、http字段简介
Host:主机地址
Connection:是否需要持久连
Content-Length:HTTP消息实体的传输长度
Cache-Control:指定请求和响应遵循的缓存机制
Accept:指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序
Origin:最初请求是从哪里发起的( origin只用于Post请求)
User-Agent:告诉服务器,Browser内核
Content-Type:表示具体请求中的媒体类型信息
Referer:让服务器判断来源页面, 即用户是从哪个页面来的
Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型
Accept-Language:指定HTTP客户端浏览器用来展示返回信息所优先选择的语言。
使用 tcpdump监听某一端口数据
备注:监听某一端口的数据
tcpdump -i eth1 -nnn udp port 21001
-i 表示指定网卡
-nnn 指定通信协议
port 指定端口号
可以不指定网卡参数