SNMP报文抓取及分析
snmp数据包分析

snmp数据包分析今天看了⼀下snmp数据包的报⽂格式,⽤wireshark抓了两个数据包来分析。
先说说snmp get-request的书报包格式吧,get-next-request,get-response,set-request这⼏个格式都是差不多的,只是pdu类型不⼀样。
还有trap格式不⼤⼀样。
好,先说说get-request报⽂格式(参考tcp/ip详解卷⼀)。
版本 + 团体名 + pdu类型 + 请求标识 + 差错状态 + 差错索引 + 差错索引 + 名称 + 值 + 名称 + 值。
trap的也说⼀下版本 + 团体名 + pdu类型 + 企业 + 代理地址 + trap类型 + 特定代码 + 时间戳 + 名称 + 值。
okay,下⾯说⼀下我的环境主机windows xp虚拟机Vmware ubuntu,抓包⼯具wireshark,使⽤的netsnmp,主机ip210.38.235.184,虚拟机ip210.38.235.186这⾥虚拟机向主机发⼀条命令snmpget -v 1 -c public 210.38.235.184 sysDescr.0(oid为1.3.6.1.2.1.1.1.0)先来看看snmp v1版的数据包吧c8 1f 66 05 fb a6 00 0c 29 90 f7 6d 08 00 45 00 00 47 21 ba 40 00 40 11 9d 2b d2 26 eb ba d2 26 eb b8 96 f9 00 a1 00 33 8a 2d 30 29 02 01 00 04 06 70 75 62 6c 69 63 a0 1c 02 04 26 ca 2f cb 02 01 00 02 01 00 30 0e 30 0c 06 08 2b 06 01 02 01 01 01 00 05 00c8 1f 66 05 fb a6//⽬的⽹卡地址00 0c 29 90 f7 6d//源⽹卡地址08 00//协议类型,这⾥是ip协议45 00 00 47 21 ba 40 00 40 11 9d 2b d2 26 eb ba d2 26 eb b8//ip头部20个字节96 f9 00 a1 00 33 8a 2d//udp8个字节30 29//30表⽰snmp消息⽤的是asn.1 sequence 29表⽰消息长度(29后⾯的字节数)41个字节02 01 00 //这⾥采⽤的是BER(Basic encode rule)编码(第⼀个字节表⽰数据类型,第⼆个字节表⽰数据长度,后⾯为数据)02表⽰INTEGER类型,01表⽰长度为1,00表⽰版本为v104 06 70 75 62 6c 69 63//这⾥是团体名public阿斯科马,这⾥也采⽤的是BER编码a0 1c//pdu类型a0表⽰get-request 1c表⽰pdu数据长度28个字节02 04 26 ca 2f cb//request-id管理进程设置的⼀个整数02 01 00//差错状态,00表⽰没有出现差错02 01 00//差错状态索引,0030 0e//表⽰值名称采⽤的是asn.1,数据长度为14个字节30 0c//表⽰第⼀个值名称采⽤的是asn.1,数据长度为12个字节06 08 2b 06 01 02 01 01 01 00//这⾥采⽤的是BER,但是snmp,oid的编码⽅式有点怪,后⾯我会有说明05 00//snmp NULL 所以数据长度为0okay上⾯已经分析完snmp v1的数据包下⾯看看snmp v2数据包c8 1f 66 05 fb a6 00 0c 29 90 f7 6d 08 00 45 00 00 47 21 b9 40 00 40 11 9d 2c d2 26 eb ba d2 26 eb b8 a8 8d 00 a1 00 33 d1 e6 30 29 02 01 01 04 06 70 75 62 6c 69 63 a0 1c 02 04 51 5a b7 e0 02 01 00 02 01 00 30 0e 30 0c 06 08 2b 06 01 02 01 01 01 00 05 00c8 1f 66 05 fb a6 //⽬的⽹卡地址00 0c 29 90 f7 6d //源⽹卡地址这⾥应该是数据链路层封装的头部08 00 //协议类型,这⾥是ip协议45 00 00 47 21 b9 40 00 40 11 9d 2c d2 26 eb ba d2 26eb b8 //ip⾸部a8 8d 00 a1 00 33 d1 e6 //udp⾸部//下⾯是snmp报⽂30//表⽰snmp消息是asn.1 sequence类型29//29表⽰该字段后⾯还有41个字节02 01 01//最后⼀个01表⽰snmp版本为2c这⾥采⽤的是BER编码⽅式 02表⽰该字段为INTEGER类型,第⼆个01表⽰数据长度为104 06 70 75 62 6c 69 63 //这⾥是团体名称public,04表⽰数据类型为OCTET STRING类型,06表⽰数据长度为6个字节,后⾯6个为public 的阿斯科马值,但是这⾥为什么后⾯的没有采⽤这种BER编码⽅式,即数据类型+数据长度+数据类容a0 1c //a0表⽰报⽂类型为get-request,1c表⽰后⾯还有28个字节的数据,这⾥为什么没有采⽤BER编码⽅式?这⾥除了类型字段外,其他的都采⽤BER编码⽅式02 04 51 5a b7 e0 //request ID这是由管理进程设置的⼀个整数这是由管理进程设置的⼀个整数值。
实验1网络配置与网络管理软件SNMPc的使用

