我在 Kali 上使用 snmpwalk 5.9.3,并尝试发送 SNMPv3 请求,但是我在命令行中输入的设置不用于填充发送的请求。
例如,当我尝试:snmpwalk -v 3 -l authPriv -u my_user -a SHA-256 -A auth_password -x AES-256 -X priv_password 192.168.0.1
并查看 Wireshark 中发送的请求时,我可以看到缺少用户名、身份验证参数和隐私参数。
Wireshark 跟踪:
为什么我的设置没有在发送的请求中使用?
我尝试使用 v 1 et 2c 发送 SNMP 请求并设置一个社区,一切按预期进行,所以我的问题仅在使用 v 3 时出现。
答案1
在 Wireshark 中,转到“编辑”->“首选项”->“协议”->“SNMP”,然后单击用户表:Edit
.然后填写您的 SNMPv3 身份验证信息,并再次检查您的网络跟踪。
显然 SNMPv3 身份验证字段是哈希值,所以如果你不知道应该在那里,您无法从中获得任何有用的信息(至少不是微不足道的)。因此 Wireshark 甚至不会尝试分析它们,<MISSING>
而是指示任何与身份验证相关的字段。
此外,SNMPv3 引擎 ID 对于身份验证哈希来说是必需的,而客户端最初并不知道代理的当前引擎 ID。因此,第一个查询将是未经身份验证的查询,显然查询的是... 什么都没有(零 OID)。
SNMPv3 代理将以 OID .1.3.6.1.6.3.15.1.1.4.0 报告进行响应(= 由于查询引用了未知引擎 ID 而丢弃的数据包数量)。这显然只是为了向请求者提供引擎 ID,以便进行真正的身份验证。第一个查询之后的任何查询都应正确填写身份验证字段。