SNMPv3示例

SNMP(简单网络管理协议)的版本3是很久以前出现的,以应对版本2在安全性方面的薄弱功能 。 然而,尽管协议[1]的协议版本3描述的可用性和广泛分布,但基于SNMP v3的实现的描述却很少。 本篇文章反映了对“元素管理器GUI”(以下称为EM)和“ Multi-Haul Transport Platform”(以下称为MHTP)的转储的研究。

我们将研究启动和认证应用程序时EM发出的一系列SNMP获取和设置请求,以及对这些请求的MHTP响应。 在研究查询的顺序和内容之前,需要注意以下几点:

1)为了成功进行身份验证,客户端(EM)必须具有有关以下USM参数(RFC 3414)的信息:

•用户名-例如 “管理员”,
•身份验证协议-MD5,
•验证密钥-例如 '12345',
•隐私协议-AES,
•隐私密钥-例如 '12345',
•上下文名称-'tnms'。

2)在客户端上创建UDP连接时,操作系统选择“源端口”(不要与“目标端口”混淆,对于SNMP get / set,默认为161)。 “源端口”的值可能会随着客户端应用程序的不同启动而改变。 在此实现中,“源端口”的值用于OID的动态形成。 例如,如果选择“源端口” = 60583,则字节0xEC和0xA7以及动态后缀是形式为“ .236.167”的OID的一部分。

3)客户端知道自己的IP地址,并将其用于动态形成OID。 例如,对于客户端IP地址“ 10.60.1.5”,“。10.60.1.5。”的一部分将出现在某些请求的OID中。

4)上述用户名值也用于OID的形成。 例如,对于“管理员”,是.65.100.109.105.110.105.115.116.114.97.116.111.114的一部分。 (ASCII)。

现在,我们开始启动EM,身份验证和创建会话时,获取和设置请求的顺序和内容(转储部分未在下面给出):

请求1和2。根据RFC 5343,我们“发现” EngineID,EngineBoots和EngineTime参数,

要求:
数据:获取请求,
msgData:纯文本,
变量绑定:-


答:
数据:报告,
msgData:纯文本,
变量绑定:(1个项目)
1.3.6.1.6.3.15.1.1.4( usmStatsUnknownEngineIDs )(Integer32)==> 1。


有趣的是,从请求4开始使用获得的EngineBoots和EngineTime值,并且在请求3中必须为它们设置零值。

请求3.请求usmStatsNotInTimeWindows

要求:
数据:获取请求,
msgData:加密的PDU,
变量绑定:-


答:
数据:报告,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.6.3.15.1.1.2.0( usmStatsNotInTimeWindows )(Integer32)==> 0。


SNMP引擎在权威窗口之外接收的数据包总数。

要求4 SnmpAgentState请求。
要求:
数据:获取请求,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.4.1.42229.1.1.1.7.128.6.0

答:
数据:获取响应,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.4.1.42229.1.1.1.7.128.6.0(snmpAgentState)(Integer32)==> 3(启用)。

代理商状态。

要求5 SysDescr请求
要求:
数据:获取请求,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.2.1.1.1.0(sysDescr)

答:
数据:获取响应,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.2.1.1.1.0(sysDescr)==>'---------版权所有2019 ******。 保留所有权利。 (OctetString)

请求6。interfaceVersion请求在结构上类似于4和5。
请求7。请求usmXUserLastSuccessfulLogin
要求:
数据:获取请求,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.4.1.42229.1.1.1.9.2.1.13.13.65.100.109.105.110.105.115.116.114.97.116.111.114

答:
数据:获取响应,
msgData:加密的PDU,
变量绑定:(1个项目)
1.3.6.1.4.1.42229.1.1.1.9.2.1.13.13.65.100.109.105.110.105.115.116.114.97.116.111.114(usmXUserLastSuccessfulLogin)
==> 07:e3:09:0a:06:1f:36:00:2b:00:0(OctetString)
==> 2019-09-10等
用户名('管理员')-'。65.100.109.105.110.105.115.116.114.97.116.111.114。'直接包含在OID中,要求其最后一次成功认证的时间。

请求8.请求创建会话
要求:
数据:设置请求,
msgData:加密的PDU,
变量绑定:(4个项目)
1.3.6.1.4.1.42229.1.1.1.9.6.1.2.6.10.60.1.5.236.167 ==> 4(Integer32)==> createAndGo 1.3.6.1.4.1.42229.1.1.1.9.6.1.5.6.10.60.1。 5.236.167 ==> 2(Integer32)==> sessionRemoteLogin
1.3.6.1.4.1.42229.1.1.1.9.6.1.3.6.10.60.1.5.236.167 ==> 41646d696e6973747261746f72(OctetString)==> sessionUserName('Administrator')
1.3.6.1.4.1.42229.1.1.1.9.6.1.4.6.10.60.1.5.236.167 ==> 4043542020(OctetString)==> sessionManager ==>'root'
答:
数据:获取响应,
msgData:加密的PDU,
变量绑定:(4个项目)
1.3.6.1.4.1.42229.1.1.1.9.6.1.2.6.10.60.1.5.236.167 ==> 4(Integer32)==> createAndGo 1.3.6.1.4.1.42229.1.1.1.9.6.1.5.6.10.60.1。 5.236.167 ==> 2(Integer32)==> sessionRemoteLogin
1.3.6.1.4.1.42229.1.1.1.9.6.1.3.6.10.60.1.5.236.167 ==> 41646d696e6973747261746f72(OctetString)==> sessionUserName('Administrator')
1.3.6.1.4.1.42229.1.1.1.9.6.1.4.6.10.60.1.5.236.167 ==> 4043542020(OctetString)==> sessionManager ==>'root'
IP地址和源端口直接包含在OID中:“。10.60.1.5.236.167”。

文章简要说明了MHTP固有的SNMP v3实现的功能。

[1] Douglas R. Mauro和Kevin J. Schmidt“基本SNMP”(第二版)。
[2] gtacknowledge.extremenetworks.com/articles/How_To/How-to-decrypt-SNMPv3-packets-in-Wireshark
[3] labs.spritelink.net/talking-snmpv3-with-nsn-hit7300

Source: https://habr.com/ru/post/zh-CN484442/


All Articles