抓包工具wireshark的使用

wireshark及linux抓包工具tcpdump的使用

wireshark 抓包工具的使用

wireshark 简介

wireshark 是一个网络封包分析软件,可以截取网络封包,并尽可能显示出最为详细的网网络封包资料,直接与网卡进行交互。(windows需要自己下载安装,kali Linux自带,无需手动安装)

实例

先介绍一个使用wireshark工具抓取ping命令操作的示例,可以上手操作感受一下抓包的具体过程。
1、打开wireshark,主界面如下:
在这里插入图片描述
2、选择菜单栏上 捕获 -> 选项,勾选一个网卡。这里需要根据各自电脑网卡使用情况选择,简单的办法可以看使用的IP对应的网卡。双击,启动抓包。
在这里插入图片描述
3、wireshark启动后,wireshark处于抓包状态中。
在这里插入图片描述
4、执行需要抓包的操作,如在cmd窗口下执行ping 192.168.144.60
在这里插入图片描述
5 操作完成后相关数据包就抓取到了,可以点击 停止捕获分组 按钮。
在这里插入图片描述
6 Wireshakr抓包界面介绍
在这里插入图片描述
Wireshark 的主界面包含6个部分:

菜单栏:用于调试、配置
工具栏:常用功能的快捷方式
过滤栏:指定过滤条件,过滤数据包
数据包列表:核心区域,每一行就是一个数据包
数据包详情:数据包的详细数据
数据包字节:数据包对应的字节流,二进制
说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏 视图 --> 着色规则。
WireShark 主要分为这几个界面

  1. Display Filter(显示过滤器)
    用于设置过滤条件进行数据包列表过滤。菜单路径:分析 --> Display Filters。
    在这里插入图片描述
  2. Packet List Pane(数据包列表)
    显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。不同协议的数据包使用了不同的颜色区分显示。
    在这里插入图片描述
  3. Packet Details Pane(数据包详细信息)
    在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的,用来查看协议中的每一个字段。各行信息分别为
    (1)Frame: 物理层的数据帧概况
    (2)Ethernet II: 数据链路层以太网帧头部信息
    (3)Internet Protocol Version 4: 互联网层IP包头部信息
    (4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
    (5)Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
    在这里插入图片描述

TCP包的具体内容

从下图可以看到wireshark捕获到的TCP包中的每个字段。
在这里插入图片描述
Dissector Pane(数据包字节区)
在这里插入图片描述
七、Wireshark过滤器设置
初学者使用wireshark时,将会得到大量的冗余数据包列表,以至于很难找到自己需要抓取的数据包部分。

wireshark工具中自带了两种类型的过滤器,学会使用这两种过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

1.抓包过滤器
捕获过滤器的菜单栏路径为 捕获 --> 捕获过滤器。用于在抓取数据包前设置。
在这里插入图片描述
wireshark过滤器表达式的规则

  1. 抓包过滤器语法和实例
    抓包过滤器类型Type(host、net、port)、方向Dir(src、dst)、协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)、逻辑运算符(&&与、|| 或、!非)
    (1)协议过滤
    比较简单,直接在抓包过滤框中直接输入协议名即可。
    tcp,只显示TCP协议的数据包列表
    http,只查看HTTP协议的数据包列表
    icmp,只显示ICMP协议的数据包列表
    (2)IP过滤
    host 192.168.1.104
    src host 192.168.1.104
    dst host 192.168.1.104
    (3)端口过滤
    port 80
    src port 80
    dst port 80
    (4)逻辑运算符&&与、|| 或、!非
    src host 192.168.1.104 &&dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包
    host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包
    !broadcast 不抓取广播数据包
  2. 显示过滤器语法和实例
    (1)比较操作符
    比较操作符有
    == 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于
    (2)协议过滤
    比较简单,直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。
    tcp,只显示TCP协议的数据包列表
    http,只查看HTTP协议的数据包列表
    icmp,只显示ICMP协议的数据包列表
    在这里插入图片描述

(3) ip过滤

ip.src 192.168.144.1 显示源地址为192.168.144.1的数据包列表
ip.dst
192.168.144.1, 显示目标地址为192.168.144.1的数据包列表
ip.addr == 192.168.144.1 显示源IP地址或目标IP地址为192.168.144.1的数据包列表

(4)端口过滤

tcp.port ==22, 显示源主机或者目的主机端口为22的数据包列表。
tcp.srcport == 22, 只显示TCP协议的源主机端口为22的数据包列表。
tcp.dstport == 22,只显示TCP协议的目的主机端口为22的数据包列表。
在这里插入图片描述

(5) http模式过滤

http.request.method==“GET”, 只显示HTTP GET方法的。
在这里插入图片描述

(6)逻辑运算符为 and/or/not

过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.144.60的ICMP数据包表达式为ip.addr == 192.168.144.60 and icmp
在这里插入图片描述
抓个tcp协议包分析下三次握手
第一次握手:
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。
在这里插入图片描述
数据包的关键属性如下:

SYN :标志位,表示请求建立连接
Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据
Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据
第二次握手:
服务器发回确认包, 标志位为 SYN,ACK。将确认序号(Acknowledgement Number)字段+1,即0+1=1。
在这里插入图片描述
数据包的关键属性如下:

Seq = 0 :初始建立值为0,表示当前还没有发送数据
Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)
第三次握手
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1。并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方,并且在Flag段写ACK的+1:
在这里插入图片描述
数据包的关键属性如下:

ACK :标志位,表示已经收到记录
Seq = 1 :表示当前已经发送1个数据
Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。
就这样通过了TCP三次握手,建立了连接。开始进行数据交互

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨煮夕阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值