SNMP
Last updated
Last updated
Simple Network Management Protocol
SNMP se creó para supervisar dispositivos de red. Además, este protocolo también permite gestionar tareas de configuración y modificar ajustes de forma remota. El hardware compatible con SNMP incluye routers, switches, servidores, dispositivos IoT y muchos otros dispositivos que también pueden consultarse y controlarse mediante este protocolo estándar. Por lo tanto, es un protocolo para la supervisión y la gestión de dispositivos de red. Además, permite gestionar tareas de configuración y realizar ajustes de forma remota mediante este estándar. La versión actual es [Nombre del protocolo] SNMPv3
lo que aumenta la seguridad de SNMP, en particular, pero también la complejidad de su uso.
Además del intercambio de información, SNMP también transmite comandos de control mediante agentes a través del puerto UDP 161
. El cliente puede configurar valores específicos en el dispositivo y modificar opciones y ajustes con estos comandos. Mientras que en la comunicación clásica es siempre el cliente quien solicita activamente la información al servidor, SNMP también permite el uso del llamado traps
puerto UDP 162
. Estos paquetes de datos se envían desde el servidor SNMP al cliente sin necesidad de una solicitud explícita. Si un dispositivo está configurado adecuadamente, se envía una trap SNMP al cliente cuando se produce un evento específico en el servidor.
Para que el cliente y el servidor SNMP intercambien sus valores respectivos, los objetos SNMP disponibles deben tener direcciones únicas conocidas por ambos lados. Este mecanismo de direccionamiento es indispensable para la correcta transmisión de datos y la monitorización de la red mediante SNMP.
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 su posición en el árbol. Cuanto más larga sea la cadena, más específica será la información. Muchos nodos del árbol OID contienen únicamente referencias a los que se encuentran por debajo. Los OID consisten en números enteros y suelen concatenarse mediante notación de puntos. Podemos buscar en varias MIB los OID asociados en el .
La versión 1 de SNMP ( SNMPv1
) se utiliza para la gestión y monitorización de redes. SNMPv1 es la primera versión del protocolo y aún se utiliza en muchas redes pequeñas. Permite la recuperación de información de dispositivos de red, su configuración y proporciona traps, que son notificaciones de eventos. Sin embargo, SNMPv1 cuenta con no built-in authentication
un mecanismo que permite a cualquier persona que acceda a la red leer y modificar los datos de la misma. Otra de sus principales deficiencias es que does not support encryption
todos los datos se envían en texto plano y pueden ser fácilmente interceptados.
SNMPv2 existía en diferentes versiones. La versión que aún existe es [nombre del protocolo faltante] v2c
, y la extensión c
significa SNMP basado en la comunidad. En cuanto a seguridad, SNMPv2 es comparable a SNMPv1 y se ha ampliado con funciones adicionales del SNMP basado en grupos, que ya no se utiliza. Sin embargo, un problema importante con la ejecución inicial del protocolo SNMP es que el [nombre faltante] community string
que proporciona seguridad solo se transmite en texto plano, lo que significa que no tiene cifrado integrado.
La seguridad se ha incrementado enormemente SNMPv3
gracias a funciones como authentication
el uso de nombre de usuario y contraseña, y la transmisión de datos encryption
(vía [ pre-shared key
nombre de usuario/contraseña]). Sin embargo, la complejidad también aumenta en la misma medida, con muchas más opciones de configuración que [nombre de usuario/ v2c
contraseña].
Las cadenas de comunidad pueden considerarse contraseñas que se utilizan para determinar si la información solicitada puede visualizarse o no. Es importante tener en cuenta que muchas organizaciones aún las utilizan SNMPv2
, ya que la transición SNMPv3
puede ser muy compleja, pero los servicios deben permanecer activos. Esto genera gran preocupación en muchos administradores y genera problemas que desean evitar. El desconocimiento de cómo se puede obtener la información y cómo la utilizamos los atacantes hace que el enfoque de los administradores parezca inexplicable. Al mismo tiempo, la falta de cifrado de los datos enviados también es un problema, ya que cada vez que se envían cadenas de comunidad a través de la red, pueden ser interceptadas y leídas.
La configuración predeterminada del demonio SNMP define las configuraciones básicas para el servicio, que incluyen las direcciones IP, los puertos, la MIB, los OID, la autenticación y las cadenas de comunidad.
Algunas configuraciones peligrosas que el administrador puede realizar con SNMP son:
Ajustes
Descripción
rwuser noauth
Proporciona acceso al árbol OID completo sin autenticación.
rwcommunity <community string> <IPv4 address>
Proporciona acceso al árbol OID completo independientemente de dónde se enviaron las solicitudes.
rwcommunity6 <community string> <IPv6 address>
Mismo acceso que rwcommunity
con la diferencia de utilizar IPv6.
Para rastrear SNMP, podemos usar herramientas como snmpwalk
, onesixtyone
y braa
. Snmpwalk
Se utiliza para consultar los OID con su información. Onesixtyone
Se puede usar para forzar los nombres de las cadenas de comunidad, ya que el administrador puede asignarles nombres arbitrarios. Dado que estas cadenas de comunidad se pueden vincular a cualquier fuente, identificar las cadenas de comunidad existentes puede llevar bastante tiempo.
En caso de una configuración incorrecta, obtendríamos aproximadamente los mismos resultados que snmpwalk
los mostrados anteriormente. Una vez que conocemos la cadena de comunidad y el servicio SNMP que no requiere autenticación (versiones 1 y 2c), podemos consultar la información interna del sistema como en el ejemplo anterior.
Aquí reconocemos algunos paquetes de Python instalados en el sistema. Si desconocemos la cadena de comunidad, podemos usar onesixtyone
listas SecLists
de palabras para identificarla.
Una vez más, queremos destacar que la configuración independiente del servicio SNMP nos brindará una gran variedad de experiencias diferentes que ningún tutorial puede reemplazar. Por lo tanto, recomendamos encarecidamente configurar una máquina virtual con SNMP, experimentar con él y probar diferentes configuraciones. SNMP puede ser una ventaja para un administrador de sistemas de TI, pero también una desventaja para los analistas y gerentes de seguridad.
La configuración de este servicio también se puede modificar de diversas maneras. Por lo tanto, recomendamos configurar una máquina virtual para instalar y configurar el servidor SNMP nosotros mismos. Todas las configuraciones que se pueden realizar para el demonio SNMP se definen y describen en la .
A menudo, cuando ciertas cadenas de comunidad se vinculan a direcciones IP específicas, se nombran con el nombre de host del host, e incluso se añaden símbolos a estos nombres para dificultar su identificación. Sin embargo, si imaginamos una red extensa con más de 100 servidores diferentes administrados mediante SNMP, las etiquetas, en ese caso, seguirán un patrón. Por lo tanto, podemos usar diferentes reglas para deducirlas. Podemos usar la herramienta para crear listas de palabras personalizadas. Crear listas de palabras personalizadas no es una parte esencial de este módulo, pero se pueden encontrar más detalles en el módulo " .
Una vez que conocemos una cadena de comunidad, podemos usarla con para forzar los OID individuales y enumerar la información detrás de ellos.