wireshark(抓包)学习

发布时间 2023-05-05 14:43:35作者: 数星观月

1、Wireshark简介

Wireshark (前称Ethereal)是一个免费开源的网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。

Wireshark官方网站:https://www.wireshark.org,可以去官网查看这款软件的详细信息

2、Wireshark基本使用方法

kali中内置有wireshark,打开wireshark

 eth0接口是本地有线网卡信息,lo接口是本地回环地址接口信息,双击eht0选择抓取经过本地网卡的数据包

在capture--options中有个混杂模式,勾选了就将所有经过这台机器的包都抓取,不管是不是发给我的,可以取消勾选到实时抓包。

 保存捕获文件,找到file菜单,然后save as。打开的话就是file--open存储的文件。注:保存文件格式选择pcapng,这个格式几乎所有抓包软件都能打开,兼容性比较好。

3、Wireshark筛选器

开启混杂模式,打开一些网页,ping一下服务,抓取到一些包

在筛选的菜单栏中输入arp、tcp、udp、dns、http、icmp等关键字回车,就可以搜索出相对应协议的数据包。

ip.src_host==10.1.1.1(ip地址) #表示源IP地址

ip.dst_host==10.1.1.1(ip地址) #表示目的地址

条件还可以使用or和and连接筛选

4、Wireshark常见协议包分析

4.1 arp 协议:地址解析协议(英语: Address Resolution Protocol ,缩写: ARP )是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。ARP最初在1982年的RFC 826中提出并纳入互联网标准STD 37. ARP也可能指是在多数操作系统中管理其相关地址的一个进程。

ARP是通过网络地址来定位MAC地址。ARP 已经在很多网络层和数据链接层之间得以实现,所谓地址解析( address resolution )就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

frame第一层(物理层的数据帧概况),可以看到信息还是比较多的,frame后面的5说明这是第五个包

 Ethernet II(链路层): 数据链路层以太网帧头部信息,我们可以看到目标和源的MAC地址。

 Address Resolution Protocol第三层网络层,可以看到发送和接受双方ip和MAC地址的详细信息。

 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:#源MAC地址

Sender IP address: 192.1 68.1.102#源IP地址

Target MAC address:#目标MAC地址

Target IP address: 192.168.1.1#目标IP地址

4.2 ICMP协议: ICMP ( Internet Control Message Protocol ) Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、 主机是否可达、路由是否可用等网络本身的消息。

可以看到两两为一组,确保是通的。

 4.3 tcp协议:传输控制协议(英語: Transmission Control Protocol )是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。在简化的计算机网络 OSI模型中,它完成第四层传输层所指定的功能。用户数据报协议 ( UDP )是同一层内另-一个重要的传输协议。

通命令curl -I www.baidu.com访问百度,然后抓包搜tcp可以看到三次握手

Source Port( 16 bits ):源端口号,用于标记主机进程,端口号也称为进程地址。
Destination Port( 16 bits) : 目标端口号,通过16位字节标识0-65535共65536个端口
Sequence Number( 32 bits) : 数据包序列号. TCP数据分段.
Acknowledgement Number( 32 bits) : 确认序列号,回应序列号, - -次发- -批报文时候使用序列号和确认号, TCP三次握手的第- -次无确认号.
Header Length(4 bits) : 首部长度.
Reserved (4 bits) : 保留位
Code: control Flag(6 bits) :标志控制码,该字段有6个bits组成,每个bits标识- -种含义,用以说明这个连接的状态,让接收端连接这个数据包的主要动作.
URG(Urgent) :紧急位, 1标识为紧急数据包,接收端要紧急处理,且Urgent Pointer字段也会被启用
ACK(Acknowledge) :确认位, 1表示为响应数据包,0表示确认无效,和Acknowledeg Number有关
PSH(Push Function) :推送位, 1表示不传送缓冲区,而立即把数据包发送,无需在缓冲区等待再传送.
RST(Reset) :连接重置,当已建立的连接遇到意外断开时,在原有的基础」上重新建立,不需要再三次握手,1表示强制结束连接,且发送端已经断线

SYN(Synchronous) : 1表示发送端希望双方建立同步处理(要求建立连接),主动要连接到对方
FIN(Finish) : 1表示传输结束
Window Size :窗口大小,接收方的缓冲当中的可剩余容纳的报文个数,以及链路中的整体容纳报文的个数,0表示缓冲器已经额满,所以应该暂停数据传输,发送一-次能每多少个,取决于接收方窗口大小
TCP Checksum :确认校验码.
Urgent Pointer :紧急指针, URG为1时,指针有效,否则无效.
Options :填充位,可变长度,多数情况不使用.
Data :数据

4.4 udp协议: Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议( UDP , UserDatagram Protocol )。UDP 为应用程序提供了一种无需建立连接就可以发送封装的IP数据报的方法。RFC 768描述了UDP。Internet 的传输层有两个主要协议,互为补充。

4.5 dns协议:域名系统( Domain Name System ,缩写: DNS )是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址);一句话就是用来解析域名。

4.6 http协议: http (超文本传输协议)是- -个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式, HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用