实验四 应用层SNMP协议分析
【实验目的】
熟悉对相应应用的探测工具,分析应用层SNMP的具体实施
【实验要求】
1、基本网络端口扫描工具的使用,比如Superscan V4,探测提供SNMP服务的设备;
2、理解应用层SNMP协议工作原理;
3、使用Windows平台上的snmputil.exe程序实现SNMP交互;
4、利用协议分析工具分析SNMP协议报文格式。
【实验报告要求】
1. 实验报告须按实验成果提交
2. 实验名称按本指导书给出的实验名称填写
3. 实验报告写明实验日期、班级、姓名、学号
4.使用snmputil.exe程序实现SNMP交互的过程及截图写入报告。
5.认知SNMP报文编码的基本规则ASN.1,分析高层采用复杂编码的原因。
【实验原理】
1、 snmputil工具使用方法
snmputil是Microsoft Windows 2000 Resource Kit中的一个工具,可到http://www.microsoft.com/Windows2000/techinfo/reskit/default.asp站点上下载。该工具文件大小只有9kB,小巧实用,是一个DOS命令行工具。我们首先了解一下snmputil的命令行格式及各参数的用法。
Snmputil命令格式:
Snmputil {{get|getnext|walk}agent community oid[oid…]trap}
◆get:获取指定oid当前值的信息。
◆getnext:获取被oid指定项目后在MIB项目中的当前值信息,即下一个信息。
◆walk:分步通过检索在管理信息库中指定的oid所有数据项的值,获取系统信息。
◆agent:查询指定的计算机,如果计算机在主机文件中被指定,该值可以是一个IP地址或主机名。
◆community:指定的一个公用名,通常与管理团体一起使用团体计算机。可以通过选择“控制面版”中的“网络”图标,在“SNMP Service的属性”对话框中看到一个公用名列表,或在注册表中查找SNMPParameters子键的ValidCommunities的键值。默认时,在Windows NT中安装SNMP的时候就创建了一个称为public的Community。通常将Community Strings称为“查询密码”。
◆oid: oid(Object identifier——对象标识符)是管理信息库中各种信息存放树资源的数字标识,是ASN.1名的查询变量,格式为.N.N.N.N,不同的数值对应于不同的信息。
如何通过SNMP得到远程主机的信息呢?有了通用的Community Strings值,当然获取远程主机的信息是相当简单的事情,因为不同的信息对应着不同的oid(oid的数值可以查阅相关的资料),在此列出扫描工具常用的几组oid值。
(1)列出目标主机系统进程信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.25.4.2.1.2
在Windows 2000系统的命令行中输入此命令,执行后将列出远程目标主机的系统进程信息,从这些信息中,攻击者就能判断出目标主机所运行的服务。例如,目标主机是否安装了Web服务以及其他服务信息。
(2)列出目标主机系统用户账号列表
snmputil walk [目标主机IP地址] public .1.3.6.1.4.1.77.1.2.25.1.1
在Windows 2000 的命令行中输入此命令,则将列出远程目标主机的账号信息。
通过这些信息可以清楚地看出目标主机的账号信息,对于黑客来说,取得了系统账号就意味着已经离攻破主机不远了,而对于那些弱口令的账号,更是不堪一击了。
(3)列出目标主机域名信息
snmputil walk [目标主机IP地址] public .1.3.6.1.4.1.77.1.4.1.0
(4)列出目标主机系统安装的软件信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.25.6.3.1.2
在Windows 2000的命令行中输入此命令,则可以列出远程目标主机系统安装的软件列表。
作为攻击者完全可通过这些信息分析出系统的安全性来。如果攻击者分析出远程主机系统没有及时打安全补丁,而再通过(1)中的进程信息发现远程主机也打开了IIS服务,他会轻而易举地判断出IIS的服务漏洞或远程溢出漏洞,通过远程溢出,攻击者可轻易取得Administrator权限,最终控制远程主机。因此,网管员应时时关注系统的安全公告,及时打好系统安全补丁,这样才能防范好黑客入侵行为。
(5)列出目标主机的系统信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.1
【实验步骤】
getnext的功能是获取指定SNMP变量的下一个变量的值及其OID。因为一个设备的所有SNMP变量都是规则排列的,所以使用getnext命令参数就可以获取一个设备中的所有变量值及OID,而不需要事先知道它们的准确OID值。
(5)列出目标主机的系统信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.1
【实验总结】
本次实验难度不大,但是出现了很多问题,首先snmputil在Windows 7下不能使用。我得去换了Windows server2003才能使用。很多参数看不懂。查看资料,但也有很少说明的。还需要多加看看。
本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/800001