1-10〔 OSCP ◈ 研记 〕❘ 信息收集▸主动采集H:SNMP基础

    郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。

    感谢您的点赞、关注、收藏、分享!


𖤐 深 呼 吸 、 放 轻 松 ,这 只 是 一 个 故 事。

𖤐 𝓓𝓮𝓮𝓹 𝓫𝓻𝓮𝓪𝓽𝓱, 𝓻𝓮𝓵𝓪𝔁, 𝓲𝓽'𝓼 𝓳𝓾𝓼𝓽 𝓪 𝓼𝓽𝓸𝓻𝔂. 


信息收集▸主动采集▸SNMP基础-----我们在这儿~ 🔥🔥🔥

→ 漏洞检测

→ 初始立足点

→ 权限提升 

→ 横向移动

→ 报告/分析

→ 教训/修复  


目录

1.4 主动信息收集

1.4.6 SNMP枚举(基础)

1.4.6.1SNMP协议概述

①SNMP协议介绍

② MIB是什么? 

③工作协议流程

④SNMP协议各版本对比

⑤为什么SNMP是攻击者的“香饽饽”?

1.4.6.2 粗略定位SNMP主机:使用 Nmap

1.4.6.3 精准定位SNMP主机 & 社区字符串爆破:使用 onesixtyone

①社区字符串介绍

②构建文本文件(社区字符串文件 &目标IP文件 )

③发起扫描

④输出解读

创作不易~感谢您的点赞、关注、收藏、分享~


1.4 主动信息收集

1.4.6 SNMP枚举(基础)

1.4.6.1SNMP协议概述

①SNMP协议介绍

        SNMP(Simple Network Management Protocol,简单网络管理协议):
👉 用于监控和管理网络设备(路由器/交换机/服务器等)的标准协议,让管理员能远程获取设备状态、修改配置。—— 网络设备的"生命监测系统" 🩺
✅ 核心能力

  • 实时获取设备状态(CPU/内存/温度)

  • 接收设备故障警报

  • 远程修改设备配置

💡 比喻
      整个网络就像一座智能大楼🏢,SNMP是中央监控室,每个设备的SNMP代理是楼层传感器,管理员手中的网管软件(NMS)是监控大屏

核心组件: 

组件技术作用生活比喻
NMS网管系统(管理端)大楼总控台💻
Agent设备中的SNMP代理程序每层楼的智能传感器📡
MIB管理信息库(设备信息数据库)设备参数说明书📚
OID对象标识符(参数唯一ID)说明书里的章节号🔢

SNMP端口

        SNMP端口:是SNMP通信端点,SNMP消息传输通过UDP进行,通常使用UDP端口号161/162。有时也使用传输层安全性(TLS)或数据报传输层安全性(DTLS)协议。

用途

协议

端口号

代理进程Agent:接收请求信息

UDP协议

161

NMS---代理进程Agent:之间的通信

UDP协议

161

NMS:接收通知信息

UDP协议

162

代理进程Agent:生成通知信息

-

任何可用的端口

接收请求信息

TLS/DTLS

10161

接收通知信息

TLS/DTLS

10162

② MIB是什么? 

       MIB 是一个分层组织的数据库,它定义了被管理设备上能被 SNMP Agent 查询和设置的信息(即变量)。它详细说明了每个管理对象的属性,包括名称、状态、访问权限和数据类型。通过 MIB 可以实现两个核心功能:

  1. 查询状态: Agent 通过查询 MIB 获取设备的当前状态信息。

  2. 设置参数: Agent 通过修改 MIB 来调整设备的配置参数。

        MIB 采用树形结构组织这些对象(称为对象命名树)。树根在最上面,没有名字。

  • 树的分支:都有数字和名称标识,代表不同的组织或网络功能

  • 叶子节点(最终端点):每个管理对象在树中的位置对应一个唯一的“身份证号”,叫做对象标识符(OID)。OID 是由从树根到该对象节点的路径上所有分支的数字组成的序列。

  • 例如:
    system 对象的 OID 是 1.3.6.1.2.1.1如下图
    interfaces 对象的 OID 是 1.3.6.1.2.1.2

MIB-OID 示例

     1. 系统基本信息:1.3.6.1.2.1.1.1.0(sysDescr.0)

  • 含义:设备的描述信息,通常包含设备型号、操作系统版本、厂商等。
  • 示例值Cisco IOS Software, C2960X Software (C2960X-UNIVERSALK9-M), Version 15.2(2)E6, RELEASE SOFTWARE (fc1)
  • 作用:快速识别设备类型和系统版本,用于网络资产盘点。

     2. 设备名称:1.3.6.1.2.1.1.5.0(sysName.0)

  • 含义:管理员为设备设置的名称(类似主机名)。
  • 示例值Beijing-Router-01
  • 作用:通过自定义名称定位设备位置或功能(如 “北京核心路由器 1”)。

     3. 接口状态:1.3.6.1.2.1.2.2.1.8.1(ifOperStatus.1)

  • 含义:第 1 个网络接口的运行状态(1=up,2=down)。
  • 示例值1(表示接口处于启用状态)
  • 作用:监控接口是否正常工作,是网络故障排查的基础指标。

            
    以下MIB值对应于特定的Microsoft Windows SNMP参数,包含了比基于网络信息更多内容: 

