Reconocimiento y ataque al protocolo SNMP

Introducción

En este artículo, discutiremos los diversos métodos que uno podría tomar para realizar el reconocimiento en el protocolo SNMP. Como ya sabrás, SNMP revela demasiada información sobre objetivos que podría provocar que los atacantes comprometan una red de objetivos.

Hoy, exploraremos las herramientas disponibles que puedes usar para consultar información sobre objetivos.

Descripción general de SNMP (Simple Network Management Protocol – Protocolo simple de administración de red)

Existen numerosos protocolos disponibles en la actualidad, y SNMP es uno de los menos entendidos. SNMP nos permite administrar computadoras y dispositivos de red.

SNMP no tiene estado y está orientado a datagramas. Te permite administrar computadoras dentro de la red. Las computadoras administradas tendrán un agente que se comunica con la computadora del administrador.

Estos agentes enviarán información al administrador, que se almacenará en una base de datos conocida como Base de información de administración (MIB). Esto es una organización jerárquica de la información recopilada en cada dispositivo SNMP dentro de la red.

Esta jugosa información es invaluable para los hackers que buscan información SNMP dentro de la red. Los hackers pueden apuntar a esta base de datos para obtener información sobre hosts en la red, como:

  • Usuarios: Esto puede describir la cantidad de cuentas de usuario y sus nombres. Los grupos de usuarios y la información de creación de cuentas también se pueden obtener utilizando SNMP
  • Software instalado: la lista de software instalado se puede obtener fácilmente de la máquina de destino fácilmente mediante SNMP. Esto puede ser extremadamente valioso al determinar las versiones de software instalado para un ataque más específico
  • Puertos abiertos: los hackers pueden determinar los puertos abiertos con más sigilo al consultar la información de SNMP. Esto en lugar de realizar una exploración activa que podría aletar a los administradores del sistema y a otros
La comunicación SNMP se lleva a cabo con unidades de datos de protocolo (PDU), de las cuales hay varios tipos diferentes. Entre estas podemos mencionar:
  • GetRequest: esta PDU es enviada por el administrador SNMP para recuperar una o más variables MIB solicitadas especificadas en la PDU
  • SetRequest. Esta PDU es enviada por el administrador SNMP para establecer una o más variables MIB especificadas en la PDU con el valor especificado en la PDU
  • GetNextRequest: esta PDU es enviada por el administrador SNMP para recuperar la siguiente variable MIB que se especifica en la PDU. Puede tener múltiples solicitudes en la PDU. Esta PDU es utilizada principalmente por el administrador SNMP para recorrer la MIB del agente SNMP.
  • Trap. Este es un mensaje no solicitado enviado por el agente SNMP para notificar al administrador SNMP sobre un evento significativo que ocurrió en el agente.

Existen algunas PDU que están más allá del alcance de este artículo, como GetBulkRequestResponse e InformRequest.

Versiones de SNMP

Actualmente, se utilizan principalmente tres versiones de SNMP. Su diferencia está en su implementación y seguridad a través de la cadena comunitaria. La cadena comunitaria es como una contraseña, donde la autenticación al administrador se realiza a través de una cadena c “privada”.

Las siguientes son las diferentes versiones de SNMP:

  • SNMPv1: esta versión de SNMP es extremadamente pobre en seguridad, ya que utiliza autenticación de texto sin cifrar. La cadena comunitaria aquí está configurada de forma predeterminada en “pública”.
  • SNMPv2: esta versión de SNMP mejoró de la v1 en términos de rendimiento y seguridad. Sin embargo, no era inversamente compatible con v1, por lo tanto, no fue ampliamente adoptada.
  • SNMPv3: esta versión de SNMP mejoró considerablemente en términos de seguridad y rendimiento de v1 y v2. Introdujo controles de integridad y encriptación. Sin embargo, todavía no se implementa ampliamente en muchas organizaciones

