wireshark-协议分析【初见】(NBNS协议,SSDP协议、IGMPv2)

article/2025/10/1 2:42:53

写在前面

win7:192.168.2.150(00-0c-29-CF-D3-0F)
kali:192.168.2.120(00:0c:29:e7:1c:e5)

(均使用的vmware虚拟机平台)

该系列并不会太关注wireshark的用法,重点关注协议交换时数据包的情况。

需要注意的是,一开始工作时,选好需要捕获流量的网卡。默认情况下会捕获所有网卡(带混杂模式)的流量,数据包会非常多
在这里插入图片描述
简单介绍一下混杂模式,混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。简单的讲,混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。事实上,计算机收到数据包后,由网络层进行判断,确定是递交上层(传输层),还是丢弃,还是递交下层(数据链路层、MAC子层)转发。

网卡的混杂模式是为网络分析而提供的。

另:内网著名协议会简单介绍,而重点的FTP、HTTP、HTTPS等协议会精确到字节进行详细介绍。部分思路借鉴于《wireshark网络分析就这么简单》–人民邮电出版社

初见

直接对使用网卡进行混杂模式捕获,会有哪些经常出现的协议呢?

SSDP协议

在这里插入图片描述
静置一会,SSDP是非常容易出现的一种协议

SSDP(Simple Service Discovery Protocol)
简单服务发现协议,用于发现局域网里面的设备和服务。
SSDP消息分为设备查询消息、设备通知消息两种,通常情况下,使用更多地是设备查询消息。

一般格式如下

M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 5
ST: ssdp:all

第一行 消息头,固定;
第二行 HOST对应的是广播地址和端口,239.255.255.250是默认SSDP广播ip地址,1900是默认的SSDP端口;
第三行 MAN后面的ssdp:discover为固定
第四行 MX为最长等待时间,
第五行 ST:查询目标,它的值可以是:
upnp:rootdevice 仅搜索网络中的根设备
uuid:device-UUID 查询UUID标识的设备
urn:schemas-upnp-org:device:device-Type:version 查询device-Type字段指定的设备类型,设备类型和版本由UPNP组织定义。
其中,第三种一般可以用来自定义设备,如:ST: urn:schemas-upnp-org:device:Server:1

在设备接收到查询请求并且查询类型(ST字段值)与此设备匹配时,设备必须向多播地址239.255.255.250:1900回应响应消息。一般形如:

HTTP/1.1 200 OK
CACHE-CONTROL: max-age = seconds until advertisement expires
DATE: when reponse was generated
EXT:
LOCATION: URL for UPnP description for root device
SERVER: OS/Version UPNP/1.0 product/version
ST: search target
USN: advertisement UUID

详细数据

在这里插入图片描述
在这里,ST的目标为 InternatGatewayDevice:1

出现在这里的原因,是因为这台主机在内网中,需要upnp端口映射才能连上公网,这是用于监听网关的流量进入内网的侦测包。(upnp端口映射技术正会用到这个协议,后面还会看见的)

NBNS

NBNS是NetBIOS的一种,全名为NetBIOS Name service。简单来说就是将NetBIOS名称映射到IP地址上,需要一个查询和应答。也是一般在内网工作

这里不做详细展开,并不是这节的重点。

详细数据

直接查看详细数据
在这里插入图片描述
这里是在查询名为GOD的域控制器ip,出现这个的原因是因为该win7主机被加入了GOD的域中,所以会查询域控ip

IGMPv2

IGMP是大名鼎鼎的Internet组管理协议,总共有v1、v2、v3三个版本。v2报文格式如下:
在这里插入图片描述
分为以下四种报文类型:

1.成员关系查询(membership query)
IGMPv2定义了两种成员关系查询报文的子类型:常规查询(General Query)报文及特定组查询(Group-Specific Query)报文。

常规查询:IGMP查询器使用该报文向直连网段进行查询,以确认该网段中是否存在组播组成员。由于该报文查询的是所有组播组,因此也被称为普遍组查询报文。常规查询报文的目的IP地址为224.0.0.1(标识所有组播节点)。特定组查询:运行IGMPv2的主机在离开其所加入的组播组时,会主动发送一个IGMPv2离组报文,用于宣告自己离开组播组,当网络中的查询器收到这个离组报文后,需要确认该组播组中是否存在其他成员,此时该查询器便会发送特定组查询报文,该报文只针对特定的组播组进行查询,报文的目的IP地址为其所查询的组播组地址,而且报文载荷中的“组地址”字段也记录了这个组播组地址。

2.成员关系报告(membership report)

当主机加入组播组时,或者当其收到查询器发送的常规查询报文时,主机将发送成员关系报告报文,该报文的目的IP地址是主机所加入的组播组地址,而且报文载荷中的“组地址”字段也记录了该组播组地址。

3.离组报文(leave group)

IGMPv2在IGMPv1的基础上增加了离组报文,当主机离开其所加入的组播组时,便会主动发送离组报文。离组报文的目的IP地址为224.0.0.2(标识所有组播路由器),报文载荷中的“组地址”字段记录了主机所要离开的组播组地址。

4.版本1成员关系报告(version1 membership report)
该报文用于兼容IGMPv1,报文中的类型字段值是0x12。

详细数据

在这里插入图片描述
这里就是一个主机向路由器报告加入组别,类型值为0x16,源IP地址为自己主机的IP地址(192.168.2.144),目的IP地址为组播地址(224.0.0.252)。


http://chatgpt.dhexx.cn/article/THXkQOne.shtml

相关文章

ssdp协议搜索GB28181设备

