Vulnerability Assessment of SNMP Service – II

本文是关于SNMP服务漏洞评估的第二部分,介绍了如何使用工具定位网络上运行SNMP服务的主机,并通过端口扫描验证SNMP服务是否开启。文章还讲解了SNMP的基本组成部分,如管理信息库(MIB)和社区字符串(Community Strings)。

Vulnerability Assessment of SNMP Service – II



背景:

这是第二篇关于SNMP服务漏洞审计的文章。前面的一篇文章,我们介绍了如何在Linux主机(Debian)下安装SNMP服务。从这篇文章开始,我们会介绍一些工具,这些工具可以帮助我们收集一些重要信息。


目标对象:

这一系列的文章主要写给那些有些基础,但想知道更多的人,让他们了解,审计SNMP安全需要做什么,获取的有用的信息将会对后面的渗透测试有很大的帮助。


假设:

开始这篇文章前,我们假设用户已经能够访问一台运行SNMP服务的机器。如果没有,请参考前面的一篇文章,去搭建一个靶场环境。


目标:

这篇文章将介绍一些SNMP相关的东西,以便帮助读者理解一些内容(渗透测试与SNMP协议相关的内容)。这是进行测试前需要的一些准备。虽然如此,但是可能没太大的作用,因为你不知道要做什么,或者为什么这么做。

我们会学习如何定位网络上运行着SNMP服务的主机,同时也会介绍一些完成这项任务的工具。


SNMP - 概要

SNMP,简单网络管理协议,由3个部分组成:

1. Managed Device:

运行SNMP服务的设备或主机.这些设备可以是路由,交换机,集线器,网桥,电脑等.

2. Agent

Agent被认为是运行在管理设备里的软件,它最主要的任务就是将信息转为SNMP格式,以便能够顺利的通过SNMP管理网络.

3. Network Management System(NMS):

NMS, 指用于监控网络设备的软件系统,下面不会深入讨论它,因为我们对它不感兴趣。


SNMP Managed Network

Managed Device


Network Management Systems


SNMP Agent




从上图我们可以了解SNMP的组成,让我们直奔主题,我们接下来会介绍协议里的两个概念。一个是MIB (Management Information Base), 另一个是Community Strings.


Management Information Base(MIB)

MIB,是一个存储库,或组织信息的集合。这里就不介绍数据是如何组织的,对新手来说也没有这个必要。如果你想要写自己的工具,那么理解它是很有必要的。


Community String

SNMP Community String,是一个类似会话验证的句柄(例如:密码),主要作用于管理站与SNMP Agent部署的设备之间。Community Strings在网络上以明文传输,容易遭受网络监听攻击。Coumunity String存在于管理站与节点之间交换的每个数据包中。

对工作站而言,想要发现并管理网络设备,设备必须开启SNMPNMS发送community string去匹配网络设备的Community String.此外,远程设备上的防火墙应该允许这样的操作。默认情况下,防火墙是不允许SNMP的。


SNMP操作时,有两种不同的模式,这些模式拥有不同的Community Strings:

Read Only:

此模式下,允许查询读取信息,但是不允许修改配置。此模式,默认community string是“public”


Read Write:

此模式下,可以修改设备,默认的community string是“private”.


端口扫描

端口扫描是一种用于探测远程主机服务的方法,接下来我们用nmap针对目标主机做一次端口扫描,验证SNMP是否开启。默认情况下,SNMP开放UDP端口161,修改过,可能是其他的端口。

root@gnu:/home/nixawk# nmap -sV -sU-p 161 192.168.1.105

Starting Nmap 6.40 ( http://nmap.org) at 2014-08-11 03:42 CST

Nmap scan report for localhost(192.168.1.105)

Host is up (0.00049s latency).

PORT STATE SERVICE VERSION

161/udp open snmp SNMPv1 server(public)

MAC Address: 08:00:27:10:01:C9(Cadmus Computer Systems)

Service Info: Host: ruby

Service detection performed. Pleasereport any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 0.40 seconds

从上面的扫描结果,我们可以看出,远程主机开放了SNMP服务。接下来,我们验证一下默认的community string。如果发现这样的主机,那么恭喜你,SNMP可以为我们提供许多有价值的信息,这会在后面数小时的渗透测试中起到很重要的作用。


onesixtyone可以用于暴力猜解SNMP community字符串,此工具可以从文件中获取主机和密码字典。支持较大的字典,能够快速发现匹配项。

root@gnu:~# onesixtyone

onesixtyone 0.3.2 [options] <host><community>

-c <communityfile> file withcommunity names to try

-i <inputfile> file withtarget hosts

-o <outputfile> outputlog

-d debug mode, usetwice for more information

-w n wait nmilliseconds (1/1000 of a second) between sending packets (default10)

-q quiet mode, donot print log to stdout, use with -l

examples: ./s -c dict.txt 192.168.4.1 public

./s -c dict.txt -i hosts -o my.log -w 100

root@gnu:~# onesixtyone 192.168.1.105 public

Scanning 1 hosts, 1 communities

192.168.1.105 [public] Linux ruby 2.6.32-5-686 #1 SMP Tue May13 16:33:32 UTC 2014 i686


Metasploit自带snmp相关模块,可用于测试snmp服务。

msf auxiliary(snmp_enum) > show options

Module options(auxiliary/scanner/snmp/snmp_enum):

Name Current Setting Required Description

---- --------------- -------- -----------

COMMUNITY public yes SNMP Community String

RETRIES 1 yes SNMP Retries

RHOSTS 192.168.1.105 yes The target address range or CIDR identifier

RPORT 161 yes The target port

THREADS 1 yes The number of concurrent threads

TIMEOUT 1 yes SNMP Timeout

VERSION 1 yes SNMP Version <1/2c>

msf auxiliary(snmp_enum) > run

[+] 192.168.1.105, Connected.

[*] System information:

Host IP :192.168.1.105

Hostname :ruby

Description :Linux ruby 2.6.32-5-686 #1 SMP Tue May 13 16:33:32 UTC 2014 i686

Contact : Me<me@example.org>

Location :Sitting on the Dock of the Bay

Uptime snmp :04:06:18.63

Uptime system :03:12:27.23

System date :2014-8-10 16:10:01.0

[*] Scanned 1 of 1 hosts (100%complete)

[*] Auxiliary module execution completed


参考链接:
http://resources.infosecinstitute.com/vulnerability-assessment-of-snmp-service-ii/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值