Usando la cadena comunitaria “pública”, es posible consultar la MIB para obtener información de hosts particulares dentro de la red. También podemos usar la cadena comunitaria “privada” para realizar cambios de configuración en los sistemas de la red.

Atacando SNMP

Una de las herramientas de consulta SNMP comunes que viene dentro de Kali Linux es snmp-check. Esta herramienta nos permite recopilar mucha información de un objetivo, como se discutió anteriormente, y mucho más.

Metasploit también viene cargado con una lista de MIB predeterminadas en su base de datos. Los utiliza para consultar el dispositivo para obtener más información, según el nivel de acceso que se obtenga.

Para iniciar snmp-check, tienes que abrir la terminal de Kali Linux y escribir “snmp-check”. Verás una pantalla similar a la siguiente:

Una vez abierta, obtenemos un manual de uso básico que nos muestra cómo usar la herramienta.

Ahora consultaremos alguna información de nuestro host de destino. Esta información se consulta desde la MIB del host de destino. Es importante tener en cuenta que esto solo funcionará para SNMPv1 y SNMPv2, no para SNMPv3.

Obteniendo información de un objetivo

Ahora echemos un vistazo a cómo podemos recopilar información jugosa de un objetivo dentro de nuestra red. Decidimos usar nuestra impresora de destino dentro de nuestra red local para consultar información accesible.

La captura de pantalla a continuación muestra lo que pudimos obtener después de pasar una comprobación rápida de la dirección IP de nuestra impresora.

snmp-check puede exponer la información del sistema de la impresora afectada. La cantidad de información a la que podamos acceder dependerá de los registros MIB disponibles y del tipo de dispositivo al que se accede.

También podemos ver a continuación que podemos leer la información de la red:

La captura de pantalla anterior muestra las estadísticas de red del objetivo. También podemos ver la información de IP de la red, como se muestra a continuación:

También podemos ver la información de la interfaz de red:

La herramienta también nos permite ver información del dispositivo:

Como podemos ver arriba, podemos determinar con precisión la serie exacta de impresoras que está en uso y su estado actual. También podemos ver la información de enrutamiento de la red, como se muestra en la siguiente captura de pantalla:

La información a la que se accedió anteriormente puede variar bastante. Accedimos a un dispositivo de desbloqueo de puertas de enlace y recibimos resultados casi similares. Esto se muestra a continuación:

Parte de la otra información que podemos recibir de otros hosts incluye información de enrutamiento, conexiones TCP y puertos de escucha.

Ahora discutamos brevemente cómo podemos prevenir los ataques basados ​​en SNMP.

Defensa contra ataques basados ​​en SNMP

Para evitar ataques basados ​​en SNMP, debemos asegurarnos de que los dispositivos que tienen SNMP habilitado pero que no lo requieren deben deshabilitarse. SNMP también debe bloquearse en el perímetro de la red si no es necesario dentro de la red.

Además, la cadena de lectura comunitaria de SNMP predeterminada debe cambiarse de pública y la cadena de escritura comunitaria predeterminada de privada. Estas deben cambiarse a diferentes cadenas más largas y difíciles de adivinar.

Un último paso es actualizar a SNMP v3, que es mucho más seguro que v1 y v2.

Si permites que SNMP permanezca abierto, los hackers pueden obtener valiosa información. Por ejemplo, información de red de la tabla ARP, nombres de usuario y puertos TCP abiertos que pueden permitirles atacar aún más el sistema.

Conclusión

El protocolo SNMP puede ser bastante beneficioso para los hackers. Sobre todo, los hackers que conocen las herramientas que se deben usar y la información que se debe recopilar dentro de la red.

Conocer las herramientas y el enfoque correctos puede ahorrarte un buen rato en tu reconocimiento. Además, revisamos snmp-check y algunos comandos que pueden ser muy beneficiosos durante un ejercicio de hacking.

Deja un comentario