跳到主要内容

SNMP 枚举与凭据收集

SNMP 是运行在 161/udp 上的网络管理协议,早期版本访问时只需要一个 community string,作用相当于明文口令。TCP 面很窄的主机(例如只开放 22/80)往往在 UDP 侧藏着 SNMP,因此 UDP 扫描是侦察阶段不可省略的一步。

整体流程是:先用 onesixtyone 爆破 community,再用 snmpwalk 全量拉取 MIB 数据。系统描述、进程命令行、联系人字段里经常直接存有可登录的凭据。

仅限授权环境

SNMP 爆破与全量枚举会产生明显查询流量,只能在授权测试或靶场环境中执行。


判断前提:补一轮 UDP 扫描

TCP 端口很少时,先按 端口扫描实战流程:RustScan 与 Nmap 完成常规扫描,再补 UDP:

nmap -sU --top-ports 50 <target>

常能发现 161/udp 上开放的 SNMP。常用工具:

工具用途
onesixtyonecommunity 爆破,速度快
snmpwalk全量遍历 MIB 树
snmp-check一体化枚举与信息提取

方法 A:community 爆破

onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt <target>

public 是最常见的 community,命中后即可用它进行读取。


方法 B:snmpwalk 全量拉取

snmpwalk -v 2c -c public <target>

输出量大,建议重定向到文件后按 OID 关键字筛选。


高价值信息对照

OID / 字段价值
sysDescr / sysName系统版本与主机名
sysContact联系人字段常存 Name:password 形态凭据,注意大小写归一后再尝试
hrSWRunName / hrSWRunParameters进程命令行直接暴露 --password xxxservice --user u --password p 等参数
hrSWInstalled安装包列表,判断软件版本与攻击面
网络接口发现第二块网卡与内网 IP,指明横向方向

复核要点

  • 拿到候选凭据后,对 SSH 等已开放服务逐一验证。
  • 命令行中的口令注意大小写归一与变体。
  • 记录内网网卡信息,作为下一步内网探测的输入。

防御建议

  1. 修改默认 community string,避免 public 等弱口令直接可用。
  2. 迁移到 SNMPv3,启用认证与加密。
  3. 用 ACL 限制可访问 SNMP 的源地址。
  4. 敏感参数不进入命令行,避免被进程列表类信息泄露。

相关知识