Recolección de información de dispositivos con el protocolo SNMP

 

https://www.onlinetis.com

Recolección de información de dispositivos con el protocolo SNMP

snmp-check es una herramienta de enumeración en Kali Linux diseñada para automatizar la recolección de información de dispositivos que ejecutan el protocolo SNMP (Simple Network Management Protocol).

Extrae datos valiosos de un objetivo (como routers, switches o servidores) utilizando cadenas de comunidad (community strings), por defecto la clásica public.

🛠️ Sintaxis y Uso Básico

La sintaxis general del comando es:

Bash
snmp-check [opciones] <dirección-IP>

Ejemplo Básico

Para escanear un objetivo en la IP 192.168.1.50 usando la comunidad por defecto (public):

Bash
snmp-check 192.168.1.50

Si el servicio SNMP utiliza una cadena de comunidad personalizada o un puerto diferente:

Bash
snmp-check -c mi_comunidad -p 161 192.168.1.50

⚙️ Opciones Principales

OpciónDescripciónEjemplo
-cEspecifica la cadena de comunidad (community string). Por defecto: public.-c private
-pEspecifica el puerto SNMP. Por defecto: 161.-p 161
-vVersión del protocolo SNMP a utilizar (1 o 2c). Por defecto: 1.-v 2c
-wHabilita la comprobación de permisos de escritura (write check).-w
-dDesactiva el reenvío de consultas TCP/UDP (desactiva algunas comprobaciones).-d
-tTiempo de espera en segundos (timeout). Por defecto: 5.-t 10
-rNúmero de reintentos (retries). Por defecto: 1.-r 3

🔍 ¿Qué Información Extrae?

Cuando snmp-check encuentra un servicio SNMP expuesto, recopila automáticamente:

  • Información del Sistema: Nombre del host, descripción del SO, tiempo de actividad (uptime), contacto de administración y ubicación.

  • Cuentas de Usuario: Usuarios del sistema local.

  • Procesos en Ejecución: Lista de programas y servicios activos.

  • Interfaces de Red: Direcciones IP, MAC, estado operativo y tráfico de red.

  • Puertos Abiertos: Conexiones TCP y puertos UDP a la escucha.

  • Rutas de Red: Tabla de enrutamiento del dispositivo.

  • Almacenamiento y Discos: Dispositivos montados, memoria RAM y capacidad de disco.

  • Software Instalado: Aplicaciones registradas en el sistema.

Nota de Seguridad: En auditorías de seguridad (pentesting), el uso de SNMP v1 y v2c es muy común para descubrir vectores de ataque iniciales debido al envío de credenciales en texto plano (public / private).

 

Asegurar o desactivar correctamente SNMP es un paso fundamental en el bastionado (hardening) de infraestructura de red y servidores, ya que las versiones antiguas (v1 y v2c) transmiten credenciales y datos del sistema en texto claro sin cifrado.

🚫 Opción 1: Deshabilitar el Servicio (Recomendado si no se utiliza)

Si el sistema no forma parte de una consola centralizada de monitorización (como Zabbix, Nagios o PRTG), lo más seguro es desactivar y detener el servicio por completo.

En Linux (Debian / Ubuntu / RHEL)

Bash
# Detener el servicio SNMP inmediatamente
sudo systemctl stop snmpd

# Deshabilitar para que no inicie con el sistema
sudo systemctl disable snmpd

En Routers / Switches Cisco IOS

Plaintext
Router(config)# no snmp-server

En Windows Server (PowerShell)

PowerShell
# Detener y deshabilitar el servicio SNMP
Stop-Service -Name "SNMP"
Set-Service -Name "SNMP" -StartupType Disabled

🛡️ Opción 2: Asegurar SNMP (Buenas Prácticas de Hardening)

Si necesitas utilizar SNMP para monitorización, aplica el principio de mínimo privilegio y cifrado siguiendo estas pautas:

