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字符串也非常有用。

[AppleScript] 纯文本查看 复制代码
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

[AppleScript] 纯文本查看 复制代码
1
2
[/size]
[size=4]onesixtyone – c password 192.168.131.135

Onesoxtyone工具,它还试图使用基于字典的尝试猜测/破解SNMP社区字符串。
正如我们在下面看到的,它已经确定了“mike”是有效的字符串。
查看图片

(二)
查看图片

我们已经通过Nmap扫描和爆破社区字符串值来识别Community字符串。
现在我们将看到,如何使用这些提取的Community字符串来进行后期开发。
我们将使用如下所示的各种工具。
例如,下面的MIB值对应于特定的MicrosoftWindows SNMP参数。

[AppleScript] 纯文本查看 复制代码
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服务中提取所有可能的信息。

[AppleScript] 纯文本查看 复制代码
1
snmpwalk -v1 -c mike 192.168.131.135

查看图片

输出数据量非常大,所以我将输出重定向到一个文件中去。

[AppleScript] 纯文本查看 复制代码
1
snmpwalk -v1 -c mike 192.168.131.135 > snmpout.txt

查看图片

正如你在下面看到的,此时我们有很多MIB值输出。

查看图片

我们可以在snmpwalk中使用MIB值来做一些特定的搜索:

[AppleScript] 纯文本查看 复制代码
1
snmpwalk-c:v1192.168.11.204

在我们的案例中,Community字符串是-mike

[AppleScript] 纯文本查看 复制代码
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服务的渗透测试的更多相关文章

  1. 详述MSSQL服务在渗透测试中的利用(上篇)

    前言: 致力于复现最实用的漏洞利用过程. 本文将带领大家学习以下内容: 学习使用`xp_cmdshell`扩展存储过程 学习调用`wscript.shell` 学习MSSQL写文件 学习沙盘模式提权 ...

  2. 详述MySQL服务在渗透测试中的利用

    本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...

  3. 详述MSSQL服务在渗透测试中的利用 (下篇)

    part3 MSSQL写文件 步骤1 sp_makewebtask写文件 因为是`SA`权限,如果目标服务器是web服务器,我们也不用去备份了,可以直接写个一句话木马进去到web目录. 在不知道web ...

  4. 《Metasploit渗透测试魔鬼训练营》第一章读书笔记

    第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...

  5. 《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击

    三.网络服务渗透攻击 3.1 内存攻防技术      3.1.1 缓冲区溢出漏洞机理              缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为.           ...

  6. Kali linux渗透测试常用工具汇总1

    1.ProxyChains 简介:代理工具.支持HTTP/SOCKS4/SOCK5的代理服务器,允许TCP/DNS通过代理隧道. 应用场景:通过代理服务器上网. 配置:/etc/proxychains ...

  7. Kali Linux Web 渗透测试视频教程— 第十三课-密码破解

    Kali Linux Web 渗透测试— 第十三课-密码破解 文/玄魂 目录 Kali Linux Web 渗透测试— 第十三课-密码破解............................... ...

  8. Web渗透测试笔记(基础部分)

    信息收集: dns信息收集 格式:dns... -参数 域名 -参数 示例: root@xxSec:~# dnsenum baidu.com root@xxSec:~# dnsenum -f dns. ...

  9. Kali Linux渗透测试实战 1.1 Kali Linux简介

    1.1 Kali Linux简介 如果您之前使用过或者了解BackTrack系列Linux的话,那么我只需要简单的说,Kali是BackTrack的升级换代产品,从Kali开始,BackTrack将成 ...

随机推荐

  1. tensorflow实战系列(四)基于TensorFlow构建AlexNet代码解析

    整体流程介绍: 我们从main函数走,在train函数中,首先new了一个network;然后初始化后开始训练,训练时设定设备和迭代的次数,训练完后关闭流程图. 下面看network这个类,这个类有许 ...

  2. 开启safe_mode之后对php系统函数的影响

    safe_mode即为PHP的安全模式,在php.ini中设置safe_mode = On重启PHP便可开启安全模式. 当安全模式开启后,PHP相应的一些系统函数,文件操作函数等将会受限.例如: ck ...

  3. React Native在window下的环境搭建(一)

    React Native官方开发文档 以下是本人抄录的: 初次接触React Native感觉和React很像,却是有点类似,但不完全是,React Native有自己的组件对象,不过它也自定义的组件 ...

  4. jscript DOM操作

    \n 换行符 \b 空格 \r 回车 && 与 || 或 ! 非(取反) classList属性 classList 属性返回元素的类名,作为 DOMTokenList 对象. 该属性 ...

  5. 2、订单填写页面 /items/write?skuId=10&orderNo=201903211033410001

    <template> <div class="write"> <div class="adr" v-if="addres ...

  6. canvas绘制气泡

    思路:使用Math.random()函数绘制是个不同位置,大小,颜色的圆形,然后设置定时器,前一个状态用一个与画布相同颜色的背景图片进行覆盖,改变圆形的位置,每次改变都是在这张空白的背景图片上面重新进 ...

  7. Java的学习05

    今天学习了,Java中的LinkedList类.这个类需要用到链表的知识,以前一直以为,只有c/c++有链表.今天才知道,原来其他语言.也有链表,而且还是双向链表. /** * 自定义一个链表 * @ ...

  8. OkHttp 同步异步操作

    OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应. 一.使用OkHttp OkHttp发送请求后,可以通过同步或异步地方式获取响应. ...

  9. django 请求与响应

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. [leetcode]366. Find Leaves of Binary Tree捡树叶

    Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...