SNMP协议的了解与简单的抓包分析

这篇具有很好参考价值的文章主要介绍了SNMP协议的了解与简单的抓包分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本人小白,由于一些学习上和项目上的实际需求,对SNMP协议进行了一些学习研究,主要应用于交通信号机和城市大脑。以下是本人的一些学习经验,如有错误,欢迎大家交流指正。

一、SNMP是什么?

1.SNMP介绍

SNMP是简单网络管理协议,其全称为simple network management Protocol。SNMP是一种简单网络管理协议,属于TCP/IP当中的应用层协议。主要用于网络设备的管理。

  1. 构成部分
    SNMP协议主要由两大部分构成:SNMP管理站和SNMP代理。SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这些信息进行处理,最后反馈给网络管理员;而SNMP代理是运行在各个被管理的网络节点之上,负责统计该节点的各项信息,并且负责与SNMP管理站交互,接收并执行管理站的命令,上传各种本地的网络信息。
  2. 历史版本
    SNMP目前总共有三个版本,分别是V1,V2,V3。
    SNMP v1是协议最初版本,安全性较差
    SNMP v2通常被指是基于community的SNMP V2
    SNMP v3是最新版本的SNMP。该版本最大的贡献为安全性

二、SNMP解读

1.实现结构

在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为管理站,负责网管命令的发出、数据存储、及数据分析。被监管的设备上运行一个SNMP代理(Agent)),代理实现设备与管理站的SNMP通信。如下图
SNMP协议的了解与简单的抓包分析
管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。

2.操作命令

SNMP协议提供了三种用于控制MIB对象的基本操作命令,分别为 Get、Set、Trap:
1.Get:管理站读取代理者处的某一对象的值。
2.Set:管理站设置代理者处的某一对象的值。
3.Trap:代理者主动向管理者报告的重要事件,主要包括设备损坏、意外事件等。

3.SNMP报文

SNMP协议定义了数据包的格式,网络管理员与管理代理之间的数据交换,还控制这管理代理的MIB数据对象。
一条SNMP消息包括三个部分,分别是“版本标识符”,“团体名”,“数据单元PDU”所构成

  • 版本标识符 用于说明使用的SNMP协议版本
  • 团体名 信息安全支持,常用public
  • 协议数据单元PDU 这是SNMP协议当中的数据区,即SNMP报文中数据的载体。

PDU中的协议数据单元:
SNMP当中规定了5种协议数据单元,用于管理进程和进程之间的交换

  • get-request操作: 从代理进程(目标)处获取一个或多个参数值
  • get-next-request操作:从代理处获得下一个或多个使用的参数值
  • set-request操作:设置代理进程中的一个或多个参数。
  • get-response操作 :代理处收到请求后进行的相应操作,返回一个或多个参数值。
  • trap操作:当有错误或故障发生时代理处主动向上一级上报的消息。
    需要注意的是SNMP管理程序端口为162,SNMP代理程序端口为161。
    SNMP协议的了解与简单的抓包分析

4 SNMP报文格式

如下图所示,SNMP一共由三个部分组成,分别是公共SNMP首部,get/set首部,变量绑定
SNMP协议的了解与简单的抓包分析

  1. 公共SNMP首部
    共包括三个字段:
    1.版本:写入值为当前版本号减一,如SNMP v1协议则填入0.
    2.共同体: 共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。
    3.pdu类型。根据操作类型,填入0-4中的一个数字,对应关系如下表所示。
PDU类型 操作类型
0 get-request
1 get-next-request
2 set-request
3 get-response
4 trap
  1. get/set首部
    1.请求标识符:
    这是由管理进程设置的一个整数值。主要用于代理进程识别消息顺序,进行response操作
    2.差错状态:
    由代理进程进行响应时填入0-5中的一个数字。具体内容如下表所示
    SNMP协议的了解与简单的抓包分析

3.差错索引:当出现noSuchName、badValue或readOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

差错索引 名字 说明
0 coldstart 代理进行了初始化
1 warmstart 代理进行了重新初始化
2 linkDown 一个接口从工作状态变为故障状态
3 linkUp 一个接口从故障状态变为工作状态
4 authenticationFailure 从SNMP管理进程接收到具有一个无效共同体的报文
5 egpNeighborLoss 一个EGP相邻路由器变为故障状态
6 enterpriseSpecific 代理自定义的事件,需要用后面的“特定代码”来指明

