Ir al contenido

Herramientas y automatización para SNMP

Por

Madurezreviewed
Última revisión
Publicado
Última actualización

El workflow SNMP define versiones, credenciales, vistas y OID. Automatiza una de esas preguntas cada vez.

Necesidad Herramienta Diferencia
consulta o recorrido controlado Net-SNMP cliente de referencia y soporte v3
probar communities v1/v2c en varios hosts onesixtyone descubrimiento rápido, no inventario
consultar muchos OID concretos braa sintaxis compacta, sin SNMPv3
obtener un inventario inicial NSE salida integrada con Nmap

onesixtyone -c recibe el archivo de communities y -i el de hosts:

Probar una matriz acotada
onesixtyone -c communities.txt -i targets.txt

Confirma cada coincidencia con snmpget sobre sysDescr.0. Un timeout no distingue community incorrecta, versión errónea, filtro ni pérdida.

braa expresa destino, community y OID en un argumento:

Consultar el grupo system
braa 'COMMUNITY@TARGET_IP:1.3.6.1.2.1.1.*'

Úsalo cuando ya conoces community y OID. Para SNMPv3 o diagnósticos precisos, vuelve a Net-SNMP.

snmp-info y snmp-sysdescr consultan identidad. snmp-interfaces, snmp-processes y snmp-netstat recorren ramas específicas:

Inventario SNMP dirigido
sudo nmap -sU -p 161 \
--script snmp-info,snmp-sysdescr,snmp-interfaces \
--script-args creds.snmp=COMMUNITY TARGET_IP

Comprueba el catálogo instalado con nmap --script-help 'snmp-*'. El glob también selecciona fuerza bruta y posibles operaciones de escritura. snmp-brute solo encaja con diccionario, concurrencia, impacto y parada definidos.

En Net-SNMP, -v2c selecciona SNMPv2c y -c COMMUNITY aporta la community string. -t fija el timeout por intento y -r los reintentos. -On conserva OID numéricos y evita diferencias entre instalaciones de MIB:

Recorrer una rama de forma comparable
snmpwalk -v2c -c COMMUNITY -On -t 2 -r 1 \
TARGET_IP 1.3.6.1.2.1.1

Dos herramientas pueden diferir por versión, OID raíz, vista, reintentos o tamaño de respuesta. Conserva esos parámetros junto al output.

SNMPv3 añade usuario y nivel de seguridad. -v3 selecciona la versión. -l authPriv exige autenticación y privacidad. -u fija el usuario. -a y -A eligen el algoritmo y la passphrase de autenticación. -x y -X hacen lo mismo para privacidad:

Recorrer una vista SNMPv3 autenticada y cifrada
snmpwalk -v3 \
-l authPriv \
-u USERNAME \
-a SHA \
-A AUTH_PASSPHRASE \
-x AES \
-X PRIV_PASSPHRASE \
-On \
-t 2 \
-r 1 \
TARGET_IP 1.3.6.1.2.1.1

Las passphrases aparecen en el historial y en la lista de procesos mientras el comando está activo. Para trabajo sostenido, utiliza un fichero de configuración de Net-SNMP con permisos restrictivos y registra solo su identificador saneado.

Los niveles noAuthNoPriv, authNoPriv y authPriv producen requisitos distintos. Un error de autenticación no permite inferir que el usuario no existe. Engine ID, boots/time, algoritmo, clave localizada y vista pueden explicar el fallo.

-D TOKEN habilita debug para subsistemas concretos de Net-SNMP. Antes de una captura amplia, usa -Ddumpv_recv,dumpv_send sobre un único snmpget. El output muestra detalles internos y puede incluir credenciales derivadas o payloads:

Diagnosticar una consulta SNMPv3 acotada
snmpget -v3 \
-l authPriv \
-u USERNAME \
-a SHA \
-A AUTH_PASSPHRASE \
-x AES \
-X PRIV_PASSPHRASE \
-t 2 \
-r 0 \
-Ddumpv_recv,dumpv_send \
TARGET_IP 1.3.6.1.2.1.1.1.0 \
2>evidence/snmp-debug.txt

Compara el debug con una captura UDP 161 y conserva el código de error SNMP. Un timeout no se transforma en credencial incorrecta.