一、Wireshark抓包原理

(一)网络抓包原理

网络中不论传输什么,最终通过物理介质发送的都是二进制,类似于0101的Bit流。纯文本(字符串)中文通常采用UTF-8编码,英文用ASCII编码;非纯文本音频、视频、图片、压缩包等按不同编码封装好,转换成二进制传输。在IP网络中,通过Wireshark抓包,获取的原始数据都是二进制。

哪种网络情况下能够抓取到包呢?下面结合网络原理讲解。网络抓包主要存在三种情况:本机环境、集线器环境和交换机环境。

1.本机环境

本机环境直接抓包本机网卡进出的流量。Wireshark会绑定我们的网卡,不需要借助第三方设备(交换机、集线路由器)就能抓取我们的网络通信流量,这是最基本的抓包方式。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(1)

2.集线器环境

集线器环境可以做流量防洪,同一冲突域。集线器的英文是“Hub”,“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。

假设三台电脑通信,PC1处安装Wireshark,当PC2、PC3发送数据包到集线器网络里面(冲突域或广播域),由于集线器是物理层产品,不能识别MAC地址、IP地址,它会将接收包往其他所有接口泛洪,此时Wireshark就能抓到从同一个集线器其他电脑发过来的数据包,即局域网中的数据包。这是一种典型的老网络做法,现在基本淘汰。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(2)

3.交换机环境

交换机环境是更加常见的方式,包括端口镜像、ARP欺骗、MAC泛洪。

(1)端口镜像

交换机是一种数据链路层甚至网络层的产品,它的转包接包严格按照交换机上的MAC地址表通信。所以正常情况下,PC2和PC3通信流量是很难流到PC1的网卡上。当PC2和PC3通信时,PC1是无法通过Wireshark抓到包。但是我们可以在交换机端口做SAPN端口镜像操作,它会将其他两个口的流量复制一份到PC1处,PC1的网卡和Wireshark设置为混插模式,此时就能进行抓包。该模式常用于很多付费的流量分析软件。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(3)

(2)ARP劫持

假设我们没有权限在交换机上做端口镜像技术,因为有MAC地址表,又想获取整个局域网中的流量,窃取到PC2、PC3上的流量。这可以通过著名的ARP攻击软件Cain&Abel实现,其流程是:

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(4)

(3)MAC泛洪

通过工具泛洪带来大量垃圾包,产生大量MAC地址,此时交换机MAC地址表会变为右边这张表(爆表),MAC2和MAC3被挤出了MAC地址表。一旦这种MAC地址被挤出MAC地址表,按照交换机原理,如果收到的数据包是未知,它会对外泛洪,此时PC2和PC3对外流量泛洪。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(5)

(二)底层框架原理

那么,抓包的底层架构是怎样的?下面开始讲解Wireshark的底层原理。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(6)

Wireshark包括5层架构:

PS:了解基本的原理知识挺重要的,尤其为后续深入的研究。

二、界面功能介绍

Wireshark运行后,其界面如下图所示,包括标题栏、菜单栏、工具栏、数据包过滤栏、数据包列表区、数据包详细区、数据包字节区、数据包统计区。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(7)

从上下按序编号如下图所示。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(8)

下面简单介绍一些界面常识。

1.点击“捕获”->“选项”如下图所示,可以设置输入接口和过滤器。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(9)

2.数据包详细区用得最多,它是解析数据包核心区域。数据包包含时间流、谁发给谁(原始IP地址和目的IP地址)、协议、长度、内容等,当双击它能看到对应的详细信息。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(10)

数据包详细区、数据包字节区包含比特字节信息。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(11)

3.统计栏的内容也值得大家去深入学习,后面会分享流量图信息。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(12)

4.显示界面中可以设置字体大小,如下图所示。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(13)

5.列设置包括默认列表、增加列、修改列、隐藏列、删除列,设置默认即可,下图是选中某行右键“应用为列”即可增加列。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(14)

增加后如下图所示:

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(15)

选中该列名称,右键“删除列”即可。点击“编辑列”可以对名称进行修改。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(16)

6.时间设置涉及时间格式和参考时间。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(17)

修改之后如下图所示,不在显示时间间隔。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(18)

7.名字解析主要用于判断厂商信息,名词解析库,基本知识如下图所示。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(19)

设备相关信息如下图所示:

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(20)

8.开启传输域名解析。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(21)

开启之后可以看到解析的域名(domain)及对应的DNS。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(22)

9.查看解析地址。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(23)

显示结果如下:

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(24)

10.数据包操作包括数据包标记、注释数据包、合并数据包、打印数据包、导出数据包,通过不同的协议设置不同的配色方案。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(25)