👨比喻

        可以把MIB比作 “一栋公寓楼”,每个OID则是公寓的 “门牌号”。通过 “门牌号”(OID),管理员可以精准找到并查询 “公寓楼”(MIB)中每个 “房间”(设备信息)的状态,实现对网络的远程管理。

  • sysDescr.0 像是公寓楼的 “开发商铭牌”(如 “XX 小区,钢筋混凝土结构,2020 年建成”),告诉你这栋楼的基本属性;
  • sysName.0 像是楼的 “昵称”(如 “幸福家园 3 号楼”),方便管理员记忆和定位;
  • ifOperStatus.1 像是 “1 单元大门的状态”(开 / 关),直接反映该单元是否可用;

工作协议流程

     1. 主动查询(管理员发起)

     2. 被动告警(设备主动上报)

     3. 远程操控


④SNMP协议各版本对比

版本认证方式加密重大缺陷
v1社区名(明文)❌ 无数据裸奔传输
v2c社区名(明文)❌ 无可伪造告警
v3用户密码认证❌ DES-56加密弱密码可被攻破
v3用户密码认证✅ AES加密配置复杂

⑤为什么SNMP是攻击者的“香饽饽”?

        多年来,简单网络管理协议(SNMP) 一直是网络世界的一个“阿喀琉斯之踵”。许多管理员对其理解不足,导致配置错误频发,常常泄露极其重要的网络和设备信息

  • 🚫 协议基础缺陷: 基于UDP(无连接、无状态),天生易受 IP欺骗 和 重放攻击

  • 🔓 裸奔的数据: 版本 1、2 和 2c 完全不加密流量!这意味着在本地网络上,SNMP信息和社区字符串(本质是密码) 就像明信片一样可以被轻松拦截

  • 🔑 脆弱的身份验证: 传统的身份验证方案(主要依赖社区字符串)非常薄弱

  • 🔓 默认密码陷阱: 设备常被默认使用为广为人知的默认社区字符串(如 public - 只读,private - 读写)。

  • 🔓 早期v3的弱点: 直到最近,SNMPv3虽然支持认证和加密,但早期实现依赖 DES-56 加密,这种弱加密方案易被暴力破解

  • 🛡️ 曙光:安全v3: 真正安全的SNMPv3实现需要采用强大的 AES-256 加密方案

👉 结论: 基于这些固有缺陷,SNMP 是我们(渗透测试/安全审计人员)最喜欢的枚举协议之一,它能高效地挖掘出大量敏感信息!利用 SNMP 管理信息库(MIB) 的结构以及 v1/v2/v2c 协议无加密的特性,攻击者可以在本地网络轻松拦截 SNMP 信息和凭据,进而访问 MIB 树中存储的丰富信息。


1.4.6.2 粗略定位SNMP主机:使用 Nmap

📖 目标: 快速扫描整个网段,找出哪些主机开启了 SNMP 服务(即开放 UDP 161 端口)。

kali@kali:~$ sudo nmap -sU --open -p 161 192.168.50.1-254 -oG open-snmp.txt
   # 以下是命令输出内容。
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-14 06:02 EDT
Nmap scan report for 192.168.50.151
Host is up (0.10s latency).

PORT STATE SERVICE
161/udp open snmp

Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds
...
  • sudo: 通常需要管理员权限发送/接收原始数据包。

  • -sU: 指定进行 UDP 扫描

  • --open: 只显示状态为开放(open) 的端口,过滤掉关闭的或无响应的,让结果更简洁。

  • -p 161: 明确指定扫描 UDP 端口 161 (SNMP 标准端口)。

  • 192.168.50.1-254: 扫描目标 IP 范围 (这里是 192.168.50.0 网段的所有主机)。

  • -oG open-snmp.txt: 将扫描结果以 Grepable 格式 输出到文件 open-snmp.txt 中,方便后续处理。

📌 输出: open-snmp.txt 文件会列出所有被发现开放了 UDP 161 端口的主机 IP 地址。


1.4.6.3 精准定位SNMP主机 & 社区字符串爆破:使用 onesixtyone

