你知道 snmpcheck 吗?很好,snmpen 做的事情一样。它是另一个针对启用 SNMP 的主机的枚举器。它最初是作为 snmpcheck 的直接替代品而开发的,因为 snmpcheck 在 2018/2019 年时已不再维护。如今,snmpen 已经有了自己的核心和思路,但仍然与 snmpcheck 共享类似的 CLI 接口。
枚举针对符合 RFC1157 的系统进行。繁重的工作由 pysnmp 完成。
pip install snmpen
对于 Nix 或 NixOS 用户,有一个可用的包。请记住,最新版本可能只存在于 unstable 频道中。
nix-env -iA nixos.snmpen
该工具支持 IPv4 地址、IPv6 地址和 FQDN 作为输入。
snmpen -h
options:
-p, --port PORT SNMP 端口(默认:161)
-c, --community COMMUNITY
SNMP 团体字符串(默认:public)
-s, --snmp-version VERSION
SNMP 版本:1 或 2c(默认:1)
-w, --write 检测写访问权限(不属于枚举的一部分)
-d, --disable_tcp 禁用 TCP 连接枚举
-t, --timeout SECONDS
超时时间(秒)(默认:5)
-r, --retries RETRIES
请求重试次数(默认:1)
-o, --output FILE 将格式化的枚举输出写入 FILE
--output-format FORMAT
输出格式:auto、plain 或 rich(默认:auto)
-f, --hosts-file FILE
从 FILE 读取目标(每行一个主机)
-v, --version 显示脚本版本并退出
-h, --help 显示此帮助信息并退出
用法示例:
snmpen 172.16.1.1
snmpen 2001:db8::10
snmpen demo.pysnmp.com
snmpen 172.16.1.1 -o
snmpen -f hosts.txt
snmpen --output-format plain -f hosts.txt
snmpen --output-format rich -o report.txt 172.16.1.1
snmpen -c private -s 2c 172.16.1.1
snmpen -w -d -t 10 172.16.1.1
主机文件支持每行一个目标。空行和以 # 开头的行会被忽略。
当 -o 不带文件名使用时,snmpen 会为每个成功的目标写入一个文件,文件名为 <target>.txt。
系统信息部分还会显示检测到的该主机支持的 SNMP 版本(目前支持 SNMPv1 和 SNMPv2c 检测)。
snmpen 采用 MIT 许可证。