报文捕获分析工具Wireshark简介

本文是我的专栏《wireshark从入门到精通》中的开篇,本专栏准备跟大家介绍一下报文捕获分析工具wireshark,包括wireshark的一些原理性知识以及关联基本知识点(会陆续介绍一些实用背景知识点,这些知识点在TCP/IP等书籍中很少被提及,但是对于我们理解原理非常重要),一些最实用的使用技巧,报文批量增删改查方法,wireshark lua 插件编写等内容,分为初级,中级,高级三个部分,如下:

基础部分:

  • 报文捕获分析工具Wireshark简介
  • 报文格式-PCAP文件浅析
  • Wireshark捕获过滤器和显示过滤器
  • 流,对话等一些基本概念
  • Wireshark中的名字解析
  • Wireshark中实用的设置和使用技巧汇总
  • 通过Wireshark快速掌握SSL(TLS)协议

中级部分:

  • Wireshark配置解密HTTPS报文及其原理
  • Wireshark配置显示IP地理位置信息及其原理
  • Wireshark中多种乱码场景浅析
  • Wireshark自带的命令行工具使用
  • Tshark命令行批量捕获分析报文
  • Tshark命令行实现批量切流
  • Wireshark分析访问一个网站的协议过程

高级部分:

  • Wireshark 源码概览
  • Wireshark lua 插件简介和安装
  • Wireshark lua 插件批量查询报文
  • Wireshark lua 插件批量修改报文
  • Wireshark lua 插件实现切流操作
  • Wireshark lua 插件实现新增协议解释器
  • Wireshark lua 插件还原报文中的图片和视频
  • Python 调用Wireshark lua 插件方法

上述是我总结工作中经常使用到的一些内容,可能会在撰写专栏的过程中进行微调。本专栏目的在于让读者快速的掌握wireshark这款工具的使用和一些背景知识,因为很多的书籍和手册要么面面俱到,没有突出重点,要么原理没有进行解释,不利于学习。根据我这些年的从业经验,相信通过本次专栏的学习,能够让读者解决绝大多数和wireshark相关问题,同时明白背后的一些原理。在介绍wireshark这款软件之前,有必要明确一些概念,如下:

  • 1,什么是抓包
  • 2,什么是报文
  • 3,为什么要分析报文
  • 4,为什么使用wireshark
  • 5,wireshark能够干什么

1,什么是抓包
抓包就是抓取网络中传输的实际数据。例如我们访问百度的网址,百度服务器给我们传输图片,文字等信息。对于用户来说,所看到的就是图片,文字这些直观的东西。但是之于实际在网络中的传输来说,要进行一系列的协商,最基本的要明确通信双方的地址,包括IP地址、端口地址等等。因此在实际传输的数据就会包括相应的地址,端口等诸多信息,这些信息就是由网络协议来规定的。因此实际传输过程中,不仅仅包括图片这些内容数据信息,还包括协议规定的一系列信息。Wireshark作用之一就是将这些协议信息连同图片文字等数据内容一起进行捕获(捕获位置就是指定网卡,即数据的出入口),我们称之为抓包。由此可见有了协议数据之后,就可以分析这些协议规则了。

2,什么是报文
上述过程中wireshark捕获的所有数据,最初是存储在内存中,最终会按照一定的格式存储到硬盘上,所得到的存储文件就是报文文件。在平时工作中,为了方便通常简称某某报文。TCP/IP卷一中的报文往往是一片报文的简称,比如TCP报文段,表示的是单次TCP交互的内容,通常是小于1460个字节数据。对于新手来说,不同场景下对于报文的称呼可能会导致一些困惑,需要注意。对于wireshark来说,默认的是.pcap或者.pcapng格式的报文。对于这种格式的报文,后面会有单独的一章分析其格式,因为wireshark UI界面中显示了报文格式的相关一些数据,需要使用者知道其来源。当然报文格式还包括.cap.gz,.dmp等等多种形式,不同的抓包软件存储的报文格式也会有所差异。文件格式的差异往往是文件头的不同,每一种文件都有自己的TLV格式。除此之外,报文中的协议数据和内容数据都是一样的。

