作为一款高效免费的抓包工具,wireshark可以捕获并描述网络数据包,其最大的优势就是免费、开源以及多平台支持,在GNU通用公共许可证的保障范围下,用户可以免费获取软件和代码,并拥有对其源码修改和定制的权利,如今其已是全球最广泛的网络数据包分析软件之一。

0x01.Wireshark可以做什么

  • 网络管理员使用Wireshark检测网络问题

  • 网安工程师用Wireshark检查信息安全相关问题

  • 开发者使用Wireshark为新的通信协议调试

  • 普通用户使用Wireshark学习网络协议相关知识

  • 憨憨学生使用Wireshark应付TCP/IP课程要求

0x02.Wireshark不可以做什么

-Wireshark不是入侵侦测软件(Intrusion Detection Software, IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark截取的数据包能够帮助用户对于网络行为有更清楚的了解。

Wireshark不会对网络数据包产生内容的修改 - 它只会反映出当前流通的数据包信息。Wireshark本身也不会提交数据包至网络上。就是说你只能查看数据包,不能修改或转发。

0x03.哪里下载

开源软件请去它的官网下载wireshark,有Mac跟Window版

下载完成后一路next,如果win10系统选择抓包但不显示网卡,需要下载win10pcap兼容性安装包

0x04.第一个抓包实例

打开wireshark 3.0.4,主界面如下:

选择菜单栏上捕获——>选项,,取消混杂模式,勾选WLAN,开始(你也可以直接双击上图的WLAN开始)

此时wireshark已经开始工作,查看抓包

打开cmd窗口,执行ping http://xxx.cn

工作中的wireshark将抓取到相关数据包,在过滤栏设置过滤条件以避免其他无用数据包影响分析,比如:ip.addr == 185.199.111.153 and icmp表示只显示ICPM协议且源主机IP或者目的主机IP为185.199.111.153的数据包。说明:协议名称icmp要小写

0x05.Wireshark抓包界面介绍

0x06.数据包详细信息

各行信息分别为 Frame: 物理层的数据帧概况 Ethernet II: 数据链路层以太网帧头部信息 Internet Protocol Version 4: 互联网层IP包头部信息 Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP * Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

0x07.TCP包的具体内容

从下图可以看到wireshark捕获到的TCP包中的每个字段。

0x08.wireshark过滤器表达式的规则

1、抓包过滤器语法和实例

抓包过滤器类型Type(host、net、port)、方向Dir(src、dst)、协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)、逻辑运算符(&& 与、|| 或、!非)

协议过滤

比较简单,直接在抓包过滤框中直接输入协议名即可。tcp,只显示TCP协议的数据包列表 http,只查看HTTP协议的数据包列表 icmp,只显示ICMP协议的数据包列表

IP过滤

host 192.168.1.104 src host 192.168.1.104 dst host 192.168.1.104

端口过滤

port 80 src port 80 dst port 80

逻辑运算符&& 与、|| 或、!非

src host 192.168.1.104 && dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包 host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包 !broadcast 不抓取广播数据包

显示过滤器语法和实例

比较操作符

比较操作符有== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于。

协议过滤

比较简单,直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。tcp,只显示TCP协议的数据包列表 http,只查看HTTP协议的数据包列表 icmp,只显示ICMP协议的数据包列表

ip过滤

ip.src ==192.168.1.104 显示源地址为192.168.1.104的数据包列表 ip.dst==192.168.1.104, 显示目标地址为192.168.1.104的数据包列表

ip.addr == 192.168.1.104 显示源IP地址或目标IP地址为192.168.1.104的数据包列表

端口过滤

tcp.port ==80, 显示源主机或者目的主机端口为80的数据包列表。

tcp.srcport == 80, 只显示TCP协议的源主机端口为80的数据包列表。

tcp.dstport == 80,只显示TCP协议的目的主机端口为80的数据包列表。

Http模式过滤

http.request.method=="GET", 只显示HTTP GET方法的。

逻辑运算符为 and/or/not

过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.1.104的ICMP数据包表达式为ip.addr == 192.168.1.104 and icmp

按照数据包内容过滤。

假设我要以IMCP层中的内容进行过滤,可以单击选中界面中的码流,在下方进行选中数据。右键-->准备过滤器-->选中-->添加条件表达式,如data contains "uestc"

0x09.Wireshark分析TCP协议三次握手

TCP三次握手连接建立过程

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手,客户端与服务器开始传送数据。{% endtabs %}

wireshark抓取访问指定服务器数据包

启动wireshark抓包,打开浏览器输入www.cnblogs.com

终止抓包,输入http过滤

隐藏其他无关http数据包,右键选中,追踪流——>TCP流,显示握手信息,如图所示:

可以看到这里截获了三个握手数据包,第四个是HTTP数据包,说明HTTP的确是使用TCP建立连接的。

第一次,客户端发送了一个TCP,标志位为SYN,序列号为0,表示客户端请求建立连接,如下:

关键参数

  • SYN :标志位,表示请求建立连接

  • Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据

  • Ack = 0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据

第二次,服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的ISN加1以.即0+1=1, 如下图如下:

关键参数

SYN + ACK: 标志位,同意建立连接,并回送SYN+ACK

Seq = 0 :初始建立值为0,表示当前还没有发送数据

Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)

第三次,客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1,如下图如下:

关键参数

ACK :标志位,表示已经收到记录 Seq = 1 :表示当前已经发送1个数据 Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。

0x0a.其他

调整时间戳

  1. View -->Time Display Format --> Date and Time of Day

参考

https://www.cnblogs.com/linyfeng/p/9496126.html

https://www.zhoulujun.cn/html/theory/network/201611307908.html

Wireshark抓包使用指南相关推荐

  1. wireshark抓包工具的使用及分析

    前段时间看到群里在讨论Wireshark抓包工具,想写一篇使用笔记但一直没来得及写,本篇就通过实例来分享wireshark抓包工具的使用. Wireshark简介 Wireshark 是一个网络封包分 ...

  2. Linux下wireshark抓包验证telnet明文传输密码

    Host-A IP:192.168.56.129 OS:RHEL5.9 32bit Service:telnet-server Host-B IP:192.168.56.128 OS:RHEL5.9 ...

  3. hls二次加密 m3u8_HLS实战之Wireshark抓包分析

    0.引言 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直 ...

  4. wireshark抓包理解TCP的三次握手

    一.实验目的 通过wireshark抓包工具,抓取客户机访问FTP服务器的连接过程进一步理解TCP的三次握手 二.实验拓扑 三.实验步骤 1.根据拓扑图搭建实验环境. 2.在客户机上安装安装Wires ...

  5. Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法直接帮你解决问题,但 ...

  6. tcpdump + wireshark 抓包组合

    学习wireshark抓包随笔 一.目标地址: 239.255.255.250 239.255.255.250是多播地址,多见于路由器上开了UPnP服务,而这个服务会用SSDP(简单服务发现协议)就是 ...

  7. Wireshark抓包与常见问题解决

    Wireshark抓包与常见问题解决 参考文章: (1)Wireshark抓包与常见问题解决 (2)https://www.cnblogs.com/nlskyfree/p/9773852.html ( ...

  8. https wireshark抓包——要解密出原始数据光有ssl 证书还不行,还要有浏览器内的pre-master-secret(内存里)...

    基于wireshark抓包的分析 首先使用wireshark并且打开浏览器,打开百度(百度使用的是HTTPS加密),随意输入关键词浏览. 我这里将抓到的包进行过滤.过滤规则如下 ip.addr == ...

  9. Wireshark抓包—maybe caused by 'IP chechsum offload'?

    如题,使用Wireshark抓包,发现IP的校验和都是0,这样的数据包看起来很不爽. 这是由于网卡的引起的,网卡设置"IP chechsum offload"为Enable,这样操 ...

最新文章

  1. 【AJAX】DWR入门教程
  2. JVM:查看java内存情况命令
  3. SQLite数据库简介
  4. 设置HighCharts,让它生成的图表居中显示。
  5. webpack代码分割和懒加载
  6. matlab编程设计fir滤波器,用MATLAB设计FIR滤波器
  7. asp.net2.0 GridView 导出到 Excel
  8. Apache Server Status主机状态查看
  9. python 字符串交集_集合 (Set) | 一山不容二虎的 Python 数据类型
  10. 腾讯QQ之下载的安装包在哪里
  11. ubuntu命令行安装teamview
  12. 【系统分析师之路】原创章节 非功能需求设计思维导图
  13. 计算机网络技术该考什么证,计算机网络工程师证书
  14. C++课设 简易图像处理系统
  15. 一个在线免费短网址生成API
  16. 自学python入门训练营 李笑来_1901090043-自学训练营学习9群-PYTHON入门
  17. 英语语法最终珍藏版笔记-10动名词
  18. 我的世界服务器修改武器伤害,《我的世界》指令99999999攻击力武器 一刀秒指令代码...
  19. BiSeNetV1 面部分割
  20. Aspen Plus 2004.2_完整版全功能好用\

热门文章

  1. linux下的僵尸进程处理SIGCHLD信号
  2. WPS保存了但是内容丢失的问题
  3. 多语言站点怎样设置?
  4. 5分钟学会Java写一个接口
  5. 抽样(蒙特卡洛法)到底是在干啥?
  6. 后台进程启动Activity
  7. UI设计师如何正确使用调色板
  8. 盐雾实验有什么作用?
  9. Android面试笔记之事件分发机制
  10. GB/T 14710-2009医用电气设备环境试验要求及检验仪器设备清单