目录
一、WireShark简介和抓包原理及过程
1.1 WireShark简介
Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。WireShark使用WinPCAP(kali自带)作为接口,直接与网卡进行数据报文交换。
1.2 WireShark的应用
- 网络管理者使用WireShark来检测网络问题
- 网络安全工程师使用WireShark来检查资讯安全相关问题
- 开发者使用WireShark来学习网络协议的相关知识
- 开发者使用WireShark来为新的通讯协议排错
- 普通用户使用WireShark来学习网络协议的相关知识
- “居心叵测”的人用WireShark来寻找一些敏感信息
1.3 WireShark快速分析数据包技巧
- 确定WireShark物理位置,如果没有正确的位置,启动WireShark后悔花费很长的时间铺货一些与自己无关的数据。
- 选择捕获接口,一般是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获道德其他数据对自己没有任何帮助。
- 使用捕获过滤器。通过设置捕获过滤器可以避免产生过大的捕获数据,这样用户在分析数据时也不会受其他数据干扰,节约用户时间。
- 使用显示过滤器。通常使用捕获过滤器过滤后的数据往往还是很复杂,为了使过滤的数据包再细致些,此时使用显示过滤器进行过滤。
- 使用着色规则。通常使用显示过滤器后的数据都是有用的数据包,如果像更加突出显示某个绘画,可以使用着色规则高亮显示。
- 构建图表。如果用户想要更明显的看到一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据的分布情况。
- 重组数据。当传输较大的图片或文件时,需要将信息分布在多个数据包中。这时需要使用重组数据的方法来抓取完整的数据。WireShark的重组功能可以重组一个会话中不同数据包的信息。
二、WireShark抓包及快速定位数据包技巧
2.1 常见协议包
- ARP协议
- ICMP协议
- TCP协议
- UDP协议
- DNS协议
- HTTP协议
2.2 实操
- 启动WireShark
- 选择有流量的(波浪线)并双击进入抓取所有发送给本地kali与流经本地的数据包
2.3 混杂模式
混杂模式概述
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下的网卡只接收发给本机的包(包括广播包)传递给上层程序,其他的包一律丢弃。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。
关闭和开启混杂模式的方法
- 关闭混杂模式前,需要停止当前抓包
- 在程序工作栏中点击捕获->选项
- 在选项设置界面输出设置栏的左下方勾选在所有接口上使用混杂模式再点击开始了。默认就是开启混杂模式。
- 我们打开浏览器访问一下百度
- 访问完成后点击停止抓包
- 这里就是WireShark的过滤器,我们可以根据自己的条件来筛选自己想要的数据包
(1)使用过滤器筛选TCP的数据包
注意:筛选条件我们都使用小写就可以,大写有可能无法识别
(2)使用过滤器筛选ARP的数据包
(3)使用过滤器筛选UDP的数据包
我们筛选UDP报文时出现了多种协议,这是因为OUIC以及DNS都是基于 UDP的传输层之上的协议。
- 扩展:
客户端向DNS服务器查询域名,一般返回的内容不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。理论上来说,客户端也可以指定向DNS服务器查询时用TCP,但是事实上,很多DNS服务器进行配置时仅支持UDP查询包。
(4)使用过滤器筛选http的数据包
(5)使用过滤器筛选DNS数据包
- 其实我们不仅可以对协议类型进行筛选,还可以跟很多筛选条件,比如源地址、目的地址等。
(1)首先在终端ping baidu.com,并使用WireShark抓包
然后修改筛选条件为:
ip.src_host==192.168.130.200 or ip.dst_host==39.156.66.10
ip.src_host==192.168.130.200 表示源IP地址
ip.dst_host==39.156.66.10 表示目的地址
中间用or进行拼接表示”或“,也可以使用and表示“与”。
三、 案例:使用WireShark对常用协议抓包并分析原理
3.1 常用协议分析——ARP协议
地址解析协议(Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址 来找寻数据链路层地址的网络传输协议,它在 IPv4 中极其重要。ARP 是通过网络地址来定位 MAC 地址。
- 协议分析的时候我们关闭混淆模式,避免一些干扰的数据包存在。
- 开始抓包,过滤ARP
- 分析第一个请求包
双击分析请求包
- 查看 Address Resolution Protocol (request) ARP 请求包内容:
Address Resolution Protocol (request) | ARP 地址解析协议 |
request | 表示请求包 |
Hardware type: Ethernet (1) | 硬件类型 |
Protocol type: IPv4 ( 0x0800 ) | 协议类型 |
Hardware size: 6 | 硬件地址 |
Protocol size: 4 | 协议长度 |
Opcode:_ request ( 1 ) | 操作码,该值为 1 表示 ARP 请求包 |
Sender MAC address:82:fb:de:58:4b:93 (82:fb:de:58:4b:93) | 源 MAC 地址 |
Sender IP address: 192.168.130.98 | 源 IP 地址 |
Target MAC address: 00:00:00_ 00: 00:00 (00: 00: 00 :00: 00:00) | 目标 MAC 地址 |
Target IP address: 192.168.130.200 | 目标 IP 地址 |
- 分析第二个数据包ARP的应答数据包, 查看: Address Resolution Protocol (reply) ARP 地址解析协议
Address Resolution Protocol (reply) | ARP 地址解析协议 |
reply | 表示回复包 |
Hardware type: Ethernet (1) | 硬件类型 |
Protocol type: IPv4 ( 0x0800 ) | 协议类型 |
Hardware size: 6 | 硬件地址 |
Protocol size: 4 | 协议长度 |
Opcode:_ reply ( 2 ) | 操作码,该值为 2 表示 ARP 回复包 |
Sender MAC address:VMware_dd:25:8b (00:0c:29:dd:25:8b) | 源 MAC 地址 |
Sender IP address: 192.168.130.200 | 源 IP 地址 |
Target MAC address: 82:fb:de:58:4b:93 (82:fb:de:58:4b:93) | 目标 MAC 地址 |
Target IP address: 192.168.130.98 | 目标 IP 地址 |
我们可以看到到应答包补全了自己的 MAC 地址,目的地址和源地址做了替换