El servicio SNMP es muchas veces olvidado por el administrador del equipo o servidor, dejandolo con la configuración por defecto.
Un servicio SNMP con permisos de escritura (rwcommunity) en un sistema Linux puede ser explotado para ganar acceso y ejecutar comandos en el servidor.
EXTENDER SERVICIOS
Aunque no tienes permisos para modificar las entradas existentes en el snmpd.conf, si que es posible añadir comandos adicionales de SNMP por qué el permiso "MAX-ACCESS" en el MIB es "read-create".
Añadir un nuevo comando básicamente funciona añadiendo una fila extra a la tabla "nsExtendObjects":
Al injectar un comando que ejecutar en el servicio SNMP, NET-SNMP-EXTEND-MIB necesita que utilices la ruta completa al ejecutable. El binario o script llamado tambien debe existir y ser ejecutable.
Funciona
Podemos ejecutar el comando que hemos injectado enumerándolo con snmpwalk.
Vemos que el comando es /bin/echo:
El comando se ejecuta cuando es leído. run-on-read()
El comando fué ejecutado finalmente durante snmpwalk:
OBTENER UNA SHELL CON NET-SNMP EXTEND
La forma más rápida y automatizada de hacerlo es con la siguiente herramienta en Python: