欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Wireshark的基本学习(一)

程序员文章站 2022-07-08 20:03:45
...

前言:

今天我们开始学习一个网络分析的神器,大名鼎鼎的WireShark

 

 


介绍:

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……

Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出流通的封包资讯。 Wireshark本身也不会送出封包至网络上。

WireShark的原理其实是:

  1. 捕获二进制流量
  2. 转换WireShark组装数据包
  3. 分析捕获的数据包,识别协议等信息

官网欢迎你

我这里就全程使用虚拟机Kali中自带的WireShark啦

 

 

 


Wireshark包过滤:

简单界面介绍:

我拿WS(Wireshark)监听自己的eth0网卡,然后访问了一些网站,然后将数据保存了,接下来我们打开这个pcapng格式的数据。

Wireshark的基本学习(一)

这界面真高大上~

上面的应用显示过滤器(ctrl+/),即是我们筛选数据包的主要工具,例如我们输入“http”作为一个筛选,点击应用,就可以看到:

Wireshark的基本学习(一)

上面是流量,中间是关于这条流量的英文信息,下方是关于这条流量的16进制码

伯克利过滤介绍:

WS存在一个包过滤规则,就是伯克利过滤规则。

BPF(Berkeley Packet Filter)采用与自然语言相近的语法,利用语法构造字符串确定保留具体符合规则的数据包而忽略其他数据包

一个伯克利过滤规则存在这样三部分:

type   dir   proto

  • type限定符:表示对象,规定了id名或id序号指的是哪种类型的数据,例如IP地址、子网或者端口。host、net、prot、protrange……
  • dir限定符:表示数据包传输方向,即流量是从id流进还是流出的(或两种兼有)。可能的dir有src、dst、ser or dst、src and dst、addr1、addr2、addr3和addr4
  • proto限定符:规定了所匹配的协议,即与数据包匹配的协议类型。可能的proto有:ether、fddi、tr、wlan、ip、ip6、arp、rarp、decnet、tcp和udp

src:source(来源)

dst:destination(目的地)

示例:

#源地址为192.168.1.100:
src host 192.168.1.100
#目标端口为80
dst port 80 

例如在筛选器中输入以下筛选条件:

ip.addr==IP地址

即可找到涉及此ip的数据包

Wireshark的基本学习(一)

 

举一反三,若要筛选出源地址,可以如下:

ip.src==192.168.1.10

主机之间的通信,最基本的本质就是应用程序之间的通信,不同应用程序占用不同端口进行通讯,我们可以筛出端口的数据包

例如筛选出192.168.1.10为源地址的80端口发出数据的流量包:

tcp.port==80 and  ip.src==192.168.1.10

and符号表示连接两者的表达式都需要成立

补充:CIDR(即IP地址加上子网掩码)表示某个网络范围内的所有IP地址或者是主机,这个概念可以和上面结合,例如我要找源是 192.168.1.x 的主机的数据包

ip.src == 192.168.1.0/24

WS的包过滤器主要分为两类,一个是捕获过滤器(抓取之前的过滤器),一个是筛选过滤器(抓取后显示的过滤器)

刚才上面的操作就是在对筛选过滤器进行操作,如果要对捕获过滤器进行操作,可以在上面Capture options(捕获选项)进行设置

捕获过滤器:

捕获过滤器,规定在WS监听的过程中抓取哪些包,不抓取哪些包,它遵循BPF(伯克利)语法规则

例如,我们要求只捕获目标端口80的TCP数据包:

Wireshark的基本学习(一)

捕获源主机IP地址为192.168.1.10的数据包:

src host 192.168.1.10

但是,对于host不支持CIDR的写法,也不支持直接写主机名的写法

筛选过滤器:

输入框创建:

主页上面的框框即是筛选过滤器

点击后面的表达式可以找到一些筛选规则

Wireshark的基本学习(一)

数据包细节面板创建:

Wireshark的基本学习(一)

选中之后我们的筛选输入框里则自动生成了筛选语法,再点一个数据包细节,选择【..与选中】,即可并列条件,这个你一操作就明白了!

表达式规则:

主题+运算符+值

逻辑表达式:

  • 与(and):&&
  • 或(or):||
  • 非(not):!

 

 

 


捕获数据包的保存

在WireShark中,点击捕获设置即可进入输入输出的设置,

Wireshark的基本学习(一)

