
Demuestra la omisión de autenticación SNMPv3 de CVE-2026-11116 causada por EngineIDs predeterminados adivinables, con una simulación en Python con pysnmp y una guía para detectar y comprender el ataque.
# snmp_agent_sim.py - SNMPv3 agent using well-known EngineID
from pysnmp.hlapi import *
def snmp_get(engine_id=SnmpEngineID(hexValue='8000000001020304')):
iterator = getCmd(
SnmpEngine(engineID=engine_id),
CommunityData('public', mpModel=0), # not v3, but demo
UdpTransportTarget(('localhost', 161)),
ContextData(),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))
)
errorIndication, errorStatus, errorIndex, varBinds = next(iterator)
print(varBinds)
# Vulnerability: EngineID is guessable; attacker can compute authentication keys offline.
print("SNMPv3 with default EngineID vulnerable to key derivation attacks.")
Un dispositivo SNMPv3 utiliza un EngineID bien conocido o fácilmente adivinable (por ejemplo, todo ceros o derivado de la dirección MAC). Un atacante puede precalcular las claves de autenticación y privacidad, omitiendo la seguridad de SNMPv3 y obteniendo acceso de lectura/escritura al dispositivo.
La simulación imprime una advertencia; un ataque real implica esnifar el EngineID y aplicar fuerza bruta o usar contraseñas predeterminadas. Ejecute:
pip install pysnmp
python snmp_agent_sim.py