Antes de empezar, los invito a visitar mis estudios anteriores en exploit505.blogspot.com mientras realizo la migración completa.
Explorando SNMP: ¿Qué es y por qué es importante?
SNMP (Simple Network Management Protocol) es un protocolo que opera bajo un modelo cliente-servidor, diseñado para administrar y supervisar dispositivos en una red como routers, switches, servidores e impresoras ademas, facilita la recopilación de información y la modificación de configuraciones en estos dispositivos.
Las versiones de SNMP incluyen SNMPv1, SNMPv2 y la más reciente, SNMPv3 que mejora la seguridad mediante autenticación y cifrado de mensajes, a diferencia de las versiones anteriores donde los mensajes viajan en texto plano sin cifrado.
Parte de los Riesgos de Exponer el Servicio SNMP en Internet es que un atacante podría obtener acceso a datos confidenciales de la red como la topología, configuraciones específicas de dispositivos y otros detalles operativos comprometiendo la seguridad de la infraestructura y generando vulnerabilidades que podrían ser explotadas en el futuro.
SNMP Activo en Nicaragua: Análisis de 5,500 Dispositivos en Busca de SNMP Expuesto en Internet:
Actualmente (DIC-2023) Shodan muestra +48 mil servicios activos para Nicaragua en su base de datos, de estos, +14 mil servicios están activos en el puerto 161, puerto default para el protocolo SNMP, esto me llamó mucho la curiosidad ya que sobrepasa por +9 mil comparado con otros puertos y servicios activos a nivel nacional.
Investigando información sobre vulnerabilidades y servicios maliciosos relacionados al puerto 161, encontré un artículo relevante sobre SNMP, un post de Deral Heiland para realizar harvesting en SNMP activos.
En este artículo, el autor utiliza un script en Perl para ejecutar un comando snmpbulkwalk en cada host que exponga SNMP en el puerto 161. Cuando encuentra un dispositivo con SNMP habilitado con la community string “public”, el script recorre todas las tablas MIB, recopila los datos y los almacena en un archivo.
Me pareció fascinante replicar esto en Python, basándome en el script original de Heiland disponible en Github.
Una vez hice el test del código, procedí a crear un codigo en Python para extraer todas las direcciones IP atravez de la API de Shodan, la cual únicamente me permitió extraer 5,500 direcciones IPv4 de +14 mil dispositivos activos.
Ya con las 5,500 direcciones IPv4 activas con SNMP, procedí a ejecutar el script snm.py (snmpbulkwalk) considerando todos los riesgos legales y utilizando una VPN, buscando acceso a lectura de información mediante la community string “Public”.
El resultado total fueron 120 dispositivos que pude tener acceso mediante la community string “public”
Dentro de los archivos hay un serie de valores de carácter jerárquico los cuales identifican un valor asignado o una propiedad del dispositivo administrado vía SNMP, como por ejemplo los dispositivos conectados a la red LAN o WiFi, las interfaces de red activas, dirección MAC de dispositivos conectados y muchísima más informacion de valor.
No voy a adentrarme en la información recopilada de cada dispositivo con SNMP activo, si nó, en el nombre de identificación de cada dispositivo para tener una visual de cuales son las compañías que están en riesgo por filtrar información sensible
Como resultado de de este estudio sobre la exposición de servicios SNMP a través de internet en Nicaragua, logré analizar 5,500 dispositivos y de este considerable conjunto, únicamente 120 dispositivos arrojaron resultados positivos al utilizar la community string “Public”. Es esencial destacar que estos dispositivos pertenecen a diversas compañías de capital nicaragüense y extranjero, así como a organizaciones gubernamentales, particulares, servicios de cajeros automáticos (ATM), corporaciones y hoteles, entre otros.
Este hallazgo pone de manifiesto la vulnerabilidad de un amplio espectro de entidades ante posibles amenazas, al exponerse mediante el uso de una community string tan genérica como “Public”, en vista de estos resultados, se hace evidente la necesidad de considerar la migración a SNMPv3 para aquellos que gestionan dispositivos de forma remota. SNMPv3 ofrece capas adicionales de seguridad, incluida la identificación de usuario y la encriptación de datos, proporcionando así una solución más robusta en comparación con las versiones anteriores.
Adicionalmente, es importante implementar contraseñas sólidas al configurar servicios SNMP ya que son susceptibles a ataques de fuerza bruta, el uso de contraseñas seguras es fundamental para mitigar posibles riesgos. La exposición de servicios SNMP en Internet, como el mencionado anteriormente, deber ser tomada con extrema seriedad, dada la sensibilidad y la criticidad de los datos y dispositivos alcanzados y sin ningun tipo de seguridad.