WireShark 抓包及常用协议分析


本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!

WireShark简介和抓包原理及过程:

WireShark简介:

WireShark是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。WireShark使用WinPCAP作为接口,直接与网卡进行数据报文交换
官网:https://www.wireshark.org/
WireShark可以分析图片
通常先从统计下手,如协议分级、会话等
了解哪些机器发送的包最多、流量最大,之后具体分析,多利用统计功能
http.request.method == POST -->可以查看页面密码

WireShark的应用:

网络管理员:使用WireShark检测网络问题
网络安全工程师:使用WireShark检查资讯安全相关问题
开发者:使用WireShark为新的通讯协议排错
普通使用者:使用WireShark学习网络协议的相关知识
有些人:"居心叵测"的用来寻找敏感信息
网络特征,谁和谁通信、网络载体

WireShark快速分析数据包技巧:

  • 确定WireShark的物理位置。如果没有一个正确的位置,启动WireShark后会花费很长的时间捕获一些与自己无关的数据
  • 选择捕获接口(上网网卡)。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其他数据对自己也没有任何帮助
  • 使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获数据。这样用户在分析数据时,也不会受其他数据干扰,而且,还可以为用户节约大量时间
  • 使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤
  • 使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示
  • 构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况
  • 重组数据。当传输较大的图片或文件时,需要将信息分布在多个数据包中,这时候就需要使用重组数据的方法来抓取完整的数据。WireShark的重组功能,可以重组一个会话中不同数据包的信息,或者是重组一个完整的图片或文件

WireShark抓包及快速定位数据包技巧:

常见协议包:

ARP协议
ICMP协议
TCP协议
UDP协议
DNS协议
HTTP协议

使用WireShark进行抓包:

image.png
image.png
image.png
可另存为pcap格式的数据包:
image.png
image.png
image.png
调整布局:
image.png
image.png
image.png
可自定义,也可新加
image.png
image.png
image.png
列可移动,列数据也可居中
image.png
image.png
image.png
image.png

混杂模式介绍:

  • 混杂模式概述:
    • 混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC 地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃
    • 一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用
  • 关闭和开启混杂模式方法:
    • 需要先停止当前抓包,之后点击捕获–>选项–>Input–>左下方勾选"在所有接口上使用混杂模式"
    • 默认开启混杂模式

image.png
image.png
image.png

WireShark的过滤器使用:

打开浏览器访问百度:
image.png
访问完成后点击停止抓包即可:
image.png
数据包太多,根据条件自己筛选:
筛选TCP的数据包:(只支持小写)
image.png
筛选arp的数据包:
image.png
筛选udp的数据包:
image.png
oicq以及dns都是基于udp的传输层之上的协议
扩展:客户端向 DNS 服务器查询域名,一般返回的内容都不超过 512 字节,用 UDP 传输即可。不用经过三次握手,这样 DNS 服务器负载更低,响应更快。理论上说,客户端也可以指定向 DNS 服务器查询时用 TCP,但事实上,很多 DNS 服务器进行配置的时候,仅支持 UDP 查询包。
筛选192.168.137.1的数据包:
host 192.168.137.1
image.png
筛选某个MAC地址:
ether host 00:0c:29:09:69:54
image.png
image.png
筛选http的数据包:
image.png
筛选dns的数据包:
image.png
筛选源地址是192.168.137.100的数据包:
src host 192.168.137.100
image.png
筛选目的地址是192.168.137.100的数据包:
dst host 192.168.137.100
image.png
image.png
筛选80端口的数据:
port 80
image.png
image.png
筛选源端口是80的数据:src port 80
筛选目的端口是80 的数据:dst port 80
不想抓取某台主机:!host 192.168.137.100
只抓取192.168.137.100的数据并且端口为80的数据:host 192.168.137.100 && port 80
只抓取192.168.137.100的数据或者端口为80的数据:host 192.168.137.100 || port 80
筛选源地址是192.168.137.100或目的地址是192.168.137.100
ip.src_host == 192.168.137.100 or ip.dst_host == 192.168.137.100
image.png
image.png
筛选源地址是192.168.137.1并且目的地址是192.168.137.100
ip.src_host == 192.168.137.1 and ip.dst_host == 192.168.137.100
image.png
筛选所有与192.168.137.100通信的主机:ip.addr == 192.168.137.100

使用WireShark对常用协议抓包并分析原理:

协议分析的时候需要关闭混淆模式,避免一些干扰的数据包存在
image.png

ARP协议:

地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在 IPv4 中极其重要。ARP 是通过网络地址来定位 MAC 地址。
image.png
image.png
使用nmap产生arp协议:nmap -sn 192.168.137.11
广播请求,单播回应
分析第一个请求包:
image.png
查看 Address Resolution Protocol (request) ARP 请求包内容:
image.png
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: VMware_06:10:b1 (00:0c:29:06:10:b1) -->源 MAC 地址
Sender IP address: 192.168.137.100 -->源 IP 地址
Target MAC address: 00:00:00_ 00: 00:00 (00: 00: 00 :00: 00:00) -->目标 MAC 地址
Target IP address: 192.168.137.1 -->目标 IP 地址

