Herramientas y automatización para SNMP
El workflow SNMP define versiones, credenciales, vistas y OID. Automatiza una de esas preguntas cada vez.
Selección
Sección titulada «Selección»| 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:
onesixtyone -c communities.txt -i targets.txtConfirma 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:
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:
sudo nmap -sU -p 161 \ --script snmp-info,snmp-sysdescr,snmp-interfaces \ --script-args creds.snmp=COMMUNITY TARGET_IPComprueba 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.
Frecuencia y discrepancias
Sección titulada «Frecuencia y discrepancias»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:
snmpwalk -v2c -c COMMUNITY -On -t 2 -r 1 \ TARGET_IP 1.3.6.1.2.1.1Dos herramientas pueden diferir por versión, OID raíz, vista, reintentos o tamaño de respuesta. Conserva esos parámetros junto al output.
SNMPv3 y diagnóstico del cliente
Sección titulada «SNMPv3 y diagnóstico del cliente»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:
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.1Las 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:
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.txtCompara el debug con una captura UDP 161 y conserva el código de error SNMP. Un timeout no se transforma en credencial incorrecta.