第一:Wireshark抓包-Wireshark基础

一.软件介绍

1.Wireshark网络抓包工具使用WinPCAP作为接口,直接与网卡进行数据报文交换

2.可以实时检测网络通讯数据,检测其抓取的网络通讯数据快照文件
3.通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容
4.特性

4.1.包含有强显示过滤器语言
4.2.查看TCP会话重构流的能力
4.3.支持几百种协议和流媒体类型
5.网络封包分析软件功能可想像成 电工技师使用电表来量测电流\电压\电阻的工作
5.1.只是将场景移植到网络上,并将电线替换成网络线

6.在过去网络封包分析软件是非常昂贵的或是专门属于营利用的软件

7.GNUGPL通用许可证的保障范围下,使用者免费的代价取得软件与其源代码
7.1.并拥有针对其源代码修改及客制化的权利
7.2.Ethereal是目前全世界最广泛的网络封包分析软件之一

8.Wireshark在网络排障中使用非常频繁
8.1.显示网络模型中的第 2 层到第 5 层(链路层、网络层、传输层、应用层)
8.2.不管是网络工程师、网络安全工程师、黑客等平时都会用到Wireshark

二.WireShark简史

1.Wireshark是免费开源的数据包嗅探器/分析器,可用于捕获网络上的数据包
2.Wireshark最初的版本叫做 Ethereal,由 Gerald Combs1998年发布
3.Wireshark软件和官网上都可以看到他的名字排在首位

在这里插入图片描述
在这里插入图片描述
四.WireShark可以做什么

1.WireShark主要作用就是可以抓取各种端口的报文
2.包括有线网口、无线网口、USB口、LoopBack口等等
3.从而就可以很方便地进行协议学习、网络分析、系统排错等后续任务
支持实时捕获数据并保存为pcap文件
支持从已经捕获的数据包中读取数据
支持超过1000种标准/专用协议解析
支持创建插件解析私有协议
支持使用捕获和显示过滤器细化数据
支持TLS协议解密(设置比较复杂,不如使用charles/burp/fidder方便)
4.主要是三点
4.1.分析网络底层协议
4.2.解决网络故障问题
4.3.找寻网络安全问题

五.Wireshark不能做的