实验1网络配置与网络管理软件SNMPc的使用一. 实验项目:网络实验环境的搭建,网络管理软件的安装、配置和基本使用二. 实验内容:1. 构建简单实验网络,并启用各网络设备的SNMP功能;2. 网络管理软件SNMPc的安装与配置;3. 学习SNMPc的主要管理功能,掌握软件系统的基本操作。
三. 实验目的:1. 使学生掌握典型网络管理软件SNMPc的安装、配置和基本使用技能。
2. 掌握网络设备管理的基本参数配置。
3. 通过实际操作,加深对课堂上SNMP协议理论知识的理解。
四. 实验设备及环境:1. Huawei 3Com Quidway R2621路由器:1台;2. Cisco 2950网络交换机:1台;3. 计算机:2台;4. 直通双绞线2根,交叉双绞线1根,串口配置线1根;5. 网络管理软件:SNMPc7。
五. 学生分组情况:每组6人。
六. 实验步骤及要求:1. 构建实验的网络环境参照下图构建实验的网络环境。
注意:同层次设备用交叉线相连(但现在很多设备带自动翻转功能,直连也可),如交换机与交换机,计算机与计算机,计算机与路由器(可看作专用计算机);而路由器和交换机、交换机和计算机用直通线相连。
交换机以太网口1:以太网口0: IP 地址)192.0.0.3/24网关:192.0.0.1图4 实验网络拓扑结构 2. 配置各设备的网络参数并启用其网管功能:为了配置路由器或交换机,用串口线将计算机的COM 串行接口与路由器或交换机的Console 控制口相连,然后在计算机中运行超级终端进行参数设置(端口设置需还原为默认值)。
(1) 配置Cisco 2950交换机1、配置IP 地址两层交换机在数据链路层转发数据时是不需要IP 地址的,但为了使交换机要能够被网管,也可给它标识一个管理IP 地址。
默认情况下CISCO 交换机的VLAN 1为管理VLAN ,为该管理VLAN 配上IP 地址,交换机就可以被网管了。
网络管理实验snmp协议

网络管理第一次实验实验报告姓名:***学号:********班级:26实验一:SNMP MIB信息的访问1 实验目的:学习SNMP服务在主机上的启动与配置,掌握用MIB浏览器访问SNMP MIB 对象值得方法,通过观察的MIB-2树图加深对MIB组织结构的了解。
2 实验内容:1 启动SNMP服务并配置共同体2 配置并熟悉MIB浏览器,观察MIB树结构,访问MIB对象3 查看表结构被管对象3 实验软件环境:Microsoft XP操作系统,AdventNet SNMP Utilities4 实验步骤总结:启动SNMP服务和配置共同体:1 添加windows “管理和监测工具”组件,并将其选定为“简单网络管理协议”。
2 在控制面板中选择“管理工具”——》“服务”,进入“SNMP Service的属性”对话框,设置并启动。
3 在“安全”选项卡中,配置共同体,其中团体权利为“只读”,团体名称“public”。
配置并熟悉MIB浏览器:1 打开MibBrowser启动MIB浏览器,设置Host为localhost,Community为public,SNMP端口号161.2 单击MIB浏览器左侧“RFC1213-MIB”前的符号“+”打开被监测主机的MIB树图结构,观察。
3 选择要访问的MIB对象,并进行访问。
4 访问MIB树的叶子节点。
5 打开“SNMP table”窗口,单击start获得路由表信息。
5 实验过程截图:截图1:观察MIB树图结构的截图截图2:通过Get访问MIB树对象截图3:通过GetNext访问MIB树对象截图4:路由表信息六课后要求与问题:要求一:根据MibBrowser软件左侧MIB导航图画出MIB-2树图(到组),并画出UDP 子树(到基本被管对象)。
答:根据截图一,可以画出树图如下:Udp子树图:要求二:通过使用MibBrowser依次访问system组的各个对象,考察各个被管对象的物理意义,并写出被管对象sysDescr的值。
snmp报文字段分析