3,为什么要分析报文

  • (1),刚才说了报文中包含计算机网络协议的数据,分析这些通信数据,有助于我们理解计算机网络协议的原理,使得我们去学习计算机网络协议的时候更加的容易,而不是仅仅停留在理论层次。我就是在工作中反复的分析真实场景数据,才对学校期间那些晦涩难懂的概念恍然大悟.。如果你有实际分析观察过TCP PUSH标志位的使用场景,你一定能够切实的理解该此标志位。
  • (2),当然像我从事的DPI行业,分析报文的特征数据,分析恶意流量,分析用户行为特征,分析网络拥塞状况,还原报文中视频以及图片,都需要借助wireshark进行分析。
  • (3),还有一些运维的工作,甚至对实时性比较高的游戏行业,也往往会用到此类工具辅助分析流量。
    由此可见,一款工具对于我们来说是非常的重要,同时学习wireshark不仅仅是一款工具的学习,其实也是计算机网络协议等原理的学习。

4,为什么要使用wireshark
类似的报文分析工具有很多,例如sniffer,fiddler等等。不得不说这些软件都有其应用的领域,也有其优势。但是综合来说wireshark具有如下几大优点,使得其一直以应用最为广泛的报文捕获和分析工具。

  • (1)、支持协议数量庞大,最新版本数量2000+(我的是2.4版本,版本比较低,协议也在1900+),涵盖了目前应用场景下的绝大多数公有协议,选择视图->内部->支持的协议,可得图1:
    在这里插入图片描述
    图1
  • (2)、强大的过滤器功能,提供了协议本身所能提供的信息以及大量的扩展信息字段,选择右上角的过滤器,如图2。
    在这里插入图片描述
    图2
  • (3)、C,Lua插件功能。由于很多的私有协议,wireshark没法支持,这个时候就可以利用wireshark提供的插件使用其对已有基础协议的解析功能。当然对于lua插件的更多内容将在高级部分重点加以介绍。
  • (4)、开源,可以直接在github上搜索。正是由于其开源,一些主推协议的厂商会及时的更新wireshark上的协议解析,使其支持最新版本。例如quic协议是google主推的一个协议,由于该协议目前一直在不断的演进,每一次的协议draft,wireshark基本都会跟进对应的协议解析。像很多的工具可能现在都不支持quic协议的解析,毕竟quic目前还是draft,没有正式的成为标准。
  • (5)、提供了tshark命令行工具,方便对报文进行批处理,处理运行速度快,因为解码报文,协议解析等方面主要是c语言编写的,效率高。
  • (6)、wireshark 对于Linux以及Windows都支持。
    以上的种种优势,使得wireshark在很多的应用场景下都有被用到。

5,wireshark能够干什么
在前面部分其实以及说明了wireshark的作用。包括协议分析,网络故障定位,报文批量增删改查,报文数据(文字,图片,视频,文件等)还原,私有协议插件的编写等等。基本上和通信数据相关的问题,都会使用到该软件。

二,wirshark下载安装
由于wireshark对于Linux以及Windows都支持,因此安装需要分两个平台。
1,windows下较为简单,和所有其他软件安装类似,直接到官网下载安装即可。需要注意的是安装时候需要勾选上winpcap,这个是windows下用于抓取网卡数据的必要组件。
2,多数Linux安装源的wireshark版本较老,无法跟上协议的更新速度,有的甚至不支持lua插件的运行,因此建议采用源码下载,编译安装,源码路径见这里 。linux安装软件的步奏就是三步,如下:

./configure
make
make install

遇到依赖提示安装对应的依赖即可,我在centos7上成功安装wireshark2.6版本。实际上在linux上成功的运行lua插件还有很多的配置,我在后续脚本插件部分会有更详细的说明。

本节就是简单的介绍了wireshark以及一些简单的概念,希望在接下来的学习中,你能有所收获。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里

发布了132 篇原创文章 · 获赞 183 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/javajiawei/article/details/103569478
今日推荐