SNMP enumeration
Arsenal completo de comandos en la cheatsheetSNMP (Simple Network Management Protocol) sirve para monitorizar y administrar dispositivos de red. Escucha en UDP/161, y ahí está su trampa: como muchos escaneos rápidos solo miran TCP, un SNMP abierto pasa desapercibido. Cuando los puertos TCP no dan pie, escanear UDP es obligatorio.
Descubrir el puerto y la community
En SNMPv1/v2c el "control de acceso" es una simple contraseña compartida, la community string. Por defecto suele ser public (lectura) y private (lectura/escritura). Primero se confirma el puerto y, si public no vale, se prueba una lista de communities en masa:
sudo nmap -sU -p161 --open <ip> # ¿UDP 161 abierto?
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt <ip>Volcar la MIB
El árbol MIB (organizado en OIDs) puede revelar procesos, software instalado, interfaces, usuarios, rutas, e incluso cadenas de configuración con nombres de servicios o credenciales que el administrador metió sin pensar que serían legibles:
snmpwalk -v2c -c public <ip> # volcado completo
snmpbulkwalk -v2c -c public <ip> .1 # mucho mas rapido (GETBULK)
snmp-check <ip> -c public # salida legible (usuarios, procesos, red)
braa public@<ip>:.1.3.6.* # fuerza bruta rapida de OIDs
# OIDs de alto valor:
snmpwalk -v2c -c public <ip> 1.3.6.1.2.1.25.4.2.1.2 # procesos en ejecucion (hrSWRunName)
snmpwalk -v2c -c public <ip> 1.3.6.1.2.1.25.6.3.1.2 # software instalado
snmpwalk -v2c -c public <ip> 1.3.6.1.4.1.77.1.2.25 # usuarios (LanMgr, Windows)
snmpwalk -v2c -c public <ip> 1.3.6.1.2.1.25.4.2.1.5 # linea de comando de cada proceso (¡credenciales!)La línea de comando de los procesos (hrSWRunParameters) es especialmente jugosa: a menudo contiene contraseñas pasadas como argumento.
SNMPv3
SNMPv3 sí añade autenticación y cifrado, pero aun así puede enumerar usuarios sin credenciales, lo que alimenta un password-spraying posterior:
snmpwalk -v3 -l noAuthNoPriv -u <user> <ip> # sondeo de usuario validoRequisitos
Conectividad UDP al 161 y, en v1/v2c, conocer o adivinar la community de lectura. Es enumeración pura: SNMP no suele ser el objetivo final, sino la pieza que orienta el ataque (en UnderPass reveló el servicio interno daloRADIUS y el dominio, redirigiendo toda la enumeración al verdadero punto de entrada).
Cómo detectarlo. El sondeo es UDP, sin conexión, así que la firma es de volumen y patrón: un solo origen haciendo un snmpwalk/snmpbulkwalk genera cientos de GET-NEXT secuenciales sobre el mismo agente en segundos, muy distinto de la consulta periódica de un sistema de monitorización conocido. Intentos con varias community strings (onesixtyone) aparecen como una ráfaga de peticiones con distintos valores desde una IP que no es el NMS. Un IDS de red que inspeccione UDP/161 y una lista blanca de estaciones de gestión delatan cualquier origen inesperado.
Defensa. Cambiar las community por defecto, restringir SNMP a hosts de gestión (ACL en el agente y en el firewall), no exponerlo a Internet, y migrar a SNMPv3 con autenticación y cifrado. Alimenta el password-spraying y la reutilización de credenciales cuando lo filtrado son usuarios o contraseñas.