SNMP五种协议数据单元SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。
∙get-request操作:从代理进程处提取一个或多个参数值(网管系统发送)∙get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值(网管系统发送)∙set-request操作:设置代理进程的一个或多个参数值(网管系统发送)∙get-response操作:返回的一个或多个参数值。
这个操作是由代理进程发出的,它是前面三种操作的响应操作(代理发送)∙trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生(代理发送)前面的3种操作是由管理进程向代理进程发出的,后面的2个操作是代理进程发给管理进程的,为了简化起见,前面3个操作叫做get、get-next和set操作。
下图描述了SNMP的这5种报文操作。
请注意,在代理进程端是用熟知端口161俩接收get或set报文,而在管理进程端是用熟知端口162来接收trap报文。
SNMP的5种报文操作SNMP协议数据单元格式解析下图封装成UDP数据报的5种操作的SNMP报文格式。
可见一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部trap首部、变量绑定。
SNMP报文格式1. 公共SNMP首部1.1 版本写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。
1.2 公共体共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。
1.3 PDU类型根据PDU的类型,填入0~4中的一个数字,其对应关系下表所示意图。
表1 PDU类型2. get/set首部2.1 请求标识符(request ID)这是由管理进程设置的一个整数值。
代理进程在发送get-response报文时也要返回此请求标识符。
管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。
snmp报文解析详细讲解

0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....
0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public......... 0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+...... 0050 05 00
0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.
0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....
0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public......... 0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+...... 0050 05 00
= (38 )10
SNMP报文02 01 00 表示版本号 解析
为SNMPv1(0)
0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.
0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......
T L V
0 0 0
0 0 0
0 0 0
0 0 0
SNMP抓包分析

SNMP---简单网络管理协议
S N M P定义了5种报文:
1) g e t - r e q u e s t操作:从代理进程处提取一个或多个参数值。
2) g e t - n e x t - r e q u e s t操作:从代理进程处提取一个或多个参数的下一个参数值
3) s e t - r e q u e s t操作:设置代理进程的一个或多个参数值。
4) g e t - r e s p o n s e操作:返回的一个或多个参数值。
这个操作是由代理进程发出的。
它
是前面3中操作的响应操作。
5) t r a p 操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
前面的3个操作是由管理进程向代理进程发出的。
后面两个是代理进程发给管理进程的
(为简化起见,前面3个操作今后叫做g e t、g e t - n e x t和s e t操作)。
下图描述了这5种操作。
下面是通过管理一个路由器的实验抓到的SNMP的5种报文:
SNMP抓包分析:
GET报文:
GET NEXT报文:
RESPONES报文:
SET报文:
TRAP报文:。
snmp抓包分析