1、http协议和ssdp协议 ssdp协议近似于http协议,事实上,和http协议相似得地方就是他得协议内容,当然,我们要去除他得端口和d类地址。 为什么我在给其他员工或者面试得时候要他人深入一些,理解一下http协议&#xff0…

二叉树、红黑树

二叉树 遍历概念  所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。  遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。 遍历方案 1&#x…

图解红黑树及Java进行红黑二叉树遍历的方法

红黑树 红黑树是一种数据结构与算法课堂上常常提到但又不会细讲的树,也是技术面试中经常被问到的树,然而无论是书上还是网上的资料,通常都比较刻板难以理解,能不能一种比较直观的方式来理解红黑树呢?本文将以图形的方式…

算法 红黑树

红黑树 红黑树概述红黑树性质 红黑树的插入代码实现 红黑树概述 红黑树(Red Black Tree)是一种自平衡二叉查找树,是在计算机科学的中用到的一种数据结构,典型的用途是实现关联数组,红黑树和AVL树类似,都是…

【数据结构】--二叉树,红黑树

【数据结构】--二叉树,红黑树 🏆概念🍍定义🍋 术语📝可视化网站 ☀️二叉树✨ 二叉搜索树🍍定义🍑查找节点🍋插入节点🍅遍历节点🍕 前序排序🧀 后…

红黑树的详细实现(C++)

红黑树概念(concept) 树型结构主要用于搜索,一直是科学领域的重要演算法,当中探讨了树可能遇到的问题:树的成长可能偏向于一边,也就是不平衡现象。 二叉树是常见且广泛使用的一种树,面临其可能退化成链表的潜藏缺点&…

二叉树——二叉查找树和红黑树

二叉树 二叉树,是一个非常重要的数据结构,在日常的开发中起着很重要的作用,它也衍生出来的各种高效的复杂的数据结构,为我们解决问题提供了高效的解决方案。 二叉树,它是由各个数据节点和左右链接构成的一种类似树的数…

Java——红黑树

概念 红黑树也是一种二叉搜索树,但是和avl树不同,它并不是依靠平衡因子来保证树的平衡的,而是通过颜色 红黑树每个节点中会存储颜色,分为红色和黑色,通过红黑树的限制条件,可以保证从根节点出发到叶子节点…

二叉树--红黑树

红黑树 定义 红黑树,顾名思义,就是树的节点只有红色和黑色两种状态,通过这两种状态的标识和规定颜色的使用,来使树达到相对平衡。为什么说相对平衡?因为在红黑树中,所有的条件限制只能保证,所…

二叉树之红黑树

红黑树 概述 为什么要有红黑树??? 特点 红黑规则 如何在红黑树上添加节点? (1)我们不妨假设加入的节点都是黑色 (2)如果我们加入的节点都是红色 红黑树添加节点后如何保持红…

红黑二叉树

红黑树 红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 节点是红色或黑色。 根节点是黑色。 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有…

红黑树-Java实现

目录 一、定义 二、插入 三、删除 四、全部代码 五、颜色效果 一、定义 红黑树是特殊的平衡二叉树,具有以下特性: 1、根节点的颜色是黑色 2、节点颜色要么是黑色、要么是红色 3、如果一个节点的颜色是红色,则它的子节点必须是黑色&…

红黑二叉树原理分析

1.引言 HashMap的基本结构是数组,链表和红黑树。以数组为基本形态,数组中的元素先以链表形式储存,当链表的长 度超过8时(包含数组上的那个链表头)就会将链表转换为红黑树,以加快修改和查询效率。当然除了H…

理解红黑树及代码实现

1.红黑树定义 红黑树是一颗 红-黑的平衡二叉树,它具有二叉树的所有特性,是一颗自平衡的排序二叉树.(树中任何节点值都大于左子节点的值,而且都小于右子节点的值),其检索效率高,它是一颗空树或它的左右两个子树高度差的绝对值不超过1,并且左右…

红黑二叉树的漫画讲解(轻松理解红黑二叉树原理)

———————————— 二叉查找树(BST)具备什么特性呢? 1.左子树上所有结点的值均小于或等于它的根结点的值。 2.右子树上所有结点的值均大于或等于它的根结点的值。 3.左、右子树也分别为二叉排序树。 下图中这棵树,就是…

Java的二叉树、红黑树、B+树

数组和链表是常用的数据结构,数组虽然查找快(有序数组可以通过二分法查找),但是插入和删除是比较慢的;而链表,插入和删除很快(只需要改变一些引用值),但是查找就很慢&…

二叉树与红黑树

二叉树的形成 二叉树是n(n>0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成 二叉树特点 由二叉树定义以及图示分析得出二叉树有以下特点&#xff1…

红黑树(C++实现)

文章目录 红黑树的概念红黑树的性质红黑树结点的定义红黑树的插入红黑树的验证红黑树的查找红黑树的删除红黑树与AVL树的比较 红黑树的概念 红黑树是一种二叉搜索树,但在每个结点上增加了一个存储位用于表示结点的颜色,这个颜色可以是红色的,…

红黑二叉树详解及理论分析

发表于我的博客网站(prajna.top): http://prajna.top/doc/2/175 什么是红-黑二叉树? 红-黑二叉树首先是一颗二叉树,它具有二叉树的所有性质,是一种平衡二叉树。普通二叉树在生成过程中,容易出现不平衡的现象&#xff…

二叉树到红黑树

二叉树查找树 又叫二叉排序树。二叉查找树或者是一棵空树,或者是一棵具有如下性质的二叉树: 对于任何一个结点X若它的左子树非空,则左子树上所有结点的值均小于等于X的值;若它的右子树非空,则右子树上所有结点的值均大…