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])
博主简介:博主国内安全行业目前最强大的网络安全公司做技术研究员,常年做技术工作。 获得过以下全国竞赛大奖: 《中国电子作品大赛一等奖》 《云计算技术大赛一等奖》 《AIIA人工智能大赛优胜奖》《网络安全知识竞赛一等奖》 《高新技术个人突出贡献奖》,并参与《虚拟化技术-**保密**》一书编写,现已出版。还拥有多项专利,多项软件著作权! 且学习状态上进,立志做技术牛逼的人。座右铭:在路上,永远年轻,永远热泪盈眶。可邮件联系博主共同进步,个人邮箱:Mrli888@88.com