沈阳电脑维修网,沈阳上门维修电脑服务
当前位置: 主页 > 沈阳网站推广>浅议SNMP安全、SNMP协议、网络管理学习 >

浅议SNMP安全、SNMP协议、网络管理学习

时间:2017-5-23来源:www.sypcwx.cn 作者: 沈阳电脑维修网点击:
沈阳电脑维修,上门维修电脑
  沈阳电脑维修上门服务13889116605: 1.网络管理简介随着网络技术的飞速发展,网络的数量也越来越多。而网络中的设备来自各个不同的厂家,如何管理这些设备就变得十分重要。我们今天要研究的就是介绍管理这些设备的标准,简单来说就是如何在...   1.网络管理简介 随着网络技术的飞速发展,网络的数量也越来越多。而网络中的设备来自各个不同的厂家,如何管理这些设备就变得十分重要。我们今天要研究的就是介绍管理这些设备的标准,简单来说就是如何在内网中管理各种异构设备。 0x1:TCP/IP的网络管理组件 1.网络管理系统(NMSs,Network-managementsystems) 网络管理系统一般安装在网络管理站上,一个网络管理系统运行应用程序,以该应用程序监视并控制被管理的设备。也称为管理实体(managingentity),网络管理员在这儿与网络设备进行交 互。网络管理系统提供网络管理需要的大量运算和记忆资源。一个被管理的网络可能存在一个以上的网络管理系统 2.被管理的设备(manageddevice) 一个被管理的设备是一个网络节点,它包含一个存在于被管理的网络中的SNMP代理者。被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统能够通过SNMP代理者取得 这项信息。被管设备种类繁多,例如: 2.1)路由器 2.2)X终端 2.3)终端服务器 2.4)打印机等 3.代理者(agent) 代理者是一种存在于被管理的设备中的网络管理软件模块。代理者控制本地机器的管理信息,以和SNMP兼容的格式发送这项信息。可以是一个独立的程序(在Unix中叫守护进程),也可以是已经 整合到操作系统中(比如:锐捷路由器的RGNOS,或者UPS中的底层操作系统) 管理进程和代理进程之间的通信可以有两种方式: 1)管理进程向代理进程发出请求: 1.1)询问一个具体的参数值(例如:你产生了多少个不可达的ICMP端口) 1.2)要求改变代理进程的参数值(例如:把默认的IPTTL值改为64) 2)代理进程主动向管理进程报告有某些重要的事件发生(例如:一个连接口掉线了) 0x2:网络管理体系架构 1.管理信息库MIB(ManagementInformationBase) 管理信息库(MIB)包含所有代理进程的所有可被查询和修改的参数。RFC1213[McCloghrieandRose1991]定义了第二版的MIB,叫做MIB-II MIB是一个数据库的概念 2.管理信息结构SMI(StructureofManagementInformation) 关于MIB的一套公用的结构和表示符号,这个在RFC1155[RoseandMcCloghrie1990]中定义 SMI是一个数据结构的概念 3.简单网络管理协议SNMP(SimpleNetworkManagementProtocol) 管理进程和代理进程之间的通信协议,在RFC1157[Caseetal.1990]中定义 SNMP是一个协议、以及通信流程的概念 值得注意的是: 对协议和管理信息结构的良好分离使得使用SNMP来监测和管理同一网络内上百的不同子系统非常简单。MIB模型运行管理OSI参考模型的所有层,并可以扩展至诸如数据库,电子邮件以及J2EE参 考模型之类的应用。 MIB(ManagementInformationBase) 对于MIB,我们可以理解为一个中央数据库,用来保存网络中各种设备的参数信息 1.管理信息库MIB指明了网络元素(网络中的设备)所维持的变量(能够被管理进程查询和设置的信息) 2.MIB给出了一个网络中所有可能的被管理对象的集合的数据结构 3.MIB管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字,它又称为对象命名(objectnamingtree) 类似于数据库中常说的唯一标识每条记录的,在MIB中,由对象识别符(OID:ObjectIdentifier)唯一指定每条MIB记录。   MIB是一个树形结构(点分树形结构),SNMP协议消息通过遍历SNMPMIB树形目录中的节点来访问网络中的设备 在这课,即 Root->iso->org->dod->internet->mgmt->mid.. {1.3.6.1.2.1} 最初的结点mib将其所管理的信息分为8个类别 类别 标号 所包含的信息 system interfaces addresstranslation ip icmp tcp udp egp (1) (2) (3) (4) (5) (6) (7) (8) 主机或路由器的操作系统 各种网络接口及它们的测定通信量 地址转换(例如ARP映射) Internet软件(IP分组统计) ICMP软件(已收到ICMP消息的统计) TCP软件(算法、参数和统计) UDP软件(UDP通信量统计) EGP软件(外部网关协议通信量统计) 例如,我们可以使用1.3.6.1.2.1.1来标识,从而对指定项进行信息获取以及参数设定 SMI(StructureOfManagementInformation) 对于SMI,我们可以把它理解为一个数据结构,一个规范规则。在继续深入学习SMI之前,我们需要先来了解一下ASN.1 ASN.1: 高级数据描述语言,描述: 1)数据类型 2)结构 3)组织 4)编码方法 包含语法符号和编码规则两大部分 //SMI是ASN.1的子集 SMI是SNMP的描述方法。但是因为ASN.1功能很强大,但SNMP只用到其中一小部分,为了方便使用,对这部分内容做了描述,限定了范围,这就是SMI。SMI由ASN.1的一个和一部分自 定义的类型、宏等组成。SMI是ASN.1的一个子集 管理信息结构SMI(structureofmanagementinformation)指定了在SNMP的MIB中用于明确和无二义性而定义的语言。它是定义被管理网络实体中特定数据的语言 SMI定义了: 1)数据类型 2)对象模型 3)写入管理信息的规则 4)修改管理信息的规则 我们接下来讨论一下SMI中定义的数据类型: 1.Integer整型 Signed32bitInteger(valuesbetween-2147483648and2147483647) 有符号32位整数(值范围:-2147483648~+2147483648) 2.Integer32 SameasInteger.与Integer相同 3.UInteger32 Unsigned32bitInteger(valuesbetween0and4294967295) 无符号32位整数(值范围:0~4294967295) 4.OctetString Arbitrarybinaryortextualdata,typicallylimitedto255charactersinlength 任意二进制或文本数据,通常长度限制在255个字符内。 5.ObjectIdentifier AnOID 一个OID 6.BitString Representsanenumerationofnamedbits.Thisisanunsigneddatatype 表示取名的位的枚举。这是一个无符号的数据类型 7.IpAddress AnIPaddress.一个IP地址,值范围0到65535 8.Counter32 Representsanon-negativeintegerwhichmonotonicallyincreasesuntilitreachesamaximumvalueof32bits-1(4294967295dec),whenitwraps aroundandstartsincreasingagainfromzero 表示一个非负的整数(可递增到32位最大值-1),然后恢复并从0开始递增 9.Counter64 SameasCounter32buthasamaximumvalueof64bits-1 与Counter32相同,最大值为64位的最大值-1 10.Gauge32 Representsanunsignedinteger,whichmayincreaseordecrease,butshallneverexceedamaximumvalue 表示无符号整数,可增加或减少,但是不超过最大值 11.TimeTicks Representsanunsignedintegerwhichrepresentsthetime,modulo2ˆ32(4294967296dec),inhundredthsofasecondbetweentwoepochs 表示代表数据的一个无符号整数,2^32取模(4294967296),两个值之间为百分之一秒。 12.Opaque Providedsolelyforbackward-compatibility,itsnolongerused 提供向下兼容,不再使用的数据类型 13.NsapAddress RepresentsanOSIaddressasavariable-lengthOCTETSTRING 表示一个用变长八进制字符窗表示的OSI地址 SNMP(SimpleNetworkManagementProtocol) SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于SNMPMIB定义信息的各种查询 从图中我们可以看到,不论是攻击者还是安全测试人员要对网络中的设备进行。 对于更安全地配置来说,还会在从代理上设置白名单,只允许指定IP、MAC的设备进行SNMP访问 SNMP网络管理体系总体架构图   2.SNMP协议 简单网络管理协议(SNMP:SimpleNetworkManagementProtocol)是由互联网工程任务组(IETF:InternetEngineeringTaskForce)定义的一套网络管理协议该协议基于简单网关监视协议(SGMP:SimpleGatewayMonitorProtocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理 1.SNMP从代理(网络中的设备)和管理站(主代理)通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。 2.SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。 3.SNMP采用UDP 161端口接收和发送请求,162端口接收trap 和其他大部分的协议一样,SNMP包含了多种数据报类型 1.GETREQUEST 从代理进程处提取一个或多个参数值 2.GETNEXTREQUEST 从代理进程处提取一个或多个参数的下一个参数值 3.GETRESPONSE 设置代理进程的一个或多个参数值 4.SETREQUEST 返回的一个或多个参数值。这个操作是由代理进程发出的。它是前面中操作的响应操作 5.TRAP 代理进程主动发出的报文,通知管理进程有故障或错误发生 6.GETBULKREQUEST 7.INFORM   SNMP的数据报格式 和其他的协议类似,SNMP中有不同种类的数据报,所以它们的协议格式在大框架相同的情况下,内部也略有不同,我们来分别学习 0x1:GETREQUEST、GETNEXTREQUEST、GETRESPONSE、SETREQUEST   1.版本识别符(versionidentifier) 确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。 该字段的值是通过SNMP版本号减去1得到的: 1)0代表SNMPv1 2)1代表SNMPv2 3)2代表SNMPv3 2.团体名(CommunityName) 用于SNMP从代理对SNMP管理站进行认证 1)如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息 2)如果成功,则继续进行下一步set/get操作 5.1)GETREQUEST、GETNEXTREQUEST、GETRESPONSE value为空,只有名称 5.2)SETREQUEST 名称+值对 0x2:Trap 1.版本识别符(versionidentifier) 确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。 该字段的值是通过SNMP版本号减去1得到的: 1)0代表SNMPv1 2)1代表SNMPv2 3)2代表SNMPv3 2.团体名(CommunityName) 用于SNMP从代理对SNMP管理站进行认证 1)如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息 2)如果成功,则继续进行下一步set/get操作 是管理进程(主代理)和代理进程(从代理)之间的口令,是明文格式,默认为public(这显然是一个明文弱密码,这也是很多SNMP存在风险的原因) 3.协议数据单元(PDU) 其中PDU指明了SNMP的消息类型及其相关参数 1)PDU类型 4表示trap 2)企业 3)代理的IP地址 4)trap类型 4.1)0:coldStart:代理进程对自己初始化 4.2)1:warmStart:代理进程对自己重新初始化 4.3)2:linkDown:一个接口已经从工作状态改变为故障状态,报文中的第一个变量标识此接口 4.4)3:linkUp:一个接口已经从故障状态改变为工作状态,报文中的第一个变量标识此接口 4.5)4:authenticationFailure:从SNMP管理进程收到无效的报文 4.6)5:egpNeighborLoss:一个EGP邻站已变为故障状态。报文中的第一个变量包含此邻站的IP地址 4.7)6:enterpriseSpecific:在这个特定的代码字段中查找trap信息 5)特定代码 6)时间戳 7)名称、值对 3.SNMP通信流程抓包实验 在ubuntu下安装启动SNMPD过程 1.安装snmp服务 apt-getinstallsnmpdsnmp 2.修改团体名 vi/etc/snmp/snmpd.conf 增加一条 com2secreadwritedefaultpublic 则外部可以用public团体名访问snmpMIB 3.修改snmpd服务启动参数 默认的snmpd是带参数127.0.0.1启动的,这样启动的时候就只能本机访问snmp服务,如果要让外部也能够访问snmp服务,则需要将该参数去掉。 vi/etc/default/snmpd,找到以下行: SNMPDOPTS=’-Lsd-Lf/dev/null-usnmp-I-smux-p/var/run/snmpd.pid127.0.0.1′ 去掉其中的127.0.0.1,保存 4.重启snmp服务 servicesnmpdrestart snmpwalk命令解释 USAGE:snmpwalk[OPTIONS]AGENT[OID] 1.OPTIONS: 1)-v1|2c|3 显示指定SNMP的版本号 2)-V 显示但前版本号 3)-cCOMMUNITY 指定团体号,即SNMP密码 4)-rRETRIES 设置失败重试次数 5)-tTIMEOUT 设置失败等待延时阈值 6)-mMIB[:...] 加载指定列表的MIB信息库,默认为ALL 7)-MDIR[:...] 加载制定路径的MIB信息库 2.AGENT 目标设备的代理地址(IP) 3.OID 可以是: 1)点分对象命名标识,例如:.1.3.6.1.2.1.25.2.2 2)指定条目名称,例如:system 常用的snmp命令有如下: 1.得到取得windows端的系统进程用户数等 snmpwalk-cpublic-v1-mALL192.168.159.128.1.3.6.1.2.1.25.1 2.取得系统总内存 snmpwalk-cpublic-v1-mALL192.168.159.128.1.3.6.1.2.1.25.2.2 3.hrSystemNumUsers snmpwalk-cpublic-v1-mALL192.168.159.128 4.取得IP信息 snmpwalk-cpublic-v1-mALL192.168.159.128.1.3.6.1.2.1.4.20 5.查看系统信息 snmpwalk-v2c-cpublic192.168.159.128system 6.ifDescr snmpwalk-v1192.168.159.128-cpublic 7.得到取得windows端的系统进程用户数等 snmpwalk-v2c-cpublic192.168.159.128.1.3.6.1.2.1.25.1 8.取得系统总内存 snmpwalk-v2c-cpublic192.168.159.128.1.3.6.1.2.1.25.2.2 9.取得系统用户数 snmpwalk-v2c-cpublic192.168.159.128hrSystemNumUsers 10.取得IP信息 snmpwalk-v2c-cpublic192.168.159.128.1.3.6.1.2.1.4.20 11.查看系统信息 snmpwalk-v2c-cpublic192.168.159.128system 12.获取网卡信息 snmpwalk-v2c-cpublic192.168.159.128ifDescr 13.获取全部信息 snmpwalk-v2c-cpublic192.168.159.128 0x3:SNMP通信抓包截图 get-request   get-next-request   get-response   4.SNMP存在的安全风险 0x1:主要威胁 1.信息修改 一些非授权实体可能改变由另一个授权实体产生的消息 2.未授权访问 一个实体伪装成一个授权实体来进行它无权进行的操作 1)community团队名暴力穷举 2)认证机制漏洞 2008-6-16US-CERT和其他机构警告企业,SNMP协议现在的版本存在严重漏洞,这个漏洞可以允许黑客绕过协议认证机制,伪装合法用户。这个漏洞可以使黑客在受影响的系统上完成一切 合法用户可以完成的行为。漏洞存在于SNMPv3的认证机制中,该机制使用键入的HashMessageAuthenticationCode(HMAC)。这是一种组合了密码算法散列式及密码密钥的运算,SNMPv3 的执行方法允许以缩短的HMAC编码以最少的HMAC字节(一个字节)使用在认证人栏位中认证代理,而将HMAC减少至一个字节是暴力破解法变得可行。黑客可以通过向受影响的计算机发送特制信息 包利用这些缺陷,可以查看并改变受到威胁的设备配置 3.泄密 窃听代理和管理站之间的数据交换。即流量嗅探。 SNMP2.0和SNMP1.0的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦捕获了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即使用户改变了 通信字符串的默认值也无济于事。 4.消息流修改 消息流修改是指消息可能被恶意地重排、延迟或者重发 5.拒绝服务 攻击者阻止管理站和代理之间的信息交换。 6.流量分析 攻击者观测管理站和代理之间流量的一般模式。 0x2:SNMP安全测试相关工具 1.HNMS http://www.nas.nasa.gov/Groups/LAN/Trouble/HNMS.html 2.RMON 3.tkined http://www.ibr.cs.tu-bs.de/projects/nm/scotty/tkined.html 4.NET-SNMP http://www.net-snmp.net/ 5.Mon 系统监视工具 http://consult.ml.org/~trockij/mon/ 6.IKT 故障监测工具 http://pikt.uchicago.edu/pikt/ 7.Scotty 网络管理工具 http://www.cs.utwente.nl/~schoenw/scotty/ 8.BigBrother 系统监视工具 http://www.iti.qc.ca/iti/users/sean/bb-dnld/ 9.MRTG 网络流量监视工具 http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html 10.cmu-snmp SNMP工具 http://www.gaertner.de/snmp/ Copyright(c)2014LittleHannAllrightsreserved
上一篇:利用360浏览器抓包分析WEB服务端的安全性
查看[浅议SNMP安全、SNMP协议、网络管理学习]所有评论
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:
推荐内容
关于我们 服务价格 联系我们 企业网站优化 沈阳网站建设 沈阳维修电脑