1.为安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包
2.不支持编辑修改数据包(需要编辑数据包建议使用 WireEdit3.不支持入侵/检测异常流量 

六.Wireshark VS Fiddler

1.Fiddler是在windows上运行的程序,专门用来捕获HTTPHTTPS2.wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS
2.1.所以wireshark看不懂HTTPS中的内容

七.同类的其他工具

1.微软的network monitor
2.Sniffer 
3.Omnipeek
4.Fiddler
5.Httpwatch
6.科来网络分析系统

八.什么人会用到wireshark

1.网络管理员会使用wireshark来检查网络问题
2.软件测试工程师使用wireshark抓包,来分析自己测试的软件
3.从事socket编程的工程师会用wireshark来调试
4.IT运维工程师
5.网络工程师
6.安全工程师
7.听说华为,中兴的大部分工程师都会用到wireshark
8.总之跟网络相关的东西,都可能会用到wireshark

九.平台支持

1.Windows
2.MacOS
3.Linux/Unix

十.相关网址

1.官网:https://www.wireshark.org/

在这里插入图片描述

2.书籍:http://www.wiresharkbook.com/

在这里插入图片描述

3.维基文档:https://wiki.wireshark.org/

在这里插入图片描述
十一.Wireshark抓包原理

1.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换

2.Wireshark使用的环境大致分为两种
2.1.一种是电脑直连网络的单机环境,
2.2.另外一种就是应用比较多的网络环境,即连接交换机的情况

3.单机情况下,Wireshark直接抓取本机网卡的网络流量
4.交换机情况下,Wireshark通过端口镜像、ARP欺骗等方式获取局域网中的网络流量
5.端口镜像:利用交换机的接口,将局域网的网络流量转发到指定电脑的网卡上

6.ARP欺骗:交换机根据MAC地址转发数据,伪装其他终端的MAC地址
6.1.从而获取局域网的网络流量
7.抓包原理分为网络原理和底层原理

7.1.网络原理
7.1.1.本机环境-直接抓本机网卡进出的流量:直接在终端安装ws
7.1.1.1.然后ws抓本机网卡的与互联网通信的流量

7.1.2.集线器环境(老网络)-集线器:向其他所有端口都会泛洪,抓整个局域网里面的包
8.网络抓包原理

8.1.网络中不论传输什么最终通过物理介质发送的都是二进制,类似于0101Bit8.2.纯文本(字符串)中文通常采用UTF-8编码,英文用ASCII编码
8.3.非纯文本音频、视频、图片、压缩包等按不同编码封装好,转换成二进制传输
8.4.IP网络中,通过Wireshark抓包,获取的原始数据都是二进制
9.哪种网络情况下能够抓取到包呢?下面结合网络原理讲解

9.1.网络抓包主要存在三种情况:本机环境、集线器环境和交换机环境
10.本机环境

10.1.本机环境直接抓包本机网卡进出的流量
10.2.Wireshark会绑定网卡,不需要借助第三方设备就能抓取的网络通信流量
10.2.1.这是最基本的抓包方式

10.3.即直接抓取进出本机网卡的流量包
10.4.这种情况下,wireshark会绑定本机的一块网卡

在这里插入图片描述

11.集线器环境
11.1.集线器环境可以做流量防洪,同一冲突域
11.2.集线器的英文是“Hub”,“Hub”是“中心”的意思
11.3.集线器的主要功能是对接收到的信号进行再生整形放大
11.4.以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上
11.5.它工作于OSI参考模型第一层,即“物理层”
11.6.假设三台电脑通信,PC1处安装Wireshark
11.6.1.PC2PC3发送数据包到集线器网络里面(冲突域或广播域)
11.6.2.由于集线器是物理层产品,不能识别MAC地址、IP地址
11.6.3.它会将接收包往其他所有接口泛洪
11.6.4.此时Wireshark能抓到从同一个集线器其他电脑发过来的数据包
11.6.4.1.即局域网中的数据包
11.6.5.这是一种典型的老网络做法,现在基本淘汰

11.6.6.用于抓取流量泛洪,冲突域内的数据包,即整个局域网的数据包

在这里插入图片描述

12.交换机环境
12.1.交换机环境是更加常见的方式,包括端口镜像、ARP欺骗、MAC泛洪
13.端口镜像
13.1.交换机是一种数据链路层甚至网络层的产品
13.1.1.它的转包接包严格按照交换机上的MAC地址表通信

13.2.所以正常情况下,PC2PC3通信流量是很难流到PC1的网卡上
13.3.PC2PC3通信时,PC1是无法通过Wireshark抓到包

13.4.但是可以在交换机端口做SAPN端口镜像操作
13.4.1.它会将其他两个口的流量复制一份到PC1处,PC1的网卡
13.4.2.Wireshark设置为混插模式,此时就能进行抓包

13.5.该模式常用于很多付费的流量分析软件
13.6.这种方式下,交换机严格按照tenlnet表和mac地址表进行转发数据包
13.7.当pc2和pc3通信的时候,默认是pc1是无法抓取数据包的
13.8.但是可以通过在交换机上设置策略,即端口镜像
13.9.这样Pc2Pc3通信的数据包就被复制一份到连接pc2的那个交换机端口
13.10.这样pc2就可以抓取到Pc2Pc3的通信数据包

在这里插入图片描述

14.ARP欺骗
14.1.假设没有权限在交换机上做端口镜像技术
14.1.1.因为有MAC地址表,又想获取整个局域网中的流量,窃取到PC2PC3上的流量
14.1.2.这可以通过著名的ARP攻击软件Cain&Abel实现
14.2.流程
14.2.1.首先,PC2发送ARP请求广播包,交换机收到包之后会发给PC1PC3
14.2.2.PC1PC3接收到,正常情况下PC1会丢弃该包,因为询问的是PC3
14.2.3.ARP欺骗会回复“我是IP3,对应地址为MAC1,这就是典型的ARP欺骗或ARP病毒
14.2.4.最后PC2会将流量封装成底层的MAC1回复过去
14.2.5.如果PC3PC1都回应,但APR有个特性叫后到优先
14.2.6.PC1会做个错误的绑定,将数据包发到MAC1
14.2.7.从而导致PC2PC3的通信流量都会经过PC1,这也是典型的流量劫持、局域网攻击

在这里插入图片描述

15.步骤:以下便是局域网ARP攻击的典型情况
15.1.PC2想和PC3通信,故而向交换机发送广播

15.2.正常情况下PC1会将此包丢弃掉(因为要找的不是它)
15.2.1.但是这里的PC1会进行ARP欺骗,告诉PC2它就是PC2要找的PC3

15.3.因为ARP后到优先的特性,PC2很大可能会认为PC1MAC地址是自己要找的PC3

15.4.就这样,PC2PC3的通信就变成了PC2PC1的通信

15.5.至于后续PC1要不要把数据(可能被修改的数据)交给PC3,那完全取决于PC1的心情
16.MAC泛洪
16.1.通过工具泛洪带来大量垃圾包,产生大量MAC地址
16.1.1.此时交换机MAC地址表会变为右边这张表(爆表)
16.1.2.MAC2MAC3被挤出MAC地址表

16.2.一旦这种MAC地址被挤出MAC地址表,按照交换机原理
16.2.1.如果收到的数据包是未知,它会对外泛洪,此时PC2PC3对外流量泛洪

在这里插入图片描述

17.这种情况下PC1没有端口镜像的权限,所以它不能直接截取全网的流量,那么该怎么做呢?
17.1.PC1发送大量垃圾包,这里产生了大量的MAC地址,导致MAC表爆表

17.2.PC2PC3发出的数据找不到目的地址就会进行全网泛洪,被PC1截取全网流量
18.底层原理
18.1.那么,抓包的底层架构是怎样的?

18.2.底层原理:wireshark底层抓包工具

在这里插入图片描述
十二.wireshark整体架构在这里插入图片描述

1.Wireshark包括5层架构
1.1.最底层Win-/libpcap:wireshark底层驱动软件,Wireshark抓包时依赖的库文件

1.2.Capture:抓包引擎,利用libpcap/WinPcap底层抓取网络数据包
1.2.1.libpcap/WinPcap提供了通用的抓包接口
1.2.2.能从不同类型的网络接口(包括以太网、令牌环网、ATM网等)获取数据包
1.3.Wiretap:将抓来的二进制数据转换成需要的格式文件,此时获取的是一些比特流
1.3.1.通过Wiretap(格式支持引擎)能从抓包文件中读取数据包,支持多种文件格式
1.4.Core:核心引擎,通过函数调用将其他模块连接在一起,起到联动调用的作用

1.4.1.Epan(分析引擎涉)Protocol-Tree保存数据包的协议信息,协议结构采用树形结构
1.4.1.1.解析协议报文时只需从根节点通过函数句柄依次调用各层解析函数即可

1.4.3.Dissectors协议解码器,支持700多种协议解析,能识别出协议字段并显示出字段值
1.4.4.Wireshark采用协议树的形式对数据流量的各层次协议逐层处理)
1.4.5.Plugins(一些协议解码器以插件形式实现,源码在plugins目录)
1.4.6.Display-Filters(显示过滤引擎,源码在epan/dfilter目录)
1.5.GTK1/2:图形处理工具,处理用户的输入输出显示,最终存储至Harddisk硬盘中

十三.功能模块

模块名功能源码子目录
GTK/Qt处理所有的用户输入/输出(所有的窗口,对话框等等)/uiGTK: /ui/gtkQt: /ui/qt
Core主要的"粘合代码"(glue code),它把其他的块组合到一起/
(Ethereal Packet Analyzer)协议树(Protocol-Tree) - 保存捕获文件的协议信息数据/epan
(Ethereal Packet Analyzer)解析器(Dissectors) - 多种协议的解析器/epan/dissectors
(Ethereal Packet Analyzer)插件(Plugins) - 一些用插件实现的协议解析器/plugins
(Ethereal Packet Analyzer)显示过滤器(Display-Filters) - 显示过滤器引擎/epan/dfilter
Wiretapwiretap库用于读/写libpcap格式或者其他文件格式的捕获文件/wiretap
Capture抓包引擎相关接口/
Dumpcap抓包引擎. 这是唯一需要提升权限来执行的部/
WinPcap/libpcap(不是Wireshark包的一部分) - 依赖于平台的包捕获库,包含捕获过滤器引擎.这就是我们为什么有不同的显示和捕获 两套过滤语法的原因 - 因为用了两种不同的过滤引擎-

十四.WireShark代码流程图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卢卡平头哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值