Exemplo de SNMPv3

A versĆ£o 3 do SNMP (Simple Network Management Protocol) apareceu hĆ” muito tempo em resposta aos fracos recursos da versĆ£o 2 em termos de seguranƧa. No entanto, apesar da disponibilidade e ampla distribuiĆ§Ć£o das descriƧƵes do protocolo versĆ£o 3 do protocolo [1], existem poucas descriƧƵes de implementaƧƵes baseadas no SNMP v3. A publicaĆ§Ć£o atual reflete um estudo dos despejos de despejo da 'GUI do Element Manager' (doravante EM) e da Plataforma de Transporte Multi-Transporte (doravante MHTP).

Examinaremos uma sĆ©rie de solicitaƧƵes SNMP de obtenĆ§Ć£o e definiĆ§Ć£o emitidas pelo EM no momento em que o aplicativo foi iniciado e autenticado e respostas MHTP a essas solicitaƧƵes. Antes de investigar a sequĆŖncia e o conteĆŗdo das consultas, preste atenĆ§Ć£o ao seguinte:

1) O cliente (EM), para autenticaĆ§Ć£o bem-sucedida, deve ter informaƧƵes sobre os seguintes parĆ¢metros do USM (RFC 3414):

ā€¢ Nome de usuĆ”rio - por exemplo "Administrador",
ā€¢ Protocolo de autenticaĆ§Ć£o - MD5,
ā€¢ Chave de autenticaĆ§Ć£o - por exemplo '12345',
ā€¢ Protocolo de privacidade - AES,
ā€¢ Chave de privacidade - por exemplo '12345',
ā€¢ Nome do contexto - 'tnms'.

2) Ao criar uma conexĆ£o UDP no lado do cliente, o sistema operacional seleciona 'porta de origem' (nĆ£o confunda com a 'porta de destino', que Ć© 161 por padrĆ£o para obter / configurar SNMP). O valor de 'porta de origem' pode mudar com diferentes ativaƧƵes do aplicativo cliente. Nesta implementaĆ§Ć£o, o valor de 'porta de origem' Ć© usado na formaĆ§Ć£o dinĆ¢mica do OID. Por exemplo, se vocĆŖ selecionar 'porta de origem' = 60583, teremos o byte 0xEC e 0xA7 e um sufixo dinĆ¢mico como parte de um OID do formulĆ”rio '.236.167'.

3) O endereƧo IP prĆ³prio Ć© conhecido pelo lado do cliente e Ć© usado na formaĆ§Ć£o dinĆ¢mica do OID. Por exemplo, para o endereƧo IP do cliente '10 .60.1.5 ', parte do' .10.60.1.5. 'EstarĆ” presente no OID de algumas solicitaƧƵes.

4) O valor do nome de usuĆ”rio mencionado acima tambĆ©m Ć© usado na formaĆ§Ć£o do OID. Por exemplo, para 'Administrador', parte de '.65.100.109.105.110.105.115.116.114.97.116.111.114. (ASCII).

Agora, passamos Ć  sequĆŖncia e ao conteĆŗdo das solicitaƧƵes get e set ao iniciar o EM, a autenticaĆ§Ć£o e a criaĆ§Ć£o de uma sessĆ£o (a parte do dump nĆ£o Ć© fornecida abaixo):

SolicitaƧƵes 1 e 2. De acordo com a RFC 5343, "descobrimos" os parĆ¢metros EngineID, EngineBoots e EngineTime,

Pedido:
data: get-request,
msgData: texto simples,
associaƧƵes de variƔveis: -


Resposta:
dados: relatĆ³rio,
msgData: texto simples,
associaƧƵes de variƔveis: (1 item)
1.3.6.1.6.3.15.1.1.4 ( usmStatsUnknownEngineIDs ) (Integer32) ==> 1.


Curiosamente, os valores EngineBoots e EngineTime obtidos sĆ£o usados ā€‹ā€‹a partir da solicitaĆ§Ć£o 4, e na solicitaĆ§Ć£o 3 Ć© necessĆ”rio definir valores zero para eles.

SolicitaĆ§Ć£o 3. Solicite usStatsNotInTimeWindows

Pedido:
data: get-request,
msgData: encryptedPDU,
associaƧƵes de variƔveis: -


Resposta:
dados: relatĆ³rio,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
1.3.6.1.6.3.15.1.1.2.0 ( usmStatsNotInTimeWindows ) (Integer32) ==> 0.


O nĆŗmero total de pacotes recebidos pelo mecanismo SNMP fora da janela autoritativa.

Pedido 4 . SolicitaĆ§Ć£o SnmpAgentState.
Pedido:
data: get-request,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
1.3.6.1.4.1.42229.1.1.1.7.128.6.0

Resposta:
dados: obter resposta,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
1.3.6.1.4.1.42229.1.1.1.7.128.6.0 (snmpAgentState) (Integer32) ==> 3 (ENABLED).

Status do agente.

Pedido 5 . SolicitaĆ§Ć£o SysDescr
Pedido:
data: get-request,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
1.3.6.1.2.1.1.1.0 (sysDescr)

Resposta:
dados: obter resposta,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
1.3.6.1.2.1.1.1.0 (sysDescr) ==> '--------- Copyright 2019 ******. Todos os direitos reservados. (OctetString)

SolicitaĆ§Ć£o 6. A solicitaĆ§Ć£o interfaceVersion Ć© estruturalmente semelhante a 4 e 5.
SolicitaĆ§Ć£o 7. Solicite usmXUserLastSuccessfulLogin
Pedido:
data: get-request,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
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

Resposta:
dados: obter resposta,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (1 item)
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: 00 (OctetString)
==> 10/09/2019, etc.
Nome de usuĆ”rio ('Administrador') - '. 65.100.109.105.110.105.115.116.114.97.116.111.114.' EstĆ” incluĆ­do diretamente no OID, para o qual Ć© solicitada a hora da sua Ćŗltima autenticaĆ§Ć£o bem-sucedida.

Pedido 8. Pedido para criar uma sessĆ£o
Pedido:
data: set-request,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (4 itens)
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'
Resposta:
dados: obter resposta,
msgData: encryptedPDU,
associaƧƵes de variƔveis: (4 itens)
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'
O endereƧo IP e a porta de origem estĆ£o incluĆ­dos diretamente no OID: '.10.60.1.5.236.167'.

A publicaĆ§Ć£o ilustra brevemente os recursos da implementaĆ§Ć£o do SNMP v3 inerentes ao MHTP.

[1] Douglas R. Mauro e Kevin J. Schmidt, ā€œSNMP Essencialā€ (segunda ediĆ§Ć£o).
[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/pt484442/


All Articles