Fuga de Información por SNMP

De vez en cuando, en momentos de procrastinación me da por buscar fugas de información causadas por malas configuraciones o por desconocimiento de los administradores. En esta entrada, voy a contaros cómo un ISP estaba proporcionando información de sus clientes (nombre y apellidos) sin que se hubieran percatado. Ya han corregido el problema (me puse en contacto con ellos para avisarles del problema), pero seguro que volverá a ocurrir a algún que otro ISP.

El protocolo SNMP

SNMP son las siglas de Simple Network Management Protocol, Protocolo Simple de Gestión de Red. Mediante este protocolo se puede conocer el estado de los diferentes equipos de una red (uso de CPU, de RAM, temperatura ambiental...) e incluso se puede cambiar la configuración de dichos dispositivos (encender o apagar algún interfaz, reiniciar el equipo...)

El caso es que en muchas redes se tiene activo este protocolo y no se filtra adecuadamente el acceso, por lo que es posible interactuar con los sistemas, casi siempre con permiso para leer alguna propiedad del equipo y algunas veces incluso para escribir. Mi gran amigo Alférez tiene una fabulosa entrada en su blog describiendo una anécdota en la que durante sus vacaciones encontró que el hotel tenía activado y accesible el protocolo, incluso con permiso de escritura.

La fuga de Información

Buscando en Shodan encontré una dirección IP que tiene el puerto SNMP accesible y que, preguntando por el OID iso.3.6.1.2.1.1.1.0 encontramos que la respuesta es:

snmpwalk -c public 1x.x.x.x  -v 1 iso.3.6.1.2.1.1.1.0  ; done
iso.3.6.1.2.1.1.1.0 = STRING: "Linux francisco.................  2.4.12.17 #1 Tue Sep 17 17:19:19 UTC 2019 smips"

Nota: he ocultado tanto la IP como los apellidos, pero estaban accesibles

Vaya, ¿ocurrirá lo mismo a las IP del rango? Podemos probar con un sencillo bucle en bash:

for i in {0..255}; do snmpwalk -c public 1x.x.x.$i  -v 1 iso.3.6.1.2.1.1.1.0  ; done
Timeout: No Response from 1x.x.x.0
Timeout: No Response from 1x.x.x.1
Timeout: No Response from 1x.x.x.2
iso.3.6.1.2.1.1.1.0 = STRING: "Linux francisco...."
iso.3.6.1.2.1.1.1.0 = STRING: "Linux carlos..."
...
Timeout: No Response from 1x.x.x.xxx
..
iso.3.6.1.2.1.1.1.0 = STRING: "Linux maria..."
iso.3.6.1.2.1.1.1.0 = STRING: "Linux nereida..."

Vaya, pues sí que todos los equipos están mostrando información. Pues nada, un par de correos electrónicos, unas llamadas de teléfono y el ISP corrigió el problema. Este ISP ya ha resuelto el problema pero... ¿habrá otros proveedores que expongan los datos de sus clientes?

Previous Post