📖 目标: 不仅找出开启 SNMP 服务的主机,还能快速猜测或暴力破解其使用的 SNMP 社区字符串

🔧 工具: onesixtyone (专为快速 SNMP 发现和社区字符串测试设计)

①社区字符串介绍

     👉 社区字符串(Community String),在SNMP v1/v2c中用于身份验证的明文密码,决定管理端(NMS)对设备的操作权限级别。

💡 比喻
社区字符串 就像大楼门禁密码🗝️:

  • 知道密码的人才能查看监控(读权限)

  • 高级密码还能控制电梯运行(写权限)

社区字符串类型技术权限生活类比风险等级
只读(RO)public (默认)访客密码:只能看监控📹⭐⭐
读写(RW)private (默认)管理员密码:能关整栋楼电闸🔌💥💥💥

    ⚠️ 警告:使用默认社区字符串是重大安全风险!

🛡️ 安全实践:自定义社区字符串

  • 管理员必须设置强密码级别的、复杂且唯一的自定义社区字符串。

  • 强烈建议升级到 SNMPv3,它使用真正的用户名/密码认证和加密,安全性远超社区字符串。

📌 配置示例(Cisco设备上自定义社区字符串)

# 设置只读社区名(允许查看信息)
snmp-server community MyReadOnlyPass RO

# 设置读写社区名(危险!允许修改配置)
snmp-server community SuperSecretRW RW

snmp-server community Ky8$3F!qW9*Lz RO  
    # 在cisco上配置。
    # 语法:snmp-server community <社区字符串名称> RO [ACL]  只读权限  
    # 本例中,设置社区字符串就是“Ky8$3F!qW9*Lz”,这个就无法猜到了

构建文本文件(社区字符串文件 &目标IP文件 )

      社区字符串文件 (community.txt): 每行写一个想爆破的社区字符串。必须包含常见默认值 (publicprivate) 和任何已知或猜测的自定义字符串。

public
private
admin
snmp
mycompany
manager

      目标 IP 文件 (ips.txt): 每行写一个要扫描的目标主机 IP 地址。

kali@kali:~$ for ip in $(seq 1 254); do echo 192.168.50.$ip; done > ips

kali@kali:~$ cat ips
192.168.50 1
192.168.50.2
192.168.50.3
192.168.50.4
192.168.50.5
192.168.50.6
...
192.168.50.154

③发起扫描

$ onesixtyone -c community.txt -i ips.txt
  • -c community.txt: 指定包含社区字符串列表的文件。

  • -i ips.txt: 指定包含目标 IP 地址列表的文件。

④输出解读

kali@kali:~$ onesixtyone -c community -i ips
   # 以下为命令输出内容。
-------------------------------------------------------------
Scanning 254 hosts, 3 communities
192.168.50.151 [public] Hardware: Intel64 Family 6 Model 79 Stepping 1 AT/AT 
COMPATIBLE - Software: Windows Version 6.3 (Build 17763 Multiprocessor Free)
...
   # 硬件信息:
   处理器: Family 6: 通常指 Intel 的第六代微架构核心(Core/Core 2/Xeon等)。
   Model 79: 具体型号,常见于 Intel Xeon E5 v4 / E7 v4 系列处理器(Broadwell-EP/EX)。
   Stepping 1: 处理器的修订版本号。
   AT/AT COMPATIBLE: 表明设备遵循标准的 IBM PC AT 兼容架构(即常见的个人电脑/服务器架构)。

   # 软件/操作系统信息:
   操作系统: Version 6.3:这是 Windows NT 内核版本号。
   Build 17763: 这是具体的操作系统构建版本号。
   对应操作系统: Build 17763 明确对应的是 Windows 10 版本 1809 (October 2018 Update) 或
Windows Server 2019。这两个操作系统共享相同的内核版本 (10.0.17763)。
   Multiprocessor Free: 表示操作系统是支持多处理器(多核/多CPU)的零售版(或VL版)内核,而
不是单处理器内核或评估版内核。
   Free 在这里指的是“无限制”支持多处理器,而非“免费”。

   # 总结:这台电脑/服务器(192.168.50.151)用的是 Intel 的高端服务器 CPU (Xeon E5/E7 v4),装的是
Windows Server 2019 或者 Win10 1809 系统,可以通过公开的 SNMP 口令(public)查看它的基本信息。
--------------------------------------------------------------

🎯 成果: 你现在知道主机 192.168.50.151 存在 SNMP 漏洞(使用默认只读字符串 public),可以开始利用 SNMPwalk 或 snmpget 等工具读取其 MIB 树中的敏感信息了!


创作不易~感谢您的点赞、关注、收藏、分享~

您的支持是我创作最大的动力!

艺术欣赏环节~放松心情👁️👁️

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Whoami!

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值