Snmp协议分析关键点:BER编码1.协议字段2.PDU类型对应编号表PDU类型名称0 get-request1 get-next-request2 get-response3 set-request4 trap3.BER编码BER的数据都由三个域构成:标识域(tag)+长度域(length)+值域(value)。
注意: xx 表示标识域xx 标识长度域xx 表示值域4.一些解答为什么需要request-id字段?snmp协议是采用UDP作为下一层的承载协议,而我们都知道UDP并不像TCP一样是一种流,报文是按照顺序到达的,所以需要request-id来做顺序判定。
常见的类型(标识域)有哪些及其对应的值?BOOL(0x01);INT(0x02);OCTSTR(0x04);NULL(0x05);OBJID(0x06);ENUM(0x0A); EQ(0x30);SETOF(0x31);IPADDR (0x40);COUNTER (0x41);GAUGE(0x42); TIMETICKS(0x43);OPAQUE(0x44);GET(0xA0);GETNEXT(0xA1);GETResp(0xA 2);SET(0xA3);TRAP(0xA4);如何转化长度域十六进制数据?长度域指明值域的长度,不定长,一般为一到三个字节。
其格式可分为短格式和长格式.长度域采用短/长指示器(Short/Long Form)来标明长度指示符是否是单个字节,指示器在bit8上。
如果短/长指示器是0,则为短限定格式,低7位包含的就是数据的长度值,长度值在0到127之间;如果短/长指示器是1,则为长限定格式,其低7位的值表示后面紧跟的长度指示值的字节数,而后续字节拼接起来的值就是数据字段的长度,即数据长度。
举例:length:30 => 1Elength:169 => 81 A9(a9 == 169 ,81 中的1 表示一个字节,8作为标识)length:1500 => 82 05 DC ( 05dc == 1500 ,82 中的2 表示两个字节,8作为标识)5.抓包分析0000 30 4b 02 01 00 04 06 70 75 62 6c 69 63 a0 3e 020010 01 48 02 01 00 02 01 00 30 33 30 0f 06 0b 2b 060020 01 02 01 19 03 02 01 05 01 05 00 30 0f 06 0b 2b0030 06 01 02 01 19 03 05 01 01 01 05 00 30 0f 06 0b0040 2b 06 01 02 01 19 03 05 01 02 01 05 0030 4b :表示整个snmp报文的编码方式为30,即是SEQUENCE类型表示snmp报文的长度为4b,即为7502 01 00 :02表示该字段是INTERGER类型,01表示该字段占用一个字节,00表示版本号为104 06 70 75 62 6c 69 63 :04表示该字段为OCTET STRING 类型,06表示该字段的长度,70 75 62 6c 69 63 表示“public”a0 3e :a是该字段的固定值,0表示这是一个get-request报文,3e 表示PUD还有62 个字节02 01 48 : 02表示该字段是INTERGER类型,01 表示该字段占用一个字节,48表示request-id 为7202 01 00 :02表示该字段是INTERGER类型,01 表示该字段占用一个字节,00 表示报文的差错状态为002 01 00 :02表示该字段是INTERGER类型,01 表示该字段占用一个字节,00 表示报文的差错索引为030 33 : 30 表示编码类型为30 ,即是SEQUENCE类型,33表示后续“键- 值”区域占用51 个字节30 0f 06 0b 2b 06 01 02 01 19 03 02 01 05 01 05 00:30 表示编码类型为30 ,即是SEQUENCE 类型,0f 表示该字段共有15个字节,06 表示第一个变量为键,0b表示键长为11个字节,2b 06 01 02 01 19 03 02 01 05 01 表示1.3.6.1.2.1.25.3.2.1.5.1 , 00 表示该值的字段的长度为0,即为空30 0f 06 0b 2b 06 01 02 01 19 03 05 01 01 01 05 00 :同上30 0f 06 0b 2b 06 01 02 01 19 03 05 01 02 01 05 00 : 同上。
实验四 SNMP协议的工作原理分析

