
推測可能なデフォルトの EngineID に起因する CVE-2026-11116 SNMPv3 認証バイパスを実証します。Python pysnmp によるシミュレーションと、攻撃の検出および理解のためのガイダンスを備えています。
# 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.")
SNMPv3 デバイスが、既知または推測が容易な EngineID(例: 全ゼロ、または MAC アドレスから導出されたもの)を使用しています。攻撃者は認証キーとプライバシーキーを事前計算し、SNMPv3 のセキュリティをバイパスして、デバイスへの読み書きアクセスを取得できます。
このシミュレーションは警告を出力します。実際の攻撃では、EngineID をスニッフィングし、ブルートフォース攻撃またはデフォルトパスワードの使用を行います。実行コマンド:
pip install pysnmp
python snmp_agent_sim.py