4.特定代码
知名代理自定义的事件(若trap类型为6),否则为0
5.时间戳
指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10ms

  1. 变量绑定

指明一个或多个变量的名和对应的值。
在get或get-next报文中,变量的值应忽略。
PDU (协议数据单元)是SNMP消息中的数据区, 即Snmp通信时报文数据的载体。

三、SNMP抓包分析

1.SNMP体验

SNMP协议的实现工具和方法有很多,本人使用snmptuil工具和一台Windows10平台的电脑进行模拟。
snmputil是一个汉化版的snmp集成工具
snmputil工具的命令规则是:snmputil [get|getnext|walk] agent community oid [oid …]
[get|getnext|walk]:为消息类型 包括get getnext walk
agent:指Snmp代理即你想进行操作的网络设备的ip或名称
community:分区域,即密码,默认是public
oid:想要操作的MIB数据对象号

SNMP获取系统版本:
OID: .1.3.6.1.2.1.1.1.0
实现命令:snmputil get loaclhost public .1.3.6.1.2.1.1.1.0
结果:
SNMP协议的了解与简单的抓包分析
获取计算机连续开机多长时间:
OID:.1.3.6.1.2.1.1.3.0
实现命令:snmputil get loaclhost public .1.3.6.1.2.1.1.3.0
SNMP协议的了解与简单的抓包分析

2.SNMP抓包分析

抓包软件使用wireshark对SNMP消息进行抓包
以下为SNMP获取系统版本:snmputil get loaclhost public .1.3.6.1.2.1.1.1.0所捕捉到的消息
SNMP协议的了解与简单的抓包分析
18 00 00 即代表IPv6 Src: localhost, Dst: localhost
00 30 消息长度总共为48
11 Next Header: UDP (17)
80 Hop Limit: 128
00 00 00 00 00 00 00 00 00 00 00 01 Source Address: ::1(localhost)
00 00 00 00 00 00 00 00 00 00 00 01 Destination Address: ::1(localhost)
eb cd Source Port(发送端口): 60365
00 a1 Destination Port:(目标端口) 161
00 30 消息长度 48
de e4 Checksum: 0xdee4 [unverified]

以下为SNMP报文内容
30 26 02 01 00 04 06 70 75 62 6c 69 63
a0 19 02 01 01 02 01 00 02 01 00 30 0e 30 0C
06 08 2b 06 01 02 01 01 01 00 05 00

30 表示SNMP协议报文
26 消息长度为38个字节
02 01 00 协议版本v1 (前两个字节02表示INTEGER类型01是指1个字节长度)
04 参数类型(OCTSTR)
06 群体(community)名长度
70 75 62 6c 69 63 群体名public的assic码值
a0 PUD类型get-request
19 pdu的长度为25个OctStr(后面的内容31字节)
02 01 01 request ID
02 01 00 表示error-state为0
02 01 00 表示error-index为0
30 0e 表示后面变量绑定是SEQUENCE类型14个字节长度
30 0C 表示变量名1
06 表示该字段是OID类型
08 OID长度8字节
2b 06 01 02 01 01 01 00 1.3.6.1.2.1.1.1.0
05 00 表示NULL

get-response回复消息分析
SNMP协议的了解与简单的抓包分析
18 00 00 即代表IPv6
60 03 d1 55 flow labell 03 d1 55
00 b8 消息长度184字节
11 Next Header: UDP (17)
80 Hop Limit: 128
00 00 00 00 00 00 00 00 00 00 00 01 Source Address: ::1(localhost)
00 00 00 00 00 00 00 00 00 00 00 01 Destination Address: ::1(localhost)
00 a1 Source Port(发送端口): 161
eb cd Destination Port:(目标端口) :60365
00 b8 消息长度184字节
le 63 Checksum: 0x1e63 [unverified]

以下为SNMP报文:
30 表示SNMP协议报文
81 消息长度为129个字节
02 01 00 协议版本v1
04 参数类型(OCTSTR)
06 群体(community)名长度
70 75 62 6c 69 63 群体名public的assic码值
a2 PUD类型get-response
81 pdu的长度为129个OctStr(后面的内容31字节)
9f
02 01 01 request id
02 01 00 表示error-state为0
02 01 00 表示error-index为0
30 81 表示后面变量绑定是SEQUENCE类型129个字节长度
93 30 81 90 表示变量名1
06 表示该字段是OID类型
08 OID长度8字节
2b 06 01 02 01 01 01 00 1.3.6.1.2.1.1.1.0
后续则表示
.Hardware: Intel64 Family 6 Mode
1158 Stepping 10 AT/AT COMPATIBLE - Software: Windows V ersion 6.3 (Build 19044Multipro cessor Free )

总结

本文对SNMP的简单构造、消息类型、支持操作进行了简单介绍,然后使用snmputil进行了简单的snmp信息实例,并使用wireshark对消息进行了抓包,最后对SNMP消息进行分析,对SNMP消息进行了拆解,说明了各个部分的功能及作用。文章来源地址https://www.toymoban.com/news/detail-493540.html

到了这里,关于SNMP协议的了解与简单的抓包分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SNMP(简单网络管理协议)详解

    SNMP(简单网络管理协议) : 专门用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理

    2024年02月02日
    浏览(41)
  • SNMP 计算机网络管理 实验3(三) SNMP协议工作原理验证与分析

    一、实验目的     学习捕获SNMP报文,通过报文分析理解SNMP协议的工作过程。 二、实验内容与设计思想 实验内容:编写代码,测试   1)使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat -an查看代理站TCP/UDP连接表,分析并验证SNMP协议的工作过程;   2)自行挑选MIB-2功

    2024年02月11日
    浏览(47)
  • SNMP 计算机网络管理 实验3(二)SNMP协议工作原理验证与分析

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月11日
    浏览(40)
  • SNMP 计算机网络管理 实验1(二) 练习与使用Wireshark抓取SNMP数据包抓包之 任务三分析并验证TCP三次握手建立连接时三次握手工作过程

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月12日
    浏览(58)
  • 计算机网络管理 实验4(二) SNMP报文管理信息结构SMI及其规定的ASN.1分析并使用Wireshark抓包分析sysContact的相关信息

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月09日
    浏览(53)
  • linux 的抓包操作(tcpdump)

    使用 netstat 命令用来打印网络连接状况、系统所开放端口、路由表等信息。最常用的关于netstat 的命令就是: netstat -lnp //打印当前系统启动哪些端口 以及 netstat -an  //打印网络连接状况 如果你所管理的服务器是一台提供 web 服务(80 端口)的服务器,那么你就可以使用 netst

    2024年02月16日
    浏览(51)
  • 十几个免费好用的抓包工具

    Hping是最受欢迎和免费的抓包工具之一。它允许你修改和发送自定义的ICMP,UDP,TCP和原始IP数据包。此工具由网络管理员用于防火墙和网络的安全审计和测试。 HPing可用于各种平台,包括Windows,MacOs X,Linux,FreeBSD,NetBSD,OpenBSD和Solaris。 下载Hping: http://www.hping.org/   本人可提

    2024年02月02日
    浏览(32)
  • 快速掌握任意 Android 应用的抓包

    抓包是流量分析的基础,也是安全研究重要的一环。抓包软件有很多种,如 Burpsuite、mitmproxy 以及 Fiddle,抓包方式常见的有设置系统代理、AP 热点抓包、透明代理等。不同方式有不同优缺点,也有不同的应用场景。相信很多安全研究者一定会遇到各种无法抓取流量的问题,本

    2024年02月03日
    浏览(45)
  • 华为、华三、锐捷、飞塔、山石的抓包命令

    一、华为的抓包命令 1、基本概念 华为的抓包行为称之为镜像端口,也就是说将需要抓取的接口上(称为镜像端口)的流量复制一份到另一个接口上(工程师进行流量观察的端口,称为观察端口),如下图所示: 2、华为镜像端口分类 1)、本地镜像端口(也就是观察端口和镜

    2024年02月15日
    浏览(38)
  • 某购票平台APP的抓包问题(解决过程)

    某购票平台App的抓包问题(解决实现) 软件地址: aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2MjI2MjgvaGlzdG9yeV92MjAyMzAxMTE=(BASE64) App版本: 5.2.1 手机: Google Son (Pixel 4)  系统: Android 11 本文利用工具: HttpCanary Frida Objection JADX 一 、先判断问题 利用Charles抓包不出包,为了方便我用的是httpCanary,指定该

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包