SNMP (Simple Network Management Protocol) es un protocolo de capa de aplicacion utilizado para el monitoreo y administracion de dispositivos de red como routers, switches, servidores, impresoras y firewalls. Funciona sobre UDP y permite gestionar la configuracion y monitorizacion remota de dispositivos.
Esta guia cubre la teoria de SNMP, tecnicas de enumeracion y metodos de explotacion para penetration testing.
2. Fundamentos
2.1. Arquitectura SNMP
SNMP sigue una arquitectura manager-agent:
NMS/Manager (tu maquina) ---UDP/161---> Agente SNMP (router, switch)
|
v
MIB (base de datos)
Componente
Descripcion
NMS
Network Management Station (herramienta de gestion)
Agente
Proceso en el dispositivo gestionado
MIB
Management Information Base (base de datos de objetos)
2.2. Puertos
Puerto
Protocolo
Descripcion
161/UDP
SNMP
Consultas del manager al agente
162/UDP
SNMP Traps
Notificaciones del agente al manager
3. Versiones de SNMP
3.1. Comparativa de Versiones
Version
Seguridad
Descripcion
v1
Ninguna
Community string en texto plano, obsoleto
v2c
Ninguna
Mas eficiente, igual de inseguro
v3
Fuerte
Autenticacion y cifrado
3.2. Vulnerabilidades de v1/v2c
Problemas de SNMPv1/v2c:
- Texto plano visible con Wireshark
- Community strings predecibles ("public", "private")
- Sin mecanismo de bloqueo
- UDP sin handshake (respuesta = valido)
4. Conceptos Clave
4.1. MIB (Management Information Base)
La MIB es una base de datos jerarquica que describe todos los parametros que un dispositivo expone via SNMP.
Arbol MIB:
iso (1)
org (3)
dod (6)
internet (1)
mgmt (2)
mib-2 (1) <- MIBs RFC estandar
system (1)
interfaces (2)
tcp (6)
private (4)
enterprises (1) <- MIBs de fabricantes
4.2. OID (Object Identifiers)
Los OID son direcciones unicas para cada dato dentro del arbol MIB.
1.3.6.1.2.1.1.1.0
| | | | | | | | +-- instancia
iso org dod inet mgmt mib2 sys sysDescr
Ejemplo:
1.3.6.1.2.1.1.1.0 = sysDescr (descripcion del SO)
1.3.6.1.2.1.1.5.0 = sysName (hostname)
4.3. Community Strings
Las community strings son las “contraseñas” de SNMPv1/v2c.
String
Tipo
Permiso
Default
public
Read-Only
Solo lectura
Comun
private
Read-Write
Lectura + escritura
Desconfigurado
trap
Trap
Recibe alertas
Raro
5. Herramientas de Enumeracion
5.1. snmpwalk
Descripcion: Recorre el arbol MIB desde un OID raiz y recupera valores recursivamente.
snmpwalk -v2c-c <community> <target> [OID]
Parametro
Descripcion
-v2c
Version SNMPv2c
-v1
Version SNMPv1
-c
Community string
-On
Output numerico (sin traducir OIDs)
-t
Timeout en segundos
-r
Reintentos
5.2. snmpget
# Obtener un OID especifico
snmpget -v2c-c public target 1.3.6.1.2.1.1.1.0
5.3. snmpset
# Modificar un valor (requiere RW)
snmpset -v2c-c private target 1.3.6.1.2.1.1.5.0 s "nuevo_nombre"
Parametro
Descripcion
s
String
i
Integer
x
Hex string
6. OIDs de Alto Valor
6.1. Sistema
OID
Nombre
Descripcion
1.3.6.1.2.1.1.1.0
sysDescr
SO y version del kernel
1.3.6.1.2.1.1.3.0
sysUpTime
Tiempo desde inicio
1.3.6.1.2.1.1.5.0
sysName
Hostname
6.2. Procesos
OID
Nombre
Descripcion
1.3.6.1.2.1.25.4.2.1.2
hrSWRunName
Nombres de procesos
1.3.6.1.2.1.25.4.2.1.4
hrSWRunPath
Rutas de binarios
1.3.6.1.2.1.25.4.2.1.5
hrSWRunParameters
Argumentos de procesos
Advertencia: Los argumentos de procesos pueden contener credenciales en texto plano.
6.3. Red
OID
Nombre
Descripcion
1.3.6.1.2.1.2.2.1.2
ifDescr
Nombres de interfaces
1.3.6.1.2.1.2.2.1.6
ifPhysAddress
Direcciones MAC
1.3.6.1.2.1.4.20
ipAddrTable
IPs asignadas
1.3.6.1.2.1.4.21
ipRouteTable
Tabla de rutas
1.3.6.1.2.1.6.13.1.3
tcpConnLocalPort
Puertos TCP locales
6.4. Software
OID
Nombre
Descripcion
1.3.6.1.2.1.25.6.3.1.2
hrSWInstalledName
Software instalado
1.3.6.1.2.1.25.2.3.1.3
hrStorageDescr
Mount points
6.5. Usuarios
OID
Nombre
Descripcion
1.3.6.1.4.1.77.1.2.25
hrUserName
Usuarios del sistema
7. Enumeracion Practica
7.1. Reconocimiento Basico
# Walk completo
snmpwalk -v2c-c public target > snmp_full.txt
# Walk en formato numerico
snmpwalk -v2c-c public -On target
# Info basica del sistema
snmpwalk -v2c-c public target 1.3.6.1.2.1.1.1.0
snmpwalk -v2c-c public target 1.3.6.1.2.1.1.5.0
7.2. Procesos y Credenciales
# Nombres de procesos
snmpwalk -v2c-c public target 1.3.6.1.2.1.25.4.2.1.2
# Rutas de binarios
snmpwalk -v2c-c public target 1.3.6.1.2.1.25.4.2.1.4
# Argumentos de procesos (PRIORIDAD)
snmpwalk -v2c-c public target 1.3.6.1.2.1.25.4.2.1.5
7.3. Red e Interfaces
# Interfaces de red
snmpwalk -v2c-c public target 1.3.6.1.2.1.2.2.1.2
# Direcciones MAC
snmpwalk -v2c-c public target 1.3.6.1.2.1.2.2.1.6
# IPs del sistema
snmpwalk -v2c-c public target 1.3.6.1.2.1.4.20
# Tabla de rutas
snmpwalk -v2c-c public target 1.3.6.1.2.1.4.21
# Puertos TCP activos
snmpwalk -v2c-c public target 1.3.6.1.2.1.6.13.1.3