📡 SNMP – Simple Network Management Protocol
🧠 ¿Qué es SNMP?
Protocolo usado para monitorizar y administrar dispositivos de red:
🔌 routers, 🧠 switches, 🖥️ servidores, 📠 impresoras, 📶 APs y más.
📦 Funciona sobre UDP:
| Tipo | Puerto | Protocolo |
|---|---|---|
| 📤 Consultas | 161 |
UDP |
| 📥 Notificaciones (traps) | 162 |
UDP |
📜 Versiones de SNMP
| Versión | Seguridad | Comentario |
|---|---|---|
v1 |
❌ Ninguna | Obsoleta. Todo en texto plano. |
v2c |
❌ Ninguna | Igual que v1, pero más eficiente. |
v3 |
✅ Cifrado + autenticación | 🔐 Recomendada en entornos reales |
🔑 Community Strings
Actúan como "contraseñas" para leer o escribir datos.
| String | Tipo | Riesgo ofensivo |
|---|---|---|
public |
Lectura | 🔎 Puede filtrar info sensible |
private |
Escritura | 💣 Puede permitir modificar el dispositivo |
⚠️ Muchas veces mal configuradas y accesibles desde cualquier IP.
📚 MIB & OID — Claves para entender SNMP
🧩 MIB — Management Information Base
Es como una base de datos jerárquica que describe qué puede consultarse o modificarse vía SNMP.
🧠 Cada “objeto” tiene:
-
Un nombre legible:
sysName,sysDescr, etc. -
Un OID único (Object Identifier):
1.3.6.1.2.1.1.5.0
📋 Ejemplos:
| Nombre MIB | OID | Valor típico |
|---|---|---|
sysDescr |
1.3.6.1.2.1.1.1.0 |
Descripción del dispositivo |
sysUpTime |
1.3.6.1.2.1.1.3.0 |
Tiempo activo desde reinicio |
sysName |
1.3.6.1.2.1.1.5.0 |
Nombre del host |
💥 Casos ofensivos
| Riesgo | Descripción |
|---|---|
🔓 Acceso anónimo (public) |
Enumeración sin autenticación |
| 🧑💻 Fuga de usuarios locales | Especialmente en servidores Linux |
| 🔀 Acceso a procesos, rutas, interfaces | Ideal para pivoting interno |
🛠️ Escritura con private |
Reconfiguración remota (¡RCE posible!) |
🛠️ Herramientas prácticas SNMP
🔍 snmpwalk — Recolectar información de forma masiva
snmpwalk -v2c -c public 10.129.49.170
🔎 ¿Qué hace?
➡️ Realiza múltiples peticiones SNMP encadenadas, recorriendo todo el árbol MIB disponible desde el host objetivo.
💥 Si el servidor SNMP está mal configurado (ej. public abierto), puedes extraer:
-
🧠 Nombre del sistema
-
📦 SO y versión
-
🖧 Interfaces de red
-
🕓 Tiempo encendido
-
📂 Rutas, procesos, discos
-
🔐 A veces incluso usuarios y passwords en texto plano (!)