SNMP协议的工作原理分析一.实验目的掌握Iris软件捕获SNMP报文的方法,通过分析SNMP报文来掌握SNMP 协议的工作流程、SNMP报文的结构、MIB-2树的结构,深入理解管理信息结构SMI与抽象语法表示ASN.1。
二.实验环境虚拟机,Microsoft Windows Server 2003,WebNMS MibBrowser,Iris。
三.实验原理协议数据单元(PDU)计算机网络的对等层之间传递的数据单位,物理层、数据链路层、网络层与传输层的PDU分别是比特、数据帧、数据包与数据段。
在分层的网络结构中,发送系统的每一层会建立协议数据单元;PDU包含了上层的信息与本层实体所附加的信息,然后被传送到下一个较低的层,最终以比特的形式在物理层传输。
接收系统自下而上地传送PDU,并在协议栈的每一层中分离出PDU的相关信息。
需要注意的是,附加到各层PDU上的信息指定给另一个系统的对等层。
Iris是网络安全公司eEye Digital Security开发的一款网络通信分析工具,它可以捕获和查看进出网络的数据包、分析和解码数据包、生成各种形式的统计图表。
此外,Iris能够探测本机端口和网络设备的使用情况,进而有效地管理网络通信。
四. 实验步骤1.打开虚拟机,单击“Edit”>“Virtual Network Settings”,打开“Virtual Network Editor”对话框。
单击选项卡“DHCP”和“NAT”,分别设置虚拟网络VMnet8的子网(192.168.111.0)和网关(192.168.111.2)。
2.在虚拟机中,单击“File”>“Open”,打开Windows Server 2003。
单击“VM”>“Clone”,打开克隆向导,创建一个Windows Server 2003的完整克隆。
源Server 2003与克隆Server 2003分别充当监测主机与被监测主机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SNMP报文获取与分析
班级:网络工程12-1班
学号:08123536
姓名:赵怀庆
SNMP报文抓取及分析
关于本次SNMP报文抓取及分析工作,我大致上分为三个步骤进行:准备工作;报文抓取及报文分析。
一.准备工作
1.SNMP协议的安装
以WINDOW7系统为例:
点击确认进行协议安装。
2.启动SNMP服务:
在计算机关服务界面中,选择SNMP Service进行开启服务,双击进行配置,如下:
在安全选项卡中做如上配置。
3.下载并安装snmputil工具
安装路径为C盘下Windows下System32文件夹。
关于snmputil的使用请见(附件)。
4.关于SNMP数据包的接收,我用了虚拟机中WINDOW 2000操作系统,SNMP协议的安
装及服务的开启与上述WINDOW 7系统类似。
查看虚拟机IP地址:
二.报文抓取
1.准备工作就绪以后,就可以进行SNMP报文的抓取了,在WINDOW 7中cmd使用snmputil 工具进行发包:
2.同时在Wireshark中进行抓包:
三.报文分析
目的MAC:00 0c 29 2f fc e3
源MAC:00 50 56 c0 00 08
协议类型:08 00 ,为IP数据报
IP报头:45 00 00 44 02 09 00 00 40 11 bc cb c0 a8 9d 01 c0 a8 9d 82 45 IP协议版本4,报头长度20 bytes
00 00 44 总长度68(0x44)
02 09 确认号:512
00 00 标记字段0x00 无偏移字段
40 存活时间64
11 报文协议UPD
aa 26 报头确认号43558
b4 7c 0a 79 源IP地址180 124 10 121
c0 a8 11 81 目标IP地址192 168 17 129
UDP报头:c9 6b 00 a1 00 30 43 6f
C9 6b 源端口161
00 a1 目标端口161
00 30 长度181
43 6f 校验和
其余部分都为SNMP报文,接下来我们对照报文结构体来逐个分析一下:
30是identifier octets, 表示SNMP消息是ASN.1的SEQUENCE类型;
26表示该SNMP报文的总长度是38(0x26)个字节,该字段所表示的报文长度起始于它后面的第一个字节直到报文结束;
02 01 00 表示版本号,可见其确实为BER编码方式。
02表示该字段是INTEGER类型;01表示该字段占1个字节;00表示版本号,该值为“版本号-1”;
04 06 70 75 62 6c 69 63 表示团体名,04表示该字段为OCTETSTRING类型;06表示该字段占6个字节;70 75 62 6c 69 63表示团体名的ANSII码的十六进制形式,这里是“public”;
a1 19 其中a1表示PDU type为Get Next Request(1);19表示后面还有25(0x19)个字节的数据;
02 01 04表示Request ID为0x04;
02 01 00表示error-statue为0;
02 01 00表示error-index为0;
30 0e是ASN.1的SEQUENCE类型;
30 0c表示variable-name1|variable-value1对是ASN.1的SEQUENCE类型;长度是12(0x0c)字节;
06 08表示字段是ASN.1的Object Identifier类型;
2b 06 01 02 01 01 03 00表示variable-name 1: .1.3.6.1.2.1.1.3.0;
05 00为ASN.1的null类型。
(附件)
snmputil.exe工具的使用2012-09-06 17:15:57
一、检查windows 系统是否安装了 snmp 组件。
可以在 cmd 中输入"net start snmp" 就可以出现显示信息了
二、命令解释
snmputil,就是程序名啦。
get,就理解成获取一个信息。
getnext,就理解成获取下一个信息。
walk,就理解成获取一堆信息(嗯,应该说所有数据库子树/子目录的信息)agent,具体某台机器拉。
community,嗯就是那个“community strings”“查询密码”拉。
oid,这个要多说一下,这个呢,就是物件识别代码(Object Identifier)。
可以把oid理解成MIB管理信息库中各种信息分类存放树资源的一个数字标识。
三、snmputil的命令规则是:
snmputil [get|getnext|walk] agent community oid [oid ...]
[get|getnext|walk]为消息类型,我们此次进行的操作是get
agent指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.10.191 community:分区域,即密码,默认是public
oid:想要操作的MIB数据对象号,设备名称对应的MIB对象号
是.1.3.6.1.2.1.1.5.0
打开命令行窗口,进入snmputil所在路径,键入
snmputil get 192.168.10.191 public .1.3.6.1.2.1.1.5.0
如果参数都正确,控制台就会显示出机器名。
四、开始刺探信息:
snmputil walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2 列出系统进程snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1 列系统用户列表snmputil get 对方ip public .1.3.6.1.4.1.77.1.4.1.0 列出域名
snmputil walk 对方ip public .1.3.6.1.2.1.25.6.3.1.2 列出安装的软件snmputil walk 对方ip public .1.3.6.1.2.1.1 列出系统信息。