Day 16 Simple Network Management Protocol (SNMP) 相关安全

Simple Network Management Protocol (SNMP)
SNMP 简易网路管理通讯协定,是一个进行蒐集与管理网路设备的协定,在 OSI 第七层应用程序层,并透过 UDP 161 port 进行请求。

路由器、交换器、服务器、印表机、NAS、防火墙、WLAN 控制器都有可能使用到 SNMP 协定。

SNMP 元件

  1. 设备:设备可透过单向传输(读取)或双向传输(读取、写入)
  2. Agent:管理设备上的软件,负责处理传输封包,会将设备的设定参数转换成 SNMP 格式
  3. Network Management System (NMS):网路管理系统负责管理与监控网路设备的软件,

SNMP Management Information Base (MIB) 管理资讯资料库

SNMP Agent 都有一个设备的参数资料库,而 SNMP 的管理系统(NMS)会使用这个设备参数的资料库,向 Agent 请求设备的资讯,并根据 NMS 的需求,转换资讯,而管理器跟 Proxy 之间共童使用的资料库就是 MIB

MIB 架构

  • 以树状结构,包含物件识别码(OID)
  • 每一个 OID 都是唯一的识别码
  • 树状最顶端的 OID 可以取得最多的状态资讯

SNMP 指令

从 NMS 可以透过 SNMP 协定发送指令:

  • GET
    • 从网路管理系统向设备传送,可读取设备上的数值
  • GET NEXT
    • 取得 MIB tree 下一个 OID 值
  • GET BULK
    • 从 MIB 中取得大量资料
  • SET
    • 管理员可修改或设定设备的数值
  • TRAPS
    • Agent 对 SNMP 管理系统发出的事件指令
    • 使用 UDP 162
  • INFORM
    • SNMP 管理系统接收指令後回传确认
    • 使用 UDP 162
  • RESPONSE
    • 回传 SNMP 网路管理系统执行的值或讯号

设备帐号密码

  • SNMP 基於 community 的概念
    • community string 如同密码,预设三个群组:
      1. read-only:以 public 设定为预设的 SNMP community 字串
      2. read-write:以 字串private 设定为预设的 SNMP community
      3. trap

常见弱点

  1. 预设 community string
    • 窃取敏感资讯
    • 窜改设定
    • DOS
  2. 设定错误
  3. 无身分验证
  4. 传输过程无加密
  5. 预设密码
版本 说明 规范版本
SNMP v1 community string 安全 RFC 1155 , 1157
SNMP v2c (without secure) community string 安全 RFC 1901、RFC 1905、RFC 1906 和 RFC 2578
SNMP v2u User 安全 RFC 1909 RFC 1910
SNMP v2 (secure) User 安全 --
SNMP v3 有加密,使用者帐号密码安全 RFC 1905、RFC 1906、RFC 3411、RFC 3412、RFC 3414 和 RFC 3415

工具 Onesixtyone

暴力破解 community string
onesixtyone [ip range] public

工具 Smpwalk

该工具可查询 MIB 值

查询 snmpwalk 的相关指令
snmpwalk --help

查询目标 MIB值

  • -v 代表 SNMPv1
  • -c community string 值为 public
    snmpwalk -c public -v1 [target]

查询单一物件(OID)的资讯
snmpwalk -c public -v1 [target] [OID]

Nmap Snmp

ls -l /usr/share/nmap/scripts/snmp*


<<:  【把玩Azure DevOps】Day19 CI/CD的关键:Azure DevOps Agent

>>:  Day16 - 物理模拟篇 - 弹力、引力与磁力I - 成为Canvas Ninja ~ 理解2D渲染的精髓

2.4.9 Design System - Input Checkbox/Radiobox

人生真的很奇妙 可能在某个时间轴曾经跟某个人的时间轴交错 但当下是不认识的 然後在几年过後又再次交...

Dungeon Mizarka 030

今天是铁人赛事的第30天,利用这篇文章总结这一个月以来的过程。 游戏调整目标 如同文章系列一开始所提...

【C#】Behavioral Patterns Mediator Mode

The Mediator design pattern defines an object that...

[Day08] Dependency Injection Part2 - 依赖介面

依赖介面而不是特定的 Service 昨天我们介绍了怎麽在 .NET Web API 的专案里实现依...

Day14 - BST ( Find & Insert )

大家好,我是长风青云。今天是铁人赛第十四天。恭喜你们听到我带点磁性的声音(?) 我要滚去休息了。 ...