WireShark抓包原理解析及抓包实战教程
1、WireShark快速分析数据包技巧
(1)确定 Wireshark的物理位置。如果没有一个正确的位置,启动 Wireshark后会花费很长时问捕获一些与自己无关的数据。“
(2)选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
(3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获数据。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。”
(4)使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。“
(5)使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
(6)构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。“
(7)重组数据。当传输较大的图片或文件时,需要将信息分布在多个数据包中。这时候就需要使用重组数据的方法来抓取完整的数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是重组一个完整的图片或文件。
2、实战:WireShark抓包及快速定位数据包技巧
2.1常见协议包
ARP协议
ICMP协议
TCP协议
UDP协议
DNS协议
HTTP协议
2.2使用 WireShark 进行抓包
启动WireSharke
2.3 混杂模式介绍
1)混杂模式概述:混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃
一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。
2)关闭和开启混杂模式方法
打开wireshark,点击capture(捕获)——Options(选项)
勾选箭头,Enable promiscuous mde on all interfaces(在所有接口上使用混杂模式),这样就开启混杂模式,取消勾选,就变为普通模式
2.4 WireShark的过滤使用
开启混杂模式,在捕获过滤器处输入如下指令
1)host 172.16.12.15 捕获该IP相关的数据包
2)src 172.16.12.15 捕获该IP发出去的数据包
3)dst 172.16.12.15 捕获所有发给该IP的数据包
4)port 80 捕获和80端口有关的数据包
5)ether host [MAC地址] 捕获该MAC地址相关的数据包
在显示过滤器下面输入如下指令
1、tcp/arp/udp/http/dns等 捕获所有tcp数据包
2、ip.src_host == 172.16.12.15 or ip. dst_host ==172.16.12.2 捕获源地址是15或者目标地址是2的ip
3、ip.src_host == 172.16.12.15 and ip.dst_host ==172.16.12.2 捕获源地址是15且目标地址是2的ip and可以用&&表示
4、ip.addr == == 172.16.12.15 and ip.addr ==172.16.12.2
3 、实战:使用 WireShark 对常用协议抓包并分析原理
协议分析的时候我们关闭混淆模式,避免一些干扰的数据包存在。
3.1常用协议分析-ARP协议
地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在 IPv4 中极其重要。ARP是通过网络地址来定位 MAC 地址。
关闭混杂模式,显示过滤器输入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回复包 1表示request请求包
Sender MAC address: XXXXXXXXXXXX(9c:61:21:75:55:50) #源MAC地址Sender IP address: 192.168.1.1 #源IP地址
Target MAC address: VMware_f1:35:ee (00:0c:29:f1:35:ee) #目标MAC地址Target IP address: 192.168.1.53 #目标 IP地址
总结:我们可以看到到应答包补全了自己的 MAC 地址,目的地址和源地址做了替换我们再来看两个数据包的请求和过程
Who has 192.168.1.1? Tell 192.168.1.53
192.168.1.1 is at 9c:61:21:75:55:50
192.168.1.53 广播:谁有192.168.1.1的MAC地址?
192.168.1.1 应答:192.168.1.1的MAC地址是XXXXXXXXXXX
3.2常用协议分析-ICMP协议
ICMP请求包
Internet Control Message Protocol
Type:8 (Echo (ping) request)
Code:0 #type0 协议类型8 code 0 代码0 表示请求报文
Checksum:Oxfd1c [correct] #校验和,用户检查错误的数据
[Checksum Status:Good] #校验状态:good
Identifier (BE):63126(Oxf696)
Identifier (LE):38646(0x96f6) #ID值,在应答包中返回该字段
Sequence Number (BE):1 (0x0001) #序列号依旧在应答包中返回该字段
Sequence Number (LE):256 (0x0100)
[Response frame:654] 响应帧的序列号:654
Timestamp from icmpdata:Sep 8,202108:54:30.000000000 EDT [Timestamp from icmp data(relative):0.746635014 seconds] Data (48 bytes)
ICMP响应包
Internet Control Message Protocol
Type:0(Echo (ping) reply)
Code:0 #type0 协议类型0 code 0 代码0 表示回显应答报文
Checksum:0x051d [correct] #校验和
「Checksum Status:Goodl
Identifier (BE):63126(Oxf696)
Identifier (LE):38646(0x96f6)
Sequence Number (BE):1 (0×0001)
Sequence Number (LE):256 (0x0100) #这里的ID和序列号和请求包一样
[Request frame:653] #请求帧的序列号
[Response time:60.003 ms] #响应时间
Timestamp from icmp data: Sep 8,2021 08:54:30.000000000 EDT [Timestamp from icmp data(relative):0.806637645seconds]Data (48 bytes) #填充数据,共48字节
本机发送一个ICMP Echo Request的包
接收方返回一个ICMP Echo Reply,包含了接受到数据拷贝和一些其他命令
3.3 常用协议分析-TCP协议
三次握手
三次握手统计图
到这里三次握手就结束了,下面是三次握手统计图
四次挥手
我们分析一下过程,我们在终端输入 EXIT 实际上是在我们Kali上执行的命令,表示我们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状态并关闭本端的会话接口,释放相应资源。
3.4 常用协议分析-GTTP协议
┌──(root
WireShark抓包原理解析及抓包实战教程相关推荐
- Fiddler抓包原理解析
一.Fiddler简介: Fiddler是一款免费且功能强大的数据包抓取软件.是位于客户端和服务器端之间的http(s)代理,它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互 ...
- (转载)网络抓包原理及常用抓包工具
感谢和转载于: https://blog.csdn.net/l61052319940708/article/details/80624900 本文以App作为例子,实际应用不限于App范围. 前言:本 ...
- 扯一扯HTTPS单向认证、双向认证、抓包原理、反抓包策略
HTTP(HyperText Transfer Protocol,超文本传输协议)被用于在Web浏览器和网站服务器之间传递信息,在TCP/IP中处于应用层.这里提一下TCP/IP的分层共分为四层:应用 ...
- singleflight包原理解析
转载地址:https://silenceper.com/blog/202003/singleflight/ singleflight 包主要是用来做并发控制,常见的比如防止 缓存击穿 ,我们来模拟一下 ...
- Spring Boot 原理解析—启动类包扫描原理
为了何更好的理解该篇内容,请先阅读Spring Boot 原理解析-入口SpringApplication. 我们知道在使用Spring Boot时,Spring会自动加载Spring Boot中启动 ...
- python分析数据包_Python解析pcap数据包
Post Views: 29,789 零.前言 历时数月,终于结束了考研初试,Blog也很长时间没有更新了,期间还是有些小伙伴来Blog看文章很是感动.以后一定会坚持更新,尽量给大家推送一些干货.这次 ...
- python解析数据包_python – 解析UDP数据包
我正在构建一个UDP服务器来解析和验证传入的UDP数据包.我能够接收和解析数据包,但标头值不是我所期望的. 这是传入数据包的结构 包ID(4个字节) 包序列(4个字节) XOR密钥(2个字节) 数据包 ...
- 工厂方法模式-原理解析-逐步构建-java实战
Why? 为什么我们可以用简单粗暴的方式来完成产品经理给的需求,还要用 23种设计模式 中的工厂方法模式来重构代码呢? 这个问题在我刚入行的时候是不懂的,理解需求,完成代码,前后端联调,提交测试,业务 ...
- 人工神经网络原理与实践,人工神经网络实战教程
深度学习学什么? 深度学习主要学的有:神经网络.BP反向传播算法.TensorFlow深度学习工具等. 深度学习英文全称为:deeplearning,是机器学习的分支,主要是把人工神经网络当作构架,进 ...
- Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持.MAC泛洪)及数据流追踪和图像抓取(二) 2019年09月22日 21:55:44 Eastmount 阅读数 3515 文章标签: ...
最新文章
- centos7 解决chrome提示您的连接不是私密连接的方法
- Java面试题:缓存三大问题及解决方案!
- js hoisting -- 提升 学习笔记
- 使用 Maven 执行 java main class(java应用程序)
- [PY3]——字符串的分割、匹配、搜索方法总结
- apache站点优化—静态缓存
- 使用网页对话框来显示图片 window.open()
- 毕业生共享屏幕3小时 被骗70万
- fireFox模拟 post请求、上传插件,火狐浏览器中文postman插件
- “让我陪你走到人生的尽头。” | 也许AI能提供更好的临终关怀
- 怎样让vSAN发挥出高性能、低延迟的威力?
- 太阳代理ip_IP直通车 | 冬季之始,你知多少
- 简单实用计划提醒便签软件 界面简洁功能一目了然
- autojs加解密,文本/字符串的加密和解密脚本源码分享
- 2022 CCF形式化方法工业应用前沿分论坛暨中科国创高可信联合上海控安新品发布会顺利召开!...
- 城市的灵魂——记董敬明教授讲座
- 一口气搞懂「文件系统」,就靠这 25 张图了
- 南华大学【软卓】【ACM协会】【其它学习生活方面】QA
- 前端实现给文字添加动态背景
- 使用oracle开发的配置