一次对SNMP服务的渗透测试
Hacking SNMP Service - The Post Exploitation :Attacking Network - Network Pentesting原文地址:
http://www.websecgeeks.com/2017/ ... ce-part-1-post.html
http://www.websecgeeks.com/2017/ ... ce-part-2-post.html
prison翻译整理,首发i春秋。
引言:
SNMP安全相关信息是需要各位安全开发人员,渗透测试工程师以及白帽子所需要关心的内容,在本篇文章中,作者通过对其漏洞的分析和实践直观的让读者对其相关内容进行了解。对入门学员可能会有所帮助。难度:三颗星

SNMP(SimpleNetwork Management Protocol)
关于SNMP的介绍大家可以很容易的从网络上找到相关介绍,在此不再赘述。
我们本次展示的是爆破SNMP服务字符串实现攻击。
注:以下所有“字符串”都为:Coummunity Strings
那么问题来了,为什么我们选择攻击SNMP字符串
SNMP只读类字符串类似于用户id或密码。它与每个SNMP get请求一起发送,并允许(或拒绝)访问路由器或其他设备的统计信息。如果字符串是正确的,设备将响应请求的信息。如果字符串不正确,设备就会忽略请求而不响应。
我们可以用Coummunty Strings做什么?
默认的字符串是“public”和“private”的,带有“ro”(只读)和“rw”(读和写)。
如你所见,只读意味着用户只能读取信息和读写,读和写意味着用户可以对SNMP中的信息进行写/更新。
什么是SNMP中的MIB
SNMP管理信息基础(MIB)是一个包含信息的数据库。
通常与网络管理有关。数据库像树一样组织起来,在那里
分支代表不同的组织或网络功能。树上的叶子
(最终的端点)对应于可以访问的特定变量值,以及
由外部用户探测。要了解更多关于MIB树的信息,请参阅下面的内容
。
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.progcom/doc/progcomc/mib.htm
所以SNMP在UDP端口运行时还在网络中执行基于UDP的扫描。
A) Metasploit
用于SNMP auxiliary/scanner/snmp/snmp_login 
设置一下参数并运行,可以看到Metasploit成功运行,在Community String中显示”mike”
就我个人来说,我比较推荐攻击Community Strings使用Metasploit,因为和其他工具相比,它的运行速度相对来说比较快。
B) Medusa
因为这个软件的速度也非常快,所以它对于破解SNMP字符串也非常有用。
|
1
|
medusa -h 192.168.131.135 -u admin -P Desktop/demo/wordlist -M snmp |
Here no user of "-u admin" but Medusa required thisvalue so we are giving it fulfilled the requirement.
同样的,Medusa发现了值wei”mike”的字符串。.
C ) onesixtyone
|
1
2
|
[/size][size=4]onesixtyone – c password 192.168.131.135 |
Onesoxtyone工具,它还试图使用基于字典的尝试猜测/破解SNMP社区字符串。
正如我们在下面看到的,它已经确定了“mike”是有效的字符串。
查看图片
(二)
查看图片
我们已经通过Nmap扫描和爆破社区字符串值来识别Community字符串。
现在我们将看到,如何使用这些提取的Community字符串来进行后期开发。
我们将使用如下所示的各种工具。
例如,下面的MIB值对应于特定的MicrosoftWindows SNMP参数。
|
1
2
3
4
5
6
7
|
1.3.6.1.2.1.25.1.6.0系统进程1.3.6.1.2.1.25.4.2.1.2运行程序1.3.6.1.2.1.25.4.2.1.4流程路径1.3.6.1.2.1.25.2.3.1.4存储单元1.3.6.1.2.1.25.6.3.1.2软件名称1.3.6.1.4.1.77.1.2.25用户帐户1.3.6.1.2.1.6.13.1.3 TCP 本地端口 |
一)SNAMPWALK
我们已经将”mike”作为Community字符串了,现在我们将其传递给SNMPWALK工具,然后将目标IP作为目标。这将从SNMP服务中提取所有可能的信息。
|
1
|
snmpwalk -v1 -c mike 192.168.131.135 |
输出数据量非常大,所以我将输出重定向到一个文件中去。
|
1
|
snmpwalk -v1 -c mike 192.168.131.135 > snmpout.txt |
正如你在下面看到的,此时我们有很多MIB值输出。
我们可以在snmpwalk中使用MIB值来做一些特定的搜索:
|
1
|
snmpwalk-c:v1192.168.11.204。 |
在我们的案例中,Community字符串是-mike
|
01
02
03
04
05
06
07
08
09
10
|
提取Windows用户:snmpwalk -c mike -v1 192.168.131.135 1.3.6.1.4.1.77.1.2.25 提取Windows系统进程:snmpwalk ‐c mike ‐v1 192.168.131.135 1.3.6.1.2.1.25.4.2.1.2提取开放的TCP端口:snmpwalk ‐c mike ‐v1 192.168.131.135 1.3.6.1.2.1.6.13.1.3提取已安装的软件:snmpwalk ‐c mike ‐v1 192.168.131.135 1.3.6.1.2.1.25.6.3.1.2 |
现在,为了验证这个Community字符串是否可写,我们将使用另一个工具SNMPSET
snmpset -v1 -cmike 192.168.131.135 iso.3.6.1.2.1.1.5.0 s SomeOneWasHere
这里的“iso.3.6.1.1.1.5.0”为“bhati”的值,它是从snmpwalk输出文件中挑选出来的。
查看图片
这个snmpset -v1 -cmike 192.168.131.135 iso.3.6.1.2.1.1.5.0 s SomeOneWasHere命令将会继续,并将“bhati”的值更改为SNMP中的“SomeOneWasHere”。让我们试试这个。
我们的命令成功。
查看图片
现在,让我们使用SNMPWALK重新扫描我们的SNMP目标
如你所见,这个值已经被更改为“SomeOneWasHere”。
查看图片
现在我们确认,我们的社区字符串“mike”有写属性。现在,我们应该转向下一部分,从目标机器中搞一点事情。
B)SNMPCHECK
snmpcheck工具将使用我们发现的社区字符串“mike”来目标机器的重要信息。
snmpcheck.rb -c mike 192.168.131.135
如果在运行此命令时出现错误,请参见snmpcheck的帮助部分,后面是-h,您的版本可能是旧的或更新的。
查看图片
C)Metasploit
我们可以使用metasploit辅助设备实现同样的信息。
auxiliary/scanner/snmp/snmp_enum
填充所需的值。
查看图片
现在只要点击“运行”,你就会看到我们的目标机器上有大量的Meal出现。
一次对SNMP服务的渗透测试的更多相关文章
- 详述MSSQL服务在渗透测试中的利用(上篇)
前言: 致力于复现最实用的漏洞利用过程. 本文将带领大家学习以下内容: 学习使用`xp_cmdshell`扩展存储过程 学习调用`wscript.shell` 学习MSSQL写文件 学习沙盘模式提权 ...
- 详述MySQL服务在渗透测试中的利用
本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...
- 详述MSSQL服务在渗透测试中的利用 (下篇)
part3 MSSQL写文件 步骤1 sp_makewebtask写文件 因为是`SA`权限,如果目标服务器是web服务器,我们也不用去备份了,可以直接写个一句话木马进去到web目录. 在不知道web ...
- 《Metasploit渗透测试魔鬼训练营》第一章读书笔记
第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...
- 《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击
三.网络服务渗透攻击 3.1 内存攻防技术 3.1.1 缓冲区溢出漏洞机理 缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为. ...
- Kali linux渗透测试常用工具汇总1
1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...
- Kali Linux Web 渗透测试视频教程— 第十三课-密码破解
Kali Linux Web 渗透测试— 第十三课-密码破解 文/玄魂 目录 Kali Linux Web 渗透测试— 第十三课-密码破解............................... ...
- Web渗透测试笔记(基础部分)
信息收集: dns信息收集 格式:dns... -参数 域名 -参数 示例: root@xxSec:~# dnsenum baidu.com root@xxSec:~# dnsenum -f dns. ...
- Kali Linux渗透测试实战 1.1 Kali Linux简介
1.1 Kali Linux简介 如果您之前使用过或者了解BackTrack系列Linux的话,那么我只需要简单的说,Kali是BackTrack的升级换代产品,从Kali开始,BackTrack将成 ...
随机推荐
- Sql Server数据库之约束
一.约束的分类 实体约束:关于行的约束,比如某一行出现的值就不允许别的行出现,如主键 域约束:关于列的约束,对表中所有行的某些列进行约束,如check约束 参照完整性约束:如果某列的值必须与其他列的值 ...
- TXLSReadWriteII 公式计算
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- request设置cookies
mycookie = { "PHPSESSID":"56v9clgo1kdfo3q5q8ck0aaaaa" } request.get(url,cookies ...
- 吴裕雄 python深度学习与实践(12)
import tensorflow as tf q = tf.FIFOQueue(,"float32") counter = tf.Variable(0.0) add_op = t ...
- cmake find_package 中,include_directories,target_link_libraries 的值怎么知道?
拿Sophus库为例: find_package(Sophus REQUIRED) include_directories(${Sophus_INCLUDE_DIRS}) target_link_li ...
- SSM商城项目(六)
1.学习计划 1.Redis服务器搭建 2.Redis持久化 3.Redis集群搭建 4.Jedis 5.Solr服务器安装 2.Redis的安装 2.1. Redis的安装 Redis是c语言开发的 ...
- python--第十一天总结(paramiko 及数据库操作)
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 实现思路 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器, ...
- 什么是PLI?
首先,什么是PLI? 本部分设定了隐藏,您已回复过了,以下是隐藏的内容 PLI 就是product liability insurance 的简写,中文可以翻译成“产品责任险”说白了,就是你的产品如果 ...
- vue项目强制清除页面缓存
异常描述: 支付宝中内嵌h5项目(vue框架开发),前端重新打包上传之后访问页面会导致页面空白.页面tab点击异常之类异常情况,需要手动清除支付宝缓存才可以正常访问. 解决方案: 在HTTP协议中,只 ...
- Java最小化镜像制作
下载Oracle官网的JRE包,最终下载的包如下: jre-8u181-linux-x64.tar.gz 解压JRE包并删除不必要的文件 #解压 tar xf jre-8u181-linux-x64. ...