危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18787726

揭秘SNMP黑客攻防战

提起SNMP (Simple Network Management Protocol,简单网络管理协议),—般用户可能比较陌生。但是对于网络管理员来说,却是经常使用到的技术。SNMP用于在网络环境中管理网络节点(包括服务器、工作站、防火墙,路由器、网络打印机等网络设备),几乎所有的网络设备都可以通过SNMP进行监控和管理。通过SNMP,网管员不仅能够有效的管理网络,还可以及时发现并解决各种网络问题,接下来危险漫步就给大家介绍使用SNMP的步骤:

—、安装SNMP服务

打开"添加删除程序"窗口,点击"添加删除Windows组件"按钮,在Windows组建向导窗口中双击"管理和监视工具"项,在打开的窗口中选择"简单网络管理协议"项,确定后完成SNMP服务的安装操作。

二、配置SNMP服务

SNMP将Community Strings(团体名称)作为唯—的验证方法,通过这种验证机制,可以通过SNMP很容易的探测系统的重要信息。在"开始"——"运行"中执行"servlces.msc"命令,在服务管理器中双击"SNMP Service"项,在其属性窗口中打开"安全"面板,在"接受团体名称"列表中双击"Public"项,在SNMP服务配置窗口打开"团体权力"列表,可以看到Windows提供无、通知、只读、读写、读创建等5种团体权限,在默认情况下拥有只读权限。当连接到目标主机的SMNP服务后,SNMP就会对MIB(管理信息库)进行访问,该数据库中包含

了系统的所有重要信息。不管是Windows系统,还是常见的网络设备,通常都将Public作为默认的团体名称,因此,通过该团体名称,就可以收集目标机的重要信息。在SMNP服务中还有——个很重要的概念-Object Identifier(对象标识符),它是管理信息库中表示各种信息存放树的数字符号,格式为".X.X.X.X.X",不同的数值符号代表不同的信息类型,例如".1.3.6.2.1.25.4.2.1.2"就代表目标机的

系统进程信息等。

三、通过SNMP探测敏感信息

当开启了SNMP服务后,系统会开启UDP161/162端口。黑客使用Windows 7的资源包中提供的"Snmputil.exe"程序,就可以执行SNMP探测操作。例如,当黑客想获得IP为169.254.140.109主机上的进程信息,只需在CMD窗口中执行命令"snmputil walk 169.254.140.109public .1.3.6.1.2.1.25.4.2.1.2",可以得到IP为"169.254.140.109"(当然,您也可以将其更换为所需的IP)的主机上的进程列表。其中的"walk"参数表示取得指定OID(对象标识符)所有数据项的值,"public"参数表示默认的团体名称,".1.3.6.1.2.1.25.4.2.1.2"参数是对象标识符,这里代表目标机上的进程列表。在返回的系统信息中的"Variable"后面的字符串表示进程的ID,"Value"后面的就是具体的进程名称了。当黑客想获得该机上账户信息的话,执行命令"snmputil walk 169.254.140.109 public .1.3.6.1.4.1.77.1.2.25.1.1",就可以看到该机详细的账户列表了。其中的".1.3.6.1.4.1.77.1.2.25.1.1"参数表示对象标识符,这里指取得目标机上的用户列表。在返回的系统信息中"Value"后面的就是用户的名称。当黑客想得到该机的域名信息,只需执行命令"snmputil walk 169.254.140.109 public.1.3.6.1.4.1.77.1.4.1.0",就可以看到其域名了,其中的".1.3.6.1.4.1.77.1.4.1.0"表示获域名的对象标识符。当黑客想浏览目标主机上的软件信息时,执行命令"snmputil walk 169.254.140.109 public .1.3.6.1.2.1.25.6.3.1.2",可以预览该机已经安装的软件信息,在返回信息的"Value"后边就是具体的软件名称,其中的".1.3.6.1.2.1.25.6.3.1.2"表示软件信息的对象标识符。当黑客想获取该机的详细信息,只需执行命令"snmputil walk 169.254.140.109 public .1.3.6.1.2.1.1",该机的全部系统信息就会——览无余。在返回信息中的"Variable= system.sysDescr.0"下面会显示"Value"项目,该值表示目标机的工作平台。例如X86 Intel平台等,在"software"栏中指明包含的就是目标机操作系统的类型,例如Windows 7等,其中的"system.sysName.0"下面的"Value"中的值说明了目标机的名称。当然,使用SNMP检测技术,还可以获得目标主机的更多信息,这里就不逐—讲述了。

