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('\n','').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])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM