💻SNMP
Simple Network Management Protocol( SNMP ) fue creado para monitorear dispositivos de red.
Cómo funciona
Además, este protocolo también se puede utilizar para gestionar tareas de configuración y cambiar ajustes de forma remota. El hardware habilitado para SNMP incluye enrutadores, conmutadores, servidores, dispositivos IoT y muchos otros dispositivos que también pueden consultarse y controlarse mediante este protocolo estándar. Por tanto, es un protocolo para monitorear y administrar dispositivos de red. Además, se pueden gestionar tareas de configuración y realizar ajustes de forma remota utilizando este estándar. La versión actual es SNMPv3
, lo que aumenta la seguridad de SNMP en particular, pero también la complejidad del uso de este protocolo.
Además del puro intercambio de información, SNMP también transmite comandos de control utilizando agentes a través del puerto UDP 161
. El cliente puede establecer valores específicos en el dispositivo y cambiar opciones y configuraciones con estos comandos. Mientras que en la comunicación clásica siempre es el cliente quien solicita activamente información al servidor, SNMP también permite el uso del llamado traps
por el puerto UDP 162
. Son paquetes de datos enviados desde el servidor SNMP al cliente sin ser solicitados explícitamente. Si un dispositivo está configurado en consecuencia, se envía una captura SNMP al cliente una vez que ocurre un evento específico en el lado del servidor.
Para que el cliente y el servidor SNMP intercambien los valores respectivos, los objetos SNMP disponibles deben tener direcciones únicas conocidas en ambos lados. Este mecanismo de direccionamiento es un requisito previo absoluto para la transmisión exitosa de datos y el monitoreo de la red mediante SNMP.
MIB
Para garantizar que el acceso SNMP funcione entre fabricantes y con diferentes combinaciones de cliente-servidor, se creó Management Information Base
( ). MIB
MIB es un formato independiente para almacenar información del dispositivo. Una MIB es un archivo de texto en el que todos los objetos SNMP consultables de un dispositivo se enumeran en una jerarquía de árbol estandarizada. Contiene al menos un Object Identifier
( OID
) que, además de la dirección unívoca necesaria y un nombre, también proporciona información sobre el tipo, los derechos de acceso y una descripción del objeto respectivo. Los archivos MIB están escritos en formato de texto ASCII basado en Abstract Syntax Notation One
( ASN.1
). Las MIB no contienen datos, pero explican dónde encontrar qué información y cómo se ve, qué devuelve valores para el OID específico o qué tipo de datos se utiliza.
OID
Un OID representa un nodo en un espacio de nombres jerárquico. Una secuencia de números identifica de forma única cada nodo, lo que permite determinar la posición del nodo en el árbol. Cuanto más larga sea la cadena, más específica será la información. Muchos nodos en el árbol OID no contienen nada excepto referencias a los que están debajo de ellos. Los OID constan de números enteros y normalmente están concatenados mediante notación de puntos. Podemos buscar muchas MIB para los OID asociados en el Registro de identificadores de objetos .
SNMPv1
SNMP versión 1 ( SNMPv1
) se utiliza para la gestión y supervisión de la red. SNMPv1 es la primera versión del protocolo y todavía se utiliza en muchas redes pequeñas. Admite la recuperación de información de dispositivos de red, permite la configuración de dispositivos y proporciona trampas, que son notificaciones de eventos. Sin embargo, SNMPv1 tiene un mecanismo no built-in authentication
, lo que significa que cualquiera que acceda a la red puede leer y modificar los datos de la red. Otro defecto principal de SNMPv1 no soporta encriptación
y todos los datos se envían en texto plano y pueden interceptarse fácilmente.
SNMPv2
SNMPv2 existía en diferentes versiones. La versión que todavía existe hoy es v2c
, y la extensión c
significa SNMP basado en la comunidad. En cuanto a la seguridad, SNMPv2 está a la par con SNMPv1 y se ha ampliado con funciones adicionales del SNMP basado en terceros que ya no se utiliza. Sin embargo, un problema importante con la ejecución inicial del protocolo SNMP es que el protocolo community string
que proporciona seguridad sólo se transmite en texto plano, lo que significa que no tiene cifrado incorporado.
SNMPv3
La seguridad se ha incrementado enormemente gracias SNMPv3
a funciones de seguridad como authentication
el uso de nombre de usuario y contraseña y la transmisión encryption
(a través de pre-shared key
) de los datos. Sin embargo, la complejidad también aumenta en la misma medida, con muchas más opciones de configuración que v2c
.
Community Strings
Las Community Strings
pueden verse como contraseñas que se utilizan para determinar si la información solicitada se puede ver o no. Es importante tener en cuenta que muchas organizaciones todavía utilizan SNMPv2
, ya que la transición SNMPv3
puede ser muy compleja, pero los servicios aún deben permanecer activos. Esto preocupa mucho a muchos administradores y crea algunos problemas que desean evitar. La falta de conocimiento sobre cómo se puede obtener la información y cómo la utilizamos nosotros como atacantes hace que el enfoque de los administradores parezca inexplicable. Al mismo tiempo, la falta de cifrado de los datos enviados también supone un problema. Porque cada vez que las cadenas de comunidad se envían a través de la red, pueden ser interceptadas y leídas.
Configuración predeterminada
La configuración predeterminada del demonio SNMP define las configuraciones básicas para el servicio, que incluyen las direcciones IP, puertos, MIB, OID, autenticación y cadenas de comunidad.
SNMP Daemon Config
La configuración de este servicio también se puede cambiar de muchas formas. Por lo tanto, recomendamos configurar una VM para instalar y configurar nosotros mismos el servidor SNMP. Todas las configuraciones que se pueden realizar para el demonio SNMP se definen y describen en la página de manual .
Configuraciones peligrosas
Algunas configuraciones peligrosas que el administrador puede realizar con SNMP son:
Ajustes | Descripción |
| Proporciona acceso al árbol OID completo sin autenticación. |
| Proporciona acceso al árbol OID completo independientemente de dónde se enviaron las solicitudes. |
| Mismo acceso que con |
Enumeración del servicio
Para realizar un seguimiento de SNMP, podemos utilizar herramientas como snmpwalk
, onesixtyone
y braa
.
Snmpwalk
se utiliza para consultar los OID con su información. Onesixtyone
se puede utilizar para forzar por fuerza bruta los nombres de las cadenas de la comunidad, ya que el administrador puede nombrarlas arbitrariamente. Dado que estas cadenas de comunidad pueden vincularse a cualquier fuente, identificar las cadenas de comunidad existentes puede llevar bastante tiempo.
Cheatsheet
Comando | Descripción |
| Consulta de OID mediante snmpwalk. |
| Community Strings de fuerza bruta del servicio SNMP. |
| OID del servicio SNMP de fuerza bruta. |
SNMPwalk
En el caso de una mala configuración, obtendríamos aproximadamente los mismos resultados de snmpwalk
que se muestran arriba. Una vez que conocemos la Community String y el servicio SNMP que no requiere autenticación (versiones 1, 2c), podemos consultar información interna del sistema como en el ejemplo anterior.
Aquí reconocemos algunos paquetes de Python que se han instalado en el sistema. Si no conocemos la Community String, podemos usar listas de palabras onesixtyone
y SecLists
para identificar estas cadenas de comunidad.
OneSixtyOne
A menudo, cuando ciertas Community String están vinculadas a direcciones IP específicas, se nombran con el nombre de host del host y, a veces, incluso se agregan símbolos a estos nombres para que sean más difíciles de identificar.
Sin embargo, si imaginamos una red extensa con más de 100 servidores diferentes gestionados mediante SNMP, las etiquetas, en ese caso, tendrán algún patrón. Por tanto, podemos utilizar diferentes reglas para adivinarlos. Podemos utilizar la herramienta Crunch para crear listas de palabras personalizadas.
Una vez que conocemos una cadena de comunidad, podemos usarla con braa para aplicar fuerza bruta a los OID individuales y enumerar la información detrás de ellos.
braa
Una vez más queremos señalar que la configuración independiente del servicio SNMP nos aportará una gran variedad de experiencias diferentes que ningún tutorial podrá sustituir. Por lo tanto, recomendamos encarecidamente configurar una máquina virtual con SNMP, experimentar con ella y probar diferentes configuraciones. SNMP puede ser una bendición para un administrador de sistemas de IT, así como una maldición tanto para los analistas como para los gerentes de seguridad.
Última actualización