Wireshark抓包体验

1、嗅探器原理

嗅探技术是网络安全攻防技术中很重要的一种,通过它可以获取网络中的大量信息。与主动扫描相比,嗅探更难以被察觉,能够对网络中的活动进行实时监控。

网络嗅探器实际上就是网络中的窃听器,其用途就是捕获分析网络中的数据包,帮助网络管理员发现入侵、分析网络问题等等,它是能够进行嗅探的软件或硬件设备。通过嗅探得到二进制的数据包后,对这些数据包进行解析和理解,获得协议字段与传输的数据的过程就是网络协议分析。所以说,网络嗅探与网络协议分析联系紧密。

对于攻击者来说,通过网络嗅探,进行协议分析,能够窃取内部机密,搜集信息。而对于管理员来说,网络嗅探可以实现网络流量情况的监听,定位网络故障,并且能够为网络入侵检测提供底层的数据来源。

网络嗅探的关键在于以太网的通信机制和网卡的工作模式。迄今为止,以太网仍然是最普遍的组网方法之一,而以太网的共享特性决定了嗅探能够成功。由于以太网是基于广播方式传送数据,因此网络中所有的数据信号都会被传送到每一个主机节点,这样每一台机器实际上都能接受到数据帧。一个网络接口使用网卡的接收模式有以下几种:

  • 广播模式(Broadcast Mode):该模式下的网卡能够接收网络中所有类型为广播报文的数据帧。
  • 组播模式(Multicast Mode):该模式下的网卡能够接受特定的组播数据。
  • 直接模式(Unicast Mode):该模式下的网卡在工作时只接收目的地址匹配本机MAC地址的数据帧。
  • 混杂模式(Promiscuous Mode):在这种模式下,网卡对数据帧中的目的MAC地址不加任何检查,全部接收。

因此只要将网卡的工作模式设置为“混杂模式”,网卡将会接受所有传递给他的数据包,从而实现嗅探。嗅探得到结果后,再进行网络协议分析,根据网络协议分析的粒度可以分为三种:针对原始数据包进行分析,层次最低、最细粒度;对网络流(会话)进行分析,通过5元组进行流(会话);以及网络流高层统计。针对网络报文分析的工具,常用的有集成工具WireShark,网络流重组工具Nstreams、Snort,进行高层统计和摘要分析的Netflow、RRDTools等等。

2、Wireshark简介

作为一款高效免费的抓包工具,wireshark可以截取各种网络封包,显示网络封包的详细信息,其最大的优势就是免费、开源以及多平台支持,如今其已是全球最广泛的网络数据包分析软件之一。

Wireshark不可以做什么?

Wireshark只能查看封包,而不能修改封包的内容,或者发送封包。且对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。

3、Wireshark使用

Wireshark安装

前往Wireshark官网进行下载,下载完成后一路next安装即可。

(1)打开wireshark,主界面如下图所示。

Wireshark抓包体验_第1张图片

(2)利用wireshark开始抓包。选择菜单栏上捕获——>选项,只勾选WLAN的混杂模式,点击开始(也可以直接双击上图的WLAN开始)。

Wireshark抓包体验_第2张图片

(3)查看抓包情况(此时wireshark正不停地捕获WLAN下传输的数据包)

Wireshark抓包体验_第3张图片

(4)数据包详细信息

​ 各行信息分别为

  • Frame:物理层的数据帧概况
  • Ethernet II: 数据链路层以太网帧头部信息
  • Internet Protocol Version 4: 网络层IP包头部信息
  • Transmission Control Protocol:传输层的数据段头部信息
  • Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

wireshark与对应的OSI七层模型

Wireshark抓包体验_第4张图片

wireshark捕获到的TCP包中的每个字段内容

Wireshark抓包体验_第5张图片

(5)wireshark过滤器

直接使用WireShark捕获包将会得到大量的冗余信息,在几千甚至几万条记录中很难找到自己需要的部分,因而,使用过滤器十分重要。使用WireShark的过滤器有两种方法:

第一种是在Capture Filter中按照libpcap过滤器语言设置好过滤条件。此外,我们也可以捕获后过滤。先捕获所有的数据包,然后通过设定显示过滤器,只让Wireshark显示我们想要观察的那些类型的数据包。我们使用WireShark过滤器时,输入规则若是正确的,则过滤器输入框的背景为绿色,否则,背景为红色。

wireshark过滤器表达式的规则:

  • 协议过滤

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

  • IP过滤

ip.src == 192.168.1.102,显示源地址为192.168.1.102的数据包

ip.dst == 192.168.1.102,显示目标地址为192.168.1.102的数据包

ip.addr == 192.168.1.102,显示源IP地址或目标IP地址为192.168.1.102的数据包

  • 端口过滤

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

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

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

  • Http模式过滤

http.request.method == GET, 只显示HTTP协议下GET请求的数据包

http.request.method == POST,只显示HTTP协议下POST请求的数据包

  • 逻辑运算符

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

4、Wireshark分析TCP三次握手

TCP三次握手

Wireshark抓包体验_第6张图片

抓取TCP包

启动wireshark,打开浏览器输入www.baidu.com;

终止抓包,在过滤栏输入http以过滤隐藏其他无关数据包;

右键选中,点击追踪流——>TCP流,

Wireshark抓包体验_第7张图片

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

第一次握手,客户端向服务器发送了一个TCP连接请求,标志位SYN = 1,客户端序号Seq(Sequence number)为x = 0,表示客户端请求建立连接

Wireshark抓包体验_第8张图片

第二次握手,服务器向客户端发回一个确认包,标志位SYN = 1,ACK = 1。服务器序号seq(y)=0,将确认序号ack(Acknowledgement Number)设置为客户端序号seq(x)加1,即0+1=1。

Wireshark抓包体验_第9张图片

第三次握手,客户端收到服务器发来的包后检查确认序号是否正确,即第一次发送的序号seq是否加1(X+1= 0+1=1)以及标志位ACK是否为1。若正确,客户端会再向服务器端发送一个数据包,标志位ACK=1,确认序号=Y+1=0+1=1,并且把服务器发来的序号seq加1发送给对方,发送序号seq为X+1= 0+1=1。服务器收到后确认序号值与ACK=1。至此,一次TCP连接建立,可以传送数据了。

Wireshark抓包体验_第10张图片

5、网络嗅探的防范

网络嗅探对于安全防护一般的网络来说,操作简单但同时威胁巨大,很多攻击者使用嗅探器进行网络入侵的渗透。故防范网络嗅探显得尤为重要,可以采用以下防御措施:

  • 安全的拓扑结构。嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。但是,除非是一个ISP(分层服务提供商),或者资源相对不受限制,否则这样的解决方案需要很大的代价。
  • 会话加密。传统的网络服务程序,HTTP、FTP、SMTP和Telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,嗅探器非常容易就可以截获这些信息。使用SSH(secure shell)等协议可以使得信息安全地传输。通过使用SSH,可以把所有传输的数据进行加密,这样"中间服务器"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。

6、参考资料

[1] Wireshark抓包使用指南

[2] Wireshark使用入门

[3] Wireshark基本介绍和学习TCP三次握手

你可能感兴趣的:(工具,wireshark)