Ceci est une ancienne révision du document !
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 :
- Niveau : noAuthNoPriv
- Authentification : Community String
- Chiffrement : Non
- Utilise une chaine de caractères pour l'authentification.
Version 2c :
- Niveau : noAuthNoPriv
- Authentification : Community String
- Chiffrement : Non
- Utilise une chaine de caractères pour l'authentification.
- Ajout du support des counter 64bits depuis cette version
Version 3 :
- Niveau : noAuthNoPriv
- Authentification : Nom d'utilisateur
- Chiffrement : Non
- Utilise un nom d'utilisateur pour l'authentification.
Version 3 :
- Niveau : authNoPriv
- Authentification : MD5 ou SHA
- Chiffrement : Non
- Utilise l'algorithme MD5 ou SHA pour l'authentification.
Version 3 :
- Niveau : authPriv
- Authentification : MD5 ou SHA
- Chiffrement : DES
- Utilise l'algorithme MD5 ou SHA pour l'authentification. Utilise l'algorithme DES pour le chiffrement.
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
Note : ces outils sont présents dans net-snmp, pour son installation et sa configuration (notamment pour les mibs), voir : http://ram-0000.developpez.com/tutoriels/reseau/Net-SNMP-1/
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
- 161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
- | snmp-info:
- | enterprise: ciscoSystems
- | engineIDFormat: mac
- | engineIDData: 00:d4:8c:00:11:22
- | snmpEngineBoots: 6
- | snmpEngineTime: 358d01h13m46s
snmp-brute
Example Usage
nmap -sU –script snmp-brute <target> [–script-args snmp-brute.communitiesdb=<wordlist> ]
Script Output
- PORT STATE SERVICE
- 161/udp open snmp
- | snmp-brute:
- | dragon - Valid credentials
- |_ jordan - Valid credentials
snmp-sysdescr
Example Usage
nmap -sU -p 161 –script snmp-sysdescr <target>
Script Output
- | snmp-sysdescr: HP ETHERNET MULTI-ENVIRONMENT,ROM A.25.80,JETDIRECT,JD117,EEPROM V.28.22,CIDATE 08/09/2006
- |_ System uptime: 28 days, 17:18:59 (248153900 timeticks)
snmp-interfaces
Example Usage
nmap -sU -p 161 –script=snmp-interfaces <target>
Script Output
- | snmp-interfaces:
- | eth0
- | IP address: 192.168.221.128
- | MAC address: 00:0c:29:01:e2:74 (VMware)
- | Type: ethernetCsmacd Speed: 1 Gbps
- |_ Traffic stats: 6.45 Mb sent, 15.01 Mb received