
Démontre le contournement d'authentification SNMPv3 CVE-2026-11116 causé par des EngineIDs par défaut devinables, avec une simulation Python pysnmp et des conseils pour détecter et comprendre l'attaque.
# 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 périphérique SNMPv3 utilise un EngineID connu ou facilement devinable (par exemple, composé uniquement de zéros ou dérivé de l'adresse MAC). Un attaquant peut pré‑calculer les clés d'authentification et de confidentialité, contournant ainsi la sécurité SNMPv3 et obtenant un accès en lecture/écriture au périphérique.
La simulation affiche un avertissement ; une véritable attaque consiste à renifler l'EngineID et à effectuer une attaque par force brute ou à utiliser des mots de passe par défaut. Exécutez :
pip install pysnmp
python snmp_agent_sim.py