1. Migrar Obligatoriamente a SNMPv3

Las versiones v1 y v2c no soportan autenticación robusta ni cifrado. SNMPv3 introduce el modelo USM (User-based Security Model), ofreciendo tres niveles de seguridad:

  • authPriv (Obligatorio en producción): Proporciona autenticación con hash (SHA-256 / SHA-512) y cifrado de datos (AES-128 / AES-256).

  • Evita: noAuthNoPriv y authNoPriv.

Ejemplo de Configuración en Linux (/etc/snmp/snmpd.conf):

Plaintext
# Crear usuario con autenticación SHA y cifrado AES
createUser adminUser SHA-256 "ClaveAutenticacionSegura123!" AES-256 "ClaveCifradoSegura456!"

# Asignar permisos de lectura únicamente (read-only)
rouser adminUser authpriv

Ejemplo de Configuración en Cisco IOS:

Plaintext
# Definir el grupo SNMPv3 con cifrado obligatorio (priv)
Router(config)# snmp-server group MONITOR-GROUP v3 priv read VIEW-LECTURA

# Crear el usuario dentro del grupo con contraseñas fuertes
Router(config)# snmp-server user adminUser MONITOR-GROUP v3 auth sha ClaveAuth123! priv aes 256 ClavePriv456!

2. Cambiar o Eliminar Cadenas de Comunidad por Defecto

Si por restricciones de compatibilidad debes mantener SNMPv2c temporalmente:

  • Elimina las cadenas public y private.

  • Usa valores aleatorios y complejos: Trata la cadena de comunidad como si fuera una contraseña compleja (mínimo 16 caracteres alphanuméricos con símbolos).

  • Restringe a Solo Lectura (Read-Only): Nunca expongas la comunidad con permisos de escritura (Read-Write / rw), ya que permite modificar parámetros críticos de la red o del SO.

3. Restricción por ACLs / Firewall (Acceso Limitado)

Limita la escucha del puerto UDP 161 únicamente a las direcciones IP específicas del servidor de monitorización.

En Linux (Firewalld / UFW):

Bash
# UFW: Permitir solo la IP de monitorización
sudo ufw allow from 192.168.1.100 to any port 161 proto udp

En Cisco IOS (Vía ACL):

Plaintext
# Crear Lista de Control de Acceso con la IP autorizada
Router(config)# ip access-list standard ACL-SNMP
Router(config-std-nacl)# permit host 192.168.1.100
Router(config-std-nacl)# deny any log

# Aplicar la ACL al grupo o comunidad SNMP
Router(config)# snmp-server community MiComunidadCompleja123! RO ACL-SNMP

4. Aislar la Interfaz de Escucha y Red de Gestión

  • VLAN de Gestión: Canaliza el tráfico SNMP a través de una red fuera de banda (Out-of-Band Management VLAN) aislada del tráfico de usuarios.

  • Binding Local: Configura el demonio SNMP para que escuche exclusivamente en la IP de gestión interna o en la interfaz loopback, no en la interfaz pública 0.0.0.0.

En /etc/snmp/snmpd.conf (Linux):

Plaintext
# Escuchar únicamente en la interfaz interna de gestión
agentaddress udp:192.168.10.5:161

📋 Resumen de Comprobación (Checklist)

MedidaEstado Ideal
Versión del ProtocoloUsar exclusivamente SNMPv3 (authPriv).
Algoritmos recomendadosAutenticación: SHA-256 o superior. Cifrado: AES-128/256.
Acceso a DatosSolo Lectura (RO / rouser). Evitar permisos de escritura.
Control de RedBloquear el puerto UDP 161 mediante ACLs / Firewalls excepto para el servidor SIEM/NMS.
Cadenas por defectoEliminar public / private. Usar frases complejas si v2c es inevitable.

https://www.onlinetis.com

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Como utilizar Fierce en kali linux

Hacking y ciberseguridad en kali linux con atk6-thcping6