四、探测SNMP团体名称

当然,如果不知道SNMP服务中的团体名称,就无法展开有效的探测。借助于LANguard Network Security Scanner这款扫描工具,黑客可以毫不费力的找出目标主机上所有的SNMP团体名称。在LANguard Network Security Scanner主窗口中打开"Utilities"面板,在窗口左侧点击"SNMP Audit"项,在右侧窗口中点击"Option"按钮,在弹出窗口中点击浏览按钮,选择合适的密码文件。当然,也可以使用程序自带的密码文件,之后在"IP of computer running SNMP"栏中输入目标机的IP地址,点击"Retrieve"按钮就可以进行探测了。只要密码字典足够强,目标主机上的SNMP团体名称很快就会全面"暴露"。

五、防御非法WSNMP探测

黑客使用上面分析的SMNP探测技术,可以轻松获取目标机的敏感信息。面对这种潜在的威胁,该如何防御呢?最直接的方法就是更改SNMP团体的名称,将其设置的复杂—些。在服务管理窗口中双击"SNMP Service"项,在其属性窗口的"安全"面板中的"接受团体名称"中选中"public"项,点击"编辑"按钮,对其名称进行更改编辑即可。同时,在"团体权力"列表中尽可能将Public团体名权限设置为最小(例如设置为"无"等)。或者干脆点击"删除"按钮,将Public团体名删除,之后点击"添加"按钮,创建新的团体名称。为了防止来自不明主机的检测操作,最好为SNMP服务指定允许访问的主机地址。选择"接受来自这些主机的SNMP包"项,点击"添加"按钮,输入允许访问本机SNMP服务的IP地址。这样,就可以将无关主机排除在外了。

六、加密SNMP通讯,拒绝非法嗅探

SNMP服务使用明文进行通讯,这样黑客很容易利用各种嗅探工具抓取SNMP数据包,从而破解敏感信息。最好的应对办法就是对SNMP服务的通讯数据进行加密处理。借助于Windows提供的IP安全策略,就可以完成加密操作。

第—步:在"开始"——"运行"中执行"gpedit.msc"命令,在组策略编辑器中依次展开"计算机配置"——"Windows设置"——"安全设置"——"IP安全策略"分支,在右侧窗口中的右键菜单中点击"管理lP筛选器表和筛选器操作"项,在打开的窗口点击"添加"按钮,在IP筛选器窗口中输入筛选器名称和描述信息,例如将其名称设置为"DenySNMP"等。

第二步:点击"添加"按钮,在筛选器向导界面中的"IP通信源"窗口中的"源地址"栏中选择"我的IP地址"项,在"IP通讯目标"窗口的"目标地址"栏中选择"任何IP地址",在"IP协议类型"中选择"UDP"类型,在"IP协议端口"窗口中选择上面的"从此端口"项,并输入"161",同时选择底部的"到此端口"项,同样输入161端口,点击完成按钮返回"IP筛选器列表"窗口。按照相同的方法,为UDP 162端口也建立过滤规则。

第三步:在"管理IP筛选器表和筛选器操作"窗口中打开"管理筛选器操作"面板,点击其中的"添加"按钮,在筛选器操作向导的帮助下,输入筛选器操作的名称(假设为"SnmpFilter")。

在“筛选器操作常规选项”窗口中选择“协商安全”项,之后生成新的筛选器操作项。在组策略右侧窗口的右键菜单中选择“创建IP安全策略”,依次输入IP策略的名称和描述信息(例如名称为“加密SNMP数据传输”),之后在其属性窗

口中的“规则”面板中点击“添加”按钮,在新规则属性窗口的“IP筛选器列表”面板中选择前面创建的筛选器“DenySNMP”项,在“筛选器操作”面板中选择前面创建的筛选器操作项“Snmp Filter”,之后保存所有设置返回组策略窗口。

在“加密SNMP策略”的右键菜单项点击“指派”项,即可对SNMP通讯进行加密处理了。当然,如果使用IP安全策略为SNMP通讯加密的话,那么网络中的使用SNMP通讯的所有电脑都需要添加上述IP安全规则。