• snmpd服务部署与爆破


    部署snmpd服务

    yum install -y net-snmp net-snmp-utils
    # 启动服务
    systemctl start snmpd
    # 停止服务
    systemctl stop snmpd
    

    snmpwalk命令

    snmpwalk命令是操作snmpd服务的工具,可以通过-h中的-v参数看到连接到snmpd有三个版本接口,其中:

    • 只有3版本提供鉴权的功能。
    • 12c版本只需要指定community参数,因此,在爆破snmpd的12c版本时,只需要爆破community字段。
    [root@localhost ~]# snmpwalk -h
    USAGE: snmpwalk [OPTIONS] AGENT [OID]
    
      Version:  5.7.2
      Web:      http://www.net-snmp.org/
      Email:    net-snmp-coders@lists.sourceforge.net
    
    OPTIONS:
      -h, --help  display this help message
      -H   display configuration file directives understood
      -v 1|2c|3  specifies SNMP version to use
      -V, --version  display package version number
    SNMP Version 1 or 2c specific
      -c COMMUNITY  set the community string
    SNMP Version 3 specific
      -a PROTOCOL  set authentication protocol (MD5|SHA)
      -A PASSPHRASE  set authentication protocol pass phrase
      -e ENGINE-ID  set security engine ID (e.g. 800000020109840301)
      -E ENGINE-ID  set context engine ID (e.g. 800000020109840301)
      -l LEVEL  set security level (noAuthNoPriv|authNoPriv|authPriv)
      -n CONTEXT  set context name (e.g. bridge1)
      -u USER-NAME  set security name (e.g. bert)
      -x PROTOCOL  set privacy protocol (DES|AES)
      -X PASSPHRASE  set privacy protocol pass phrase
      -Z BOOTS,TIME  set destination engine boots/time
    

    创建用户

    查看创建用户命令参数:

    Usage:
      net-snmp-create-v3-user [-ro] [-A authpass] [-X privpass]
                              [-a MD5|SHA] [-x DES|AES] [username]
    

    可以看到这里create-v3就是上面讲到的v3版本,只有v3版本提供用户鉴权的接口。

    参数说明:

    • -ro: 就是read only的意思
    • -A: 设置认证的密码,长度必须超过8位,否则登录会提示密码太短。
    • -X: 设置是否加密账号,如果指定了这个参数,登录的时候一定要带上,否则会报错。
    • -a和-x就是将密码设置为不同的加密方式(严格意义上来说,MD5不算是加密方式), -x如果不设置参数,默认为DES。
    • username: 最后就是用户名,snmpd似乎没有提供删除或修改用户的接口,修改用户密码同创建用户,只需将密码设置成其他的即可。

    注意事项:创建用户必须先停止snmpd服务,用户创建完成后再重新启动服务,然后使用snmpwalk接口进行操作。

    创建与登录示例:

    # 创建认证且加密的读写账户(authPriv)
    net-snmp-create-v3-user -a MD5 -A password2 -X password2 -x DES user2
    # 登录命令
    snmpwalk -v 3 localhost -u user2 -a MD5 -A password2 -X password2 -l authPriv -x DES .1.3.6.1.2.1.1
    
    # 创建认证但不加密的只读账户(authNoPriv)
    net-snmp-create-v3-user -ro -a MD5 -A password3 user3
    # 登录命令
    snmpwalk -v 3 localhost -u user3 -a MD5 -A password3 -l authNoPriv -x DES .1.3.6.1.2.1.1
    
    # 创建认证但不加密的读写账户(authNoPriv)
    net-snmp-create-v3-user -ro -a MD5 -A password3 user3
    # 登录命令
    snmpwalk -v 3 localhost -u user3 -a MD5 -A password3 -l authNoPriv -x DES .1.3.6.1.2.1.1
    

    除了authPriv以外,不管是否是-ro账户,使用的登录命令其实是一样的。
    .1.3.6.1.2.1.1可以理解为是snmpd服务所在主机上硬件设备的代号,不同的硬件设备有各自唯一的代号。

    登录总结

    1. 密码必须大于等于8位数,否则报错The supplied password length is too short
    2. 如果账户不存在,则报错:Unknown user name。因此爆破时,可以先将爆破账号,然后将不存在的账户排除。
    3. 如果密码错误,则报错:incorrect password, community or key
    4. 如果账号的加密方式是authPriv,爆破时使用的参数可以是authNoPriv,但是如果没有指定-X参数,同样会报错。
    5. 如果账号的加密方式是authPriv-A密码正确,-X后面的密码错误,则会报错:Timeout: No Response from [IP地址]
    6. 如果账号的加密方式是authNoPriv,爆破时使用的参数是authPriv,则会报错。
    7. 如果账号的加密方式是authNoPriv,爆破时使用的参数是authNoPriv,设置-X参数为长度大于等于8位数的任意值都没有影响。
  • 相关阅读:
    C++对象模型与内存位对齐的简单分析(GNU GCC&VS2015编译器)
    [GeekBand] C++学习笔记(2)——BigThree、OOP
    [GeekBand] C++ 高级编程技术 (1)
    [GeekBand]C++高级编程技术(2)
    C++中引用的本质分析
    函数的重载(1)
    C++的特点
    布尔类型和三目运算符
    Linux客户端下的latex相关操作
    无光驱上网本上安装win7
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/15632916.html
Copyright © 2020-2023  润新知