zoukankan      html  css  js  c++  java
  • SNMP信息泄露漏洞

    SNMP协议简介


    名称:SNMP(Simple Network Management Protocol)简单网络管理协议
    端口:161
    协议:UDP
    用途:SNMP代理者以变量呈现管理资料。管理系统透过GET,GETNEXT和GETBULK协定指令取回资讯,或是代理者在没有被询问的情况下,使用TRAP或INFORM传送资料。管理系统也可以传送配置更新或控制的请求,透过SET协定指令达到主动管理系统的目的。配置和控制指令只有当网络基本结构需要改变的时候使用,而监控指令则通常是常态性的工作。

    SNMP使用方法简介


    "Mac、Linux、Unix下使用snmpget、snmpwalk等命令"
    #snmpwalk -v 2c -c 'public' 对端ip
    #snmpget -v 1 -c 'community' 对端ip OID号 
    
    "Windows下请下载snmputil.exe,安装后在CMD中使用"
    #snmputil walk 对端ip public OID号
    

    SNMP 弱口令导致的信息泄露威胁


    SNMP版本 SNMP弱口令
    V1 community
    V2c public

    上面是版本对应的弱口令表,利用这些弱口令可以获取到系统信息,甚至下发配置

    # -*- coding:utf-8 -*-
    
    
    #引入依赖的库、包、模块
    import sys
    import socket
    
    
    #定义全局变量
    snmpClient = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    snmpData = """
        30260201 01 0406 7075626c6963 a1
        19 0204 424602fd 0201 00 0201 00
        300b 3009 0605 2b06010201 0500
    """
    
    #定义全局函数
    def str2Binary(content):
        """文本转二进制"""
        return content.replace(' ','').replace('
    ','').decode('hex')
    
    def snmpScan(ip):
        try:
            snmpClient.sendto(str2Binary(snmpData),(ip,161))
            recvData = snmpClient.recv(4096)
            if "\x00\x02\x01\x00" in str(repr(recvData)):
                print "Vulnerable"
            else:
                print "Safe"
        except Exception,reason:
            print "Safe"
    
    if __name__ == "__main__":
        snmpScan(sys.argv[1])
    
    
  • 相关阅读:
    不务正业系列-浅谈《过气堡垒》,一个RTS玩家的视角
    [LeetCode] 54. Spiral Matrix
    [LeetCode] 40. Combination Sum II
    138. Copy List with Random Pointer
    310. Minimum Height Trees
    4. Median of Two Sorted Arrays
    153. Find Minimum in Rotated Sorted Array
    33. Search in Rotated Sorted Array
    35. Search Insert Position
    278. First Bad Version
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8986325.html
Copyright © 2011-2022 走看看