分析第二个数据包ARP的应答数据包:
image.png
查看 Address Resolution Protocol (reply) ARP 请求包内容:
image.png
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_c0:00:08 (00:50:56:c0:00:08) -->源 MAC 地址
Sender IP address: 192.168.137.1 -->源 IP 地址
Target MAC address: VMware_06:10:b1 (00: 0c: 29 :06: 10:b1) -->目标 MAC 地址
Target IP address: 192.168.137.100 -->目标 IP 地址

可以看到应答包补全了自己的MAC地址,目的地址和源地址做了替换
两个数据包的请求和过程:
image.png
192.168.137.1 广播:谁有 192.168.137.1 的 MAC 地址?
192.168.137.1 应答:192.168.137.1 的 MAC 地址是 xxxxxxxxxxx

ICMP协议:

ping baidu.com -c 1 -->只ping一次
image.png
代理:TCP协议,ping:ICMP协议,所以ping不能走代理
ICMP协议分析请求包:
image.png
ICMP协议分析应答包:
image.png
请求包和应答包的填充数据是相同的,如果不同,代表可能被篡改了
工作过程:
本机发送一个 ICMP Echo Request 的包
接收方返回一个 ICMP Echo Reply,包含了接受到数据拷贝和一些其他指令

TCP协议:

通过xshell远程连接来捕获完整的TCP三次握手
image.png
TCP Durp ACK:报文丢失,重传
TCP建立链接-3次握手.gif
tcp断开链接-4次挥手.gif
image.png
image.png
SYN=1 表示发送一个链接请求。这时 Seq 和ACK 都是 0
image.png
服务端收到 SYN 连接请求返回的数据包 SYN=1,ACK=1 表示回应第一个 SYN 数据包
image.png
image.png
image.png
image.png
image.png四次挥手

  • 四次挥手:
    • 第一次挥手:服务端发送一个[FIN+ACK],表示自己没有数据要发送了,想断开连接,并进入FIN_WAIT_1 状态
    • 第二次挥手:客户端收到 FIN 后,知道不会再有数据从服务端传来,发送 ACK 进行确认,确认序号为收到序号+1(与 SYN 相同,一个 FIN 占用一个序号),客户端进入 CLOSE_WAIT 状态。
    • 第三次挥手:客户端发送 [FIN+ACK] 给对方,表示自己没有数据要发送了,客户端进入LAST_ACK 状态,然后直接断开 TCP 会话的连接,释放相应的资源。
    • 第四次挥手:服务户端收到了客户端的 FIN 信令后,进入 TIMED_WAIT 状态,并发送 ACK 确认消息。服务端在 TIMED_WAIT 状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的ACK 并正确关闭了进入 CLOSE 状态,自己也断开了 TCP 连接,释放所有资源。当客户端收到服务端的ACK 回应后,会进入 CLOSE 状态并关闭本端的会话接口,释放相应资源。

HTTP协议:

HTTP协议是TCP的上层协议,所以筛选TCP的数据会包含HTTP协议的数据包
curl -I baidu.com -->只返回头部信息
image.png
image.png
第一步:我们我们发送了一个 HTTP 的 HEAD 请求
第二步:服务器收到我们的请求返回了一个 Seq/ACK 进行确认
第三步:服务器将 HTTP 的头部信息返回给我们客户端 状态码为 200 表示页面正常
第四步:客户端收到服务器返回的头部信息向服务器发送 Seq/ACK 进行确认
发送完成之后客户端就会发送 FIN/ACK 来进行关闭链接的请求

WireShark抓包解决服务器被黑上不了网:

模式场景:修改主机TTL值为1,临时修改内核参数:echo “1” > /proc/sys/net/ipv4/ip_default_ttl
TTL : 数据报文的生存周期。
默认 linux 操作系统值:64,每经过一个路由节点,TTL 值减 1。TTL 值为 0 时,说明目标地址不可达并返回:Time to live exceeded
作用: 防止数据包,无限制在公网中转发。我们测试结果
image.png
image.png
image.png
我们可以看到提示我们 Time to live exceeded 这表示超过生存时间
我们判断和目标之间经过多少个网络设备是根据目标返回给我们的 TTL 值来判断的,因为我们发送的数据包是看不到的
尝试抓包:
image.png
第一个包:发送了一个ping请求包:TTL=1
之后192.168.137.1返回数据包:超过数据包生存时间,数据包被丢弃
image.png
可以发现目标地址发生了改变,这证明了数据包在网 络中已经到达了下一个网络设备才被丢弃
image.png
目标返回给我们的 TTL 值为 47,这表示我们的 TTL 值需要大于 64-47=17才可以访问baidu.com
TTL:为0,代表目标地址不可达,超时

MTR:可以检测我们到达目标网络之间的所有网络设备的网络质量
apt install -y mtr -->需要安装
apt baidu.com -->检测到达baidu.com所有节点的通信质量,红色代表丢包,问号代表可能有防火墙
image.png

微信公众号:
微信公众号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值