Ceci est une ancienne révision du document !
Analyse du protocole
Nous allons regarder avec Wireshark, notre sniffeur favori, ce qu'il se passe en utilisant trois commandes classiques : snmpget
, snmpwalk
et snmpbulkwalk
(utilisable seulement avec la version v2c ou supérieure de SNMP).
snmpget
Demandons, une fois encore à notre switch de nous dire son nom :
~$ snmpget -v 1 -c public -Ot 172.16.252.2 SNMPv2-MIB::sysName.0 SNMPv2-MIB::sysName.0 = STRING: ProCurve Switch 2650-1
Voyons ce que notre sniffeur a épié :
No. Time Source Destination Protocol Info 1 0.000000 192.168.0.16 172.16.252.2 SNMP get-request 1.3.6.1.2.1.1.5.0 Frame 1 (85 bytes on wire, 85 bytes captured) ... User Datagram Protocol, Src Port: 42380 (42380), Dst Port: snmp (161) Source port: 42380 (42380) Destination port: snmp (161) Length: 51 Checksum: 0x6910 [validation disabled] [Good Checksum: False] [Bad Checksum: False] Simple Network Management Protocol version: version-1 (0) community: public data: get-request (0) get-request request-id: 925410341 error-status: noError (0) error-index: 0 variable-bindings: 1 item 1.3.6.1.2.1.1.5.0: Value (Null) Object Name: 1.3.6.1.2.1.1.5.0 (iso.3.6.1.2.1.1.5.0)
Nous sommes bien en UDP et le port cible est bien 161.
SNMP est bien utilisé en version 1, la commande est get-request
et l'OID demandée est 1.3.6.1.2.1.1.5.0
.
La réponse :
No. Time Source Destination Protocol Info 2 0.072588 172.16.252.2 192.168.0.16 SNMP get-response 1.3.6.1.2.1.1.5.0 Frame 2 (107 bytes on wire, 107 bytes captured) ... User Datagram Protocol, Src Port: snmp (161), Dst Port: 42380 (42380) Source port: snmp (161) Destination port: 42380 (42380) Length: 73 Checksum: 0x180f [validation disabled] [Good Checksum: False] [Bad Checksum: False] Simple Network Management Protocol version: version-1 (0) community: public data: get-response (2) get-response request-id: 925410341 error-status: noError (0) error-index: 0 variable-bindings: 1 item 1.3.6.1.2.1.1.5.0: 50726F43757276652053776974636820323635302D31 Object Name: 1.3.6.1.2.1.1.5.0 (iso.3.6.1.2.1.1.5.0) Value (OctetString): 50726F43757276652053776974636820323635302D31
Nous avons la réponse (get-response
), elle n'est pas très lisible car donnée sous forme numérique, la version 1.2.7 de wireshark semblant avoir du mal avec le décodage de SNMP.
Nous ne referons pas la manipulation en v2c, le résultat étant le même.