Table des matières

SNMP

Introduction

Protocole et version

SNMP, pour simple network management, est un protocole courant de gestion de noeud IP.

Il est défini par la RFC 1157 datant de 1990 et s'appuie sur des MIB (management information base), des bibliothèques d'objets, spécifiées dans la RFC 1156.

Le SMI, en tant que recommandation globale, préconise que chaque protocole sur un réseau IP soit gérable et donc dispose de sa MIB. SNMP est dédié à l'interrogation des MIB.

Une MIB est une structure arborescente, une MIB s'appliquant à un équipement sur internet aura des OID commençant par “.1.3.6.1”.

Un objet contenu dans une MIB est appelé OID.

Pour plus d'informations sur ce sujet voir : http://www.bortzmeyer.org/1155.html

# Schéma en cours

Les versions les plus importantes du protocole SNMP sont :

Version 1 :

Version 2c :

Version 3 :

Version 3 :

Version 3 :

Plus d'informations sur les counters SNMP (sur équipement Cisco) : http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/26007-faq-snmpcounter.html

Port et intégration à la pile IP

Le service SNMP est en écoute sur le port 161 et sur le port 162 (réservé aux “trap”).

Le protocole SNMP se situe en couche 7 (application) du modèle OSI et s'appuie sur le protocole UDP, couche 4 (transport).

Fonctionnement général

# Schema en cours

Boite à outil SNMP

snmpget

Permet de récupérer la valeur d'une OID.

# snmpget -v <version snmp> -c <communauté snmp> <adresse IP du noeud snmp> <OID>

snmpwalk

Permet de récupérer toutes les valeurs d'un sous-arbre.

# snmpwalk -v <version snmp> -c <communauté snmp> <adresse IP du noeud snmp> <OID>

snmptable

Identique à snmpwalk mais la sortie est présentée sous forme de tableau plus lisible.

# snmptable -v <version snmp> -c <communauté snmp> -Cb <adresse IP du noeud snmp> <OID>

snmpcheck

Outil d'énumération snmp

#snmpcheck -t <adresse IP du noeud snmp>

scapy

Outil permettant de forger des paquets. Application à snmp :

i=IP(src=“192.168.2.100”,dst=“192.168.2.150”)/UDP(sport=161,dport=161) s1=SNMP(community=“private”,PDU=SNMPset(varbindlist=[SNMPvarbind(oid=ASN1_OID(“1.3.6.1.4.1.9.9.96.1.1.1.1.14.112”),value=6)]))

Utilisation de scapy :

nmap

Outil de scan réseau généraliste Usage spécifique à SNMP (source : https://nmap.org)

snmp-info

Example Usage

nmap -sV <target>

Script Output

snmp-brute

Example Usage

nmap -sU –script snmp-brute <target> [–script-args snmp-brute.communitiesdb=<wordlist> ]

Script Output

snmp-sysdescr

Example Usage

nmap -sU -p 161 –script snmp-sysdescr <target>

Script Output

snmp-interfaces

Example Usage

nmap -sU -p 161 –script=snmp-interfaces <target>

Script Output