5.Wire Shark 抓包及常用协议分析

12 篇文章 0 订阅
本文详细介绍了WireShark的抓包原理、应用技巧,包括快速定位数据包、常见协议包如ARP、ICMP、TCP、UDP等的分析方法。还探讨了混杂模式、过滤器使用以及如何在服务器被黑情况下利用WireShark解决问题。
摘要由CSDN通过智能技术生成

5.Wire Shark 抓包及常用协议分析

在这里插入图片描述

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

5.1.1 WireShark 简介

​ WireShark 是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。WireShark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。

5.1.2 WireShark 的应用

​ 网络管理员使用 WireShark 来检测网络问题,网络安全工程师使用 WireShark 来检查资讯安全相关问题,开发者使用 WireShark 来为新的通讯协议除错,普通使用者使用 WireShark 来学习网络协议相关知识,也可用于寻找一些敏感信息。

5.1.3 WireShark 快速分析数据包技巧

​ (1)确定 WireShark 的物理位置(如果没有一个正确的位置,启动 WireShark 后会花费很长时间捕获到一些与自己无关的数据)。

​ (2)选择捕获接口。一般都是选择连接到 Internet 网络的接口,这样才可以捕获到与网络相关的数据。否则捕获到的其他数据对自己也没有任何帮助。

​ (3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获数据。这样用户在分析数据时,也不会受其他数据干扰。而且,还可以为用户节约大量时间。

​ (4)使用显示过滤器,通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包更加细致,此时使用显示过滤器进行过滤。

​ (5)使用着色规则。通常使用显示过滤器过滤后发数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。

​ (6)构建图标。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以更加方便的展现数据分布情况。

​ (7)重组数据。当传输较大的图片或文件时,需要将信息分布在多个数据包中。这时候就需要使用重组数据的方法来抓取完整的数据。WireShark 的重组功能,可以重组一个会话中不同数据包的信息,或者是重组一个完整的图片或文件。

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

5.2.1 常见协议包

​ ARP 协议

​ ICMP 协议

​ TCP 协议

​ UDP 协议

​ DNS 协议

​ HTTP 协议

​ FTP 协议

5.2.2 使用 WireShark 进行抓包

启动: 应用程序 –> 09 - 嗅探/欺骗 –> wireshark

双击选择当前网卡(eth0)

在这里插入图片描述

在这里插入图片描述

5.2.3 混杂模式介绍

​ 普通模式:只接收发送给本机的数据包

​ 混杂模式:接收所有经过网卡的数据包(一般默认混杂模式)

在这里插入图片描述

5.2.4 WireShark 的过滤器使用

--筛选指定IP
	ip.addr==目标IP
	
--筛选指定协议
	直接写协议名(如:TCP)
	
--筛选源IP(Kali向网关发送的数据包)
	ip.src_host==源IP
	
--筛选目标IP
	ip.dst_host==目标IP
	
--可使用逻辑查询
	or 满足其中一个
	and  两个同时满足
	
	[扩] 客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器负载更低,响应更快。理论上说,客户端也可以指定向DNS服务器查询时用TCP,但事实上很多DNS服务器进行配置时,仅支持UDP查询。

例:抓取访问百度站点的数据包在这里插入图片描述

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

[注] 协议分析时,为避免一些干扰数据包存在,须关闭混杂模式。

5.3.1 常用协议分析:ARP 协议(地址解析协议)

​ 地址解析协议(Address Resolution Protocol,ARP)是一个通过网络层地址来寻找数据链路层地址的网络传输协议,它在IPv4中极为重要。ARP是通过网络地址来定位MAC地址。

address Resolution Protocol(reply)	    //ARP地址解析协议(reply表示回复包)
Hardware type:Ethernet(1) 		   		//硬件类型
Protocol type:IPv4(0x0800)			   //协议类型
Harware size:6							//硬件地址
Protocol size:4							//协议长度
Opcode:_reply(2)						//操作码(值为2表示ARP回复包)
Sender MAC address:XXXXXXXXXXX			//源MAC地址
Sender IP address:xxx.xxx.xxx.xxx	    //源IP地址
Target MAC address:XXXXXXXXXXX			//目标MAC地址
Target IP address:xxx.xxx.xxx.xxx		//目标IP地址
使用nmap基于ARP协议进行扫描
	# nmap -sn 192.168.1.1

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.3.2 常用协议分析:ICMP 协议

	--本机发送一个 ICMP Echo Request 的包,接收方返回一个ICMP Echo Reply,包含了接收到数据拷贝和一些其他指令
	# ping www.baidu.com

[注] ICMP基于IPv4
type:协议类型(ping类型)request请求包reply应答包
code:8 回写请求包	0:回写应答报文
checksum:校验和
[checksum status:good]检验状态
Identifier(BE):id值
Identifier(LE):id值
sequence number(BE):序列号(应答包会返回Identifier(BE)值)
sequence number(LE):序列号(应答包会返回Identifier(LE)值)
[Response frame:52] 响应帧的序列号:52

Data(48 bytes)填充数据共48字节

在这里插入图片描述

在这里插入图片描述

5.3.3 常用协议分析:TCP 协议

在这里插入图片描述

在这里插入图片描述

流量图分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

挥手分析

​ 在终端输入 Exit 表示 SSHD 的 Server 端向客户端发起关闭链接请求。

第一次挥手 :服务端发送一个 [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 状态并关闭本端的会话接口,释放相应的资源。

5.3.1 常用协议分析:HTTP 协议

​ [注] HTTP 是 TCP 的上层协议,所以过滤 TCP 的数据时会包含 HTTP 协议的数据包。

– 发送一个 HTTP 的 HEAD 请求

​ # curl -I baidu.com

– 服务器收到我们的请求返回了一个 Seq/ACK 进行确认

– 服务器将 HTTP 的头部信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

场景:服务器被黑了上不了网,可以ping通网关,但是不能上网

模拟场景:修改主机 TTL 值为1(以下方式临时修改内核参数)

[扩]

​ TTL:数据报文的生存周期。

​ 默认的 Linux 操作系统值:64,每经过一个路由节点,TTL 值减1。TTL 值为0时,说明目标地址不可达,并返回:Tine to live exceeded

--修改主机 TTL 值为1
	# echo "1" > /proc/sys/net/ipv4/ip_default_ttl
	
--ping 测试网关
	# ping 192.168.1.1
	
--ping 8.8.8.8
	# ping 8.8.8.8 -c 1
	//此时无法ping通,因为TTL值为1,每经过一个路由节点,TTL值减去1,过第二个路由节点时TTL值减到0,此时目标地址不可达,提示Tine to live exceeded(超过生存周期)。
	//通过TTL值可判断经过了几个路由节点( 默认TTL值64-当前TTL值=经过的路由节点数)
	//可通过WireShark抓取普通模式下ping8.8.8.8中的icmp数据包进行分析
	
--恢复系统内核参数
	# echo "64" > /proc/sys/net/ipv4/ip_default_ttl
		
--ping 测试
	# ping 8.8.8.8 -c 1
---------------------------------------------------------------------------
保存抓包数据时建议保存pcap格式,使用时【文件】->【打开】即可。

[扩] mtr工具

​ mtr xxx.xxx.xxx.xxx

​ //提示未找到命令则需要先进行安装

​ – mtr 安装

​ # apt install -y mtr

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北方有你.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值