如下图所示修改为红色。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(26)

11.文件->打印。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(27)

接下来将继续分享Wireshark的实际案例知识,首先讲解数据流追踪、专家信息获取和统计摘要获取的知识。

三、数据流追踪和专家统计说明

1.数据流追踪

数据流追踪主要是将TCP、UDP、SSL数据流进行重组并完整呈现出来,其点击路径为:Analyze -> Follow -> TCP stream 分析。跟踪TCP流实现如下图所示:

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(28)

我们在访问网页的时候,除了HTTP协议,大部分的流量应该是通过TCP协议生成数据包的,如下图所示。红色部分表示浏览器访问的网址信息(Request),蓝色部分表示对方给我们的反馈信息(Response)。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(29)

2.专家信息说明

其功能是对数据包中特定状态进行警告说明,包括错误(errors)、警告(warnings)、注意(notes)、对话(chats)。正常通信是不会丢包的,但实际情况可能有延迟,可以通过专家信息分析和查看网站的稳定性。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(30)

显示结果如下图所示,并被标注为各种颜色。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(31)

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(32)

3.统计摘要说明

其功能主要是对抓取的数据包进行全局统计,基本点击路径为:Statistics -> Summary 统计汇总信息。显示结果如下图所示,后续可能会结合案例详细讲解。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(33)

四.Wireshark和NetworkMiner劫持流量及图片

NetworkMiner:一款开源的网络取证和协议分析工具,能够通过嗅探器检测操作系统、主机名以及开放的端口。同时也可以通过分析pcap文件来获取到数据包的详细信息。 除了能够进行基本的数据包抓取分析,NetworkMiner还支持以下功能:

总之,这个源码项目还是比较复杂的,如果想深入研究数据包结构分析和Pcap,NetworkMiner也是个不错的选择。

下面结合Wireshark和NetworkMiner工具讲解劫持流量案例,获取登录HTTP网站的用户名和密码,并且作者修改了头像图片,通过NetworkMiner软件获取了该上传资源。

第一步:启动Wireshark软件,并开始监听流量数据包。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(34)

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(35)

第二步:打开浏览器并输入目标网址。(后续会尝试分析HTTPS网站或手机APP检测)

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(36)

第三步:输入用户名和密码登录。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(37)

登录之后如下图所示,作者这里尝试点击链接提交我的一张本地头像。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(38)

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(39)

上传之后如下图所示,接下来我们开始尝试分析抓取的流量数据包。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(40)

第四步:获取网址对应的IP地址,这里使用IP站长之家实现。IP地址为:47.110.166.107 。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(41)

第五步:点击暂停并通过过滤器获取与该IP地址相关的HTTP协议数据包。

http and ip.addr==47.110.166.107

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(42)

第六步:选中POST登录提交表单的链接,可以查看对应的用户名和密码如下图所示,双击该行可以查看详情。注意,该网站是明文传输用户名和密码,如果密码加密,可以采用在线MD5解密。还是建议该网站对密码进行加密或设置HTTPS传输。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(43)

第七步:右键链接,点击“追踪流”->“TCP流”。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(44)

显示的详情内容如下图所示,其中红色为Request,蓝色为服务器响应Response,我们也可以尝试将其导出保存至本地。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(45)

第八步:如果过滤器为“ ip.addr==47.110.166.107”,则还除了获取HTTP协议数据包,还能获取其他协议,包括TCP,大多数流量包均通过TCP协议三次握手传输。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(46)

这里,读者尝试寻找POST提交图片表单,找到其TCP流的原图片格式进行分析。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(47)

第九步:打开工具NetworkMiner,尝试通过它分析数据包。(注意,前面Wireshark抓取的包将存储为本地pcap文件)。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(48)

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(49)

第十步:该软件打开我们本地的0921.pcap文件,显示如下图所示。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(50)

第十一步:点击Credentials查看我们Wireshark劫持的所有流量登录信息,可以看到我们目标网站的用户名Yxiuzhang和密码。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(51)

第十二步:点击Images可以查看我们上传的图片为“eastmount.jpg”,上传服务器之后头像命名为“17577…jpg”,成果抓取了图像资源。

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(52)

五、总结

总之,Wireshark是一个非常强大的工具,希望读者能学会使用它,也期待在下方评论中看到你的观点,在学习技术的路途中希望你也能与我同行。

原文链接:https://blog.csdn.net/Eastmount/article/details/101101829

wireshark抓包新手使用教程(Wireshark抓包原理ARP劫持MAC泛洪)(53)

,