我们可以选择我们要捕获的网卡,还可以选择保存的格式,,保存文件的位置等……

 

下面是两个实际操作中会遇到的问题,

  • 数据流量特别大,导致文件太大,导致Wireshark无法正常打开保存的文件

解决方案:设置自动创建新文件,每隔10秒创建一个文件

在刚才的捕获设置面板中即可设置:

Wireshark的基本学习(一)

  • 使用Wireshark进行网络监控,无论硬盘空间多大都可能会消耗殆尽

解决方案:环形缓冲器——每天保存固定数量的数据包,第二天的时候直接删除前面的数据包

形成一个循环。还是上面的图设置即可。

 

 

另外还有显示选项的设置,非常好理解:

 

Wireshark的基本学习(一)

 


杂项设置:

  • 在菜单栏的帮助的关于Wireshark中,我们可以了解一些杂项,例如作者、快捷键、配置文件文件夹等信息。
  • 右下角的配置可以更改配置模式

 


 

VMware网络设置

VMware的网络设置:

网卡:VMnet0——虚拟桥接网络

在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一*立的主机(主机和虚拟机处于对等地位),它可以访问网内任何一台机器。在桥接模式下,我们往往需要为虚拟主机配置IP地址、子网掩码等(注意虚拟主机的ip地址要和主机ip地址在同一网段)

 

网卡:VMnet3——仅主机模式

主机模式下,真实环境和虚拟环境是隔离开的;在这种模式下,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开。(虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。)

  这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验。和nat唯一的不同的是,此种方式下,没有地址转换服务,因此,默认情况下,虚拟机只能到主机访问。

 

网卡:VMnet8——net模式:

在NAT模式下,虚拟系统需要借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式虚拟系统可把物理主机作为路由器访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。

  这种方式也可以实现Host OS与Guest OS的双向访问。但网络内其他机器不能访问Guest OS,Guest OS可通过Host OS用NAT协议访问网络内其他机器。NAT方式的IP地址配置方法是由VMware的虚拟DHCP服务器中分配一个IP ,在这个IP地址中已经设置好路由,就是指向192.168.138.1的。如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。

  这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过 做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运 行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8。

  你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样虚拟机就可以使用dhcp服务。更为重要的是,vmware自带了nat服务,提供了从vmnet8到外网的地址转 换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的。很显然,如果你只有一个外网地址,此种方式很合适。

转载——cnblogs.com/summer-fate/p/7607176.html

 

添加网卡

我们来给虚拟机添加一张网卡:

Wireshark的基本学习(一)Wireshark的基本学习(一)转存失败重新上传取消

我添加了一个NAT模式的网卡

但是我在kali中用ifconfig查看,这张网卡(eth1)并没有分配到IP地址:

原来我们要修改一些对应的配合文件/etc/network/interfaces

vim /etc/network/interface

然后空几行加入这样的内容:

Wireshark的基本学习(一)Wireshark的基本学习(一)转存失败重新上传取消

然后用命令:

service networking restart
重启启动网络

然后就可以看见,我们的eth1也分配到了ip地址

网络设备简答介绍:

网线:

两台设备连接只需要使用网线连接就可以完成通信,在OSI模型中的物理层完成通信

交换机:

基于物理地址(MAC)通信:MAC由6个字节组成,前三个字节表示厂商唯一表示(由IEEE颁布),后三个字节是厂商自行赋予的扩展标识。交换机通过不同的端口连接计算机,组成局域网。

工作原理:

学习MAC地址表:地址表中每一个记录对应着交换机端口对应的计算机。数据帧的源地址具有MAC地址则更新,没有则新建。

转发数据:当交换机接收数据帧后,查看MAC地址表中是否具有对应的数据,如果有则转发数据。

更新MAC地址表:每隔一段时间记录超时,消失

路由器:

基于IP地址的通信。

通过路由转发,实现不同网络之间的通信。

工作原理:

基于路由表:动态路由表和静态路由表

1、静态路由是指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。当然,网管员也可以通过对路由器进行设置使之成为共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。
2、动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际实际情况的变化适时地进行调整。动态路由机制的运作依赖路由器的两个基本功能:对路由表的维护;路由器之间适时的路由信息交换。


 

 

博客:is-hash.com

商业转载 请联系作者获得授权,非商业转载 请标明出处,谢谢

相关标签: wireshark