Last updated on abril 2, 2021
Hoy vamos a hablar de todo lo relacionado con la seguridad del protocolo SNMP (Simple Network Management Protocol). Este es un servicio para administrar la red que corre en el puerto 161 (UDP). La versión por defecto de SNMP es v2c. Tiene cierta complejidad, por lo que antes de pasar a las vulnerabilidades, hagámos un breve resumen de cómo funciona este protocolo.
Está compuesto de tres partes:
– Network Management Stations (NMS): Ejecutan aplicaciones que supervisan y controlan los dispositivos administrados.
– Dispositivos Administrados: Dispositivo que contiene un agente SNMP. Recoge información de administración que pone a disposición de los administradores. Son routers, impresoras, switch, hosts…
– Agente: Modulo de software de administración de red que reside en un dispositivo administrado. Tiene información local del dispositivo que se traduce a un formato compatible con SNMP y organizado en jerarquias. Esta información puede ser la memoria libre, paquetes ip recibidos o rutas.
Mediante este protocolo se pueden gestionar y modificar remotamente variables de dispositivos administrados.
Las jerarquias, el tipo y la descripción de las variables se describen en MIB (Management Information Base). Las MIB son bases de datos que contienen información jerarquica estructurada en forma de arbol de todos los dispositivos gestionados en una red.
Los identificadores de los objetos ubicados en la parte superior del arbol pertenecen a organizaciones estándares, y los identificadores de la parte inferior son colocados por las organizaciones asociadas.
Nmap
Como he mencionado anteriormente, este protocolo corre en el puerto 161 UDP, por lo que al no estar en TCP, en un escaneo de puertos normal no lo detectaremos. Debemos hacer pues un escaner UDP para descubrirlo:
Community string
SNMP utiliza lo que se conoce como «Community string». Esto es una palabra que sirve como clave para poder acceder al dispositivo. El community string por defecto es «public».
Si el community string no es public, entonces podemos intentar hacer fuerza bruta con una herramienta llamada onesixtyone:
Snmpwalk
Los identificadores de objeto de SNMP son todo números, por lo que necesitamos un MIBS para poder leerlo.
Ahora hay que editar el archivo /etc/snmp/snmp.conf y comentar la primera linea, en la que pone «mibs :»
Si volvemos a ejecutar smpwalk, los números ahora salen traducidos:
Snmp-check
IPv6 en SNMP
Habiendo instalado el MIBS de SNMP, podemos ver la IPv6 address del servidor:
Pero hay que dividir de 4 en 4 para que sea una dirección IPv6:
Si nos fijamos en el output, realmente podemos ahorrarnos los 0 y expresar esta dirección IPv6 como dead:beef::250:56ff:fe8f:f4a3
Ahora podemos hacer un nmap usando la IPv6, y quizá obtengamos info que antes no, debido a que el firewall solo esté actuando en IPv4:
Por ejemplo, el puerto 80 está abierto ejecutando Apache, cosa que en IPv4 no estaba.
(Para conectarnos con el navegador a una dirección IPv6, tenemos que poner http://[direccionIPv6] )
Hay otra forma de obteneer la IPv6 usando SNMP: con una herramienta llamada Enyx (https://github.com/trickster0/Enyx)
Para utilizarla, tienes que volver a deshabilitar el MIBS editando el archivo /etc/snmp/snmp.conf y descomentando el «snmp :» que comentaste en la primera linea.
Esto es todo sobre SNMP. Como puedes comprobar, al ser un protocolo de administración de red, podemos obtener mucha información sensible aprovechándonos de las vulnerabilidades del protocolo.
Si te ha gustado el artículo, te recomiendo que visites el resto de artículos de hacking de infraestructura.
Lethani.
Be First to Comment