路由器是网络中常用的网络设备,是他将我们的服务器在茫茫网海中联系起来。只有通过他,我们才能使用最合理的数据通路将数据发送到对方,也就是说路由器提供了互联网数据通路的节点。在《黑客防线》2003年第一期南阳岩冰写的《保护网络从路由器做起》一文中,我们已经基本了解了怎样安全的配置好一台CISCO路由器,下面我们将使用SolarWinds2002这个软件对CISCO路由器进行简单的安全检测工作。
*基本知识*
1. 路由器一般的远程控制方法有两种,一是Telnet,另外一个是同过SNMP代理。大家常用的Telnet就不说了,第二种控制方式是通过在路由器上配置好SNMP代理,包括MIB变量访问、MIB变量设置、SNMP中断和SNMP团体字符串四项功能,再在远程使用基于SNMP应用协议的管理软件(如CISCO WORKS 2000)进行远程管理,也可以在路由器上开放80端口,用浏览器进行远程管理。
2. CISCO路由器登陆口令分为用户访问口令和特权级口令(enable)。缺省情况下,路由器上所有控制台口令是以明文形式存储在路由器配置中。使用enable password命令设置的密码是用Cisco的type 7型加密算法实现的,可以反向解密的,而管理员使用enable secret命令设置的密码,是用MD5散列算法进行加密,破解有较大难度。
3. SNMP团体字符串一般是有两种。一是public,代表对路由器资源只读权限;二是private,代表对路由器资源可读写权限。
*检测详解*
首先,我们需要一个专门的,集扫描、破解、管理等功能于一身的软件:SolarWinds 2002。下载地址和注册方法都在灰色轨迹的下载栏中可以找到,我就不多说了。
安装完毕并运行后,就可以看到她的工具条了,根据不同的应用工具条被划分为11个栏目。根据入侵win2k的经验,我们要入侵CISCO路由器,也是要先用扫描器寻找存在漏洞的CISCO路由器。而出现这个漏洞的原因一般也是因为管理员没有正确配置好路由器,导致我们可以对CISCO路由器的配置文件进行读写操作。打开SolarWinds工具条Discovery栏中的IP Network Browser工具,在其Settings配置对话框中,选中public并删掉它,只保留private SNMP团体字符串。这样扫描出来的CISCO路由器一般就具有可对配置文件读写的权限。
确定Settings配置后,在Scan an IP Address Range下的Begining IP Address和Ending IP Address中分别填上你想扫描的起始IP地址和结束IP地址。然后单击“Scan Address Range”,开始扫描。
呵呵,运气不错,一会儿后我们便有了想要的东西。选中这个有漏洞的CISCO路由器,单击工具栏中的“Config”,SolarWinds便会自动打开TFTP服务并使用SolarWinds工具条Cisco Tools栏下的Config Editor/Viewer工具自动下载这个路由器的配置文件到SolarWinds安装所在分区的TFTP-Root目录下。可能是由于注册机或其他什么的原因,当使用Config Editor/Viewer试图打开这个下载的Config文件的时候,该工具自身会锁死。不过没关系,我们可以先将他关闭,再在Cisco Tools栏下打开Config Editor/Viewer工具,使用其工具栏上的“Diff”比较工具,打开刚才下载的Config配置文件。
下面是一份真实的Config配置文件:
!* ***.CiscoConfig //以路由器名称为文件名的.CiscoConfig文件
!* IP Address : *.*.*.* //路由器的IP地址
!* Community : private //注意到这个SNMP团体字符串,代表的是可读写权限
!* Downloaded 2003-2-7 1:28:31 by SolarWinds Config Transfer Engine Version 5.5.0
!
! Last configuration change at 16:10:53 UTC Tue Jan 28 2003
! NVRAM config last updated at 22:16:28 UTC Sat Nov 30 2002
!
version 12.0
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname video_center
!
enable secret 5 $1$Hhrr$yjzWaEMTBa8EzrLTlDaCT0 //使用MD5散列算法进行加密了的特权口令
enable password 7 094F5D0D014E1C16415D5279 //如果没有上面的enable secret,则特权口令就是这个type 7型加密算法加密的口令
……//中间太多太杂而省略
line vty 0 4
password video //这里是明文保存的访问口令
login
line vty 5 15
password video
login
!
end
像上面这个配置文件中的enable password 7 094F5D0D014E1C16415D5279这种使用type 7型加密算法加密的密码,我们可以用Cisco Tools栏下的Router Password Decryption工具进行破解,输入7 094F5D0D014E1C16415D5279并回车,就可以看到其真正的密码csdx+kd*163了。
我们看到的这个配置文件,访问口令是用明文保存的video,我们直接就可以用这个telnet上去了,不过只是普通模式,没有什么权限,我们需要的是得到Cisco路由器的特权。
由于其特权口令是使用MD5散列算法进行加密的,直接破解比较麻烦,这里可以使用Cain v2.5工具对Config配置文件中的口令进行破解。但这样的成功率不是很大,我们需要想另外一个办法突破他。你想到了吗?我们扫描用的SNMP团体字符串是private,具有读写能力,于是我们就有了这招偷梁换柱。
先备份好刚下载的Config配置文件,再使用记事本找到“enable secret 5 $1$Hhrr$yjzWaEMTBa8EzrLTlDaCT0”这个字符串(不带引号),使用一个我们已知口令的MD5加密值代替进去。然后使用Cisco Tools栏下的Upload Config工具将修改好的这个Config配置文件上传到Cisco路由器上,这样我们就冲掉了原来的密码,当然也就可以用我们知道的口令进入特权模式了。再上传config文件时,Upload Config工具会询问是要覆盖当前running运行的config文件,还是覆盖闪存中的开机config文件,这里我们当然需要选择是第一个覆盖当前running运行的config文件这个选项。
不难看到,入侵CISCO路由器的朋友也就是钻了管理员的配置漏洞而已,对于要指定目标进行安全检测的情况,SolarWinds2002也为我们想得很周到。我们可以使用其工具条中Security Check工具,扫描试图破解出指定路由器具有可读写权限的SNMP团体字符串。除此之外,我们还可以使用工具条Security栏中的SNMP Brute Force Attack工具,对指定路由器的登陆及特权口令进行暴力猜解,或使用SNMP Dictionary Attack工具对指定的路由器的登陆及特权口令进行字典猜解。
OK, Cisco路由器简单的安全监测工作就这样完成了,当然进去之后,建议大家先使用#terminal history size 0命令将系统日志停掉,干完事后使用#clear logg和#clear line vty *两个命令删掉记录,最后一定要记得将首先备份的Config配置文件还原上去,以免影响管理员的正常维护工作。
另外,可能有的朋友遇到SolarWinds2002这样的大型英文软件会有点头痛。参照其帮助文件,我将各个工具栏中小工具的用途简单的列举了出来,希望对大家有用。
*SolarWinds2002中各个工具的简单说明*
使用版本:SolarWinds 2002 CATV Engineers Edition
Discovery栏
IP Network Browser 用于扫描于设定的SNMP字符串相同的路由器
Ping Sweep 用于扫描一段IP中有哪些正在被使用,并显示出其DNS名字
Subnet List 用于扫描路由下的分支网络,并给出了子掩码
SNMP Sweep 用于在一段IP下扫描哪些提供SNMP服务
Network Sonar 用于建立和查看TCP/IP网络构成数据库
DNS Audit 用于扫描定位本地DNS数据库错误
MAC Address Discovery 用于扫描一段IP内存在机器的MAC地址
Cisco Tools栏
Config Editor/Viewer 用于下载、查看、比较、备份Cisco路由和交换机配置
Upload Config 用于上传Cisco路由和交换机配置,可用于修改配置
Download Config 用于下载Cisco路由和交换机配置
Running Vs Startup Configs 用于比较正在运行的和开机的配置文件
Router Password Decryption 用于解密Cisco的type 7型密码
Proxy Ping 用于测试Cisco路由器是否具有代理ping的能力
Advanced CPU Load 用于建立、查看Cisco路由器或交换机CPU工作状态数据库
CPU Gauge 用于监控win2k、Cisco路由器或交换机CPU工作
Router CPU Load 用于及时监控Cisco路由器的cpu工作
IP Network Browser 用于扫描于设定的SNMP团体字符串相同的路由器
Security Check 用于扫描指定路由器的SNMP团体字符串
Ping Tools栏
Ping 用于ping主机
Trace Route 用于跟踪路由,查看经过的路由地址
Proxy Ping 用于测试Cisco路由器是否具有代理ping的能力
Ping Sweep 用于扫描一段IP中有哪些正在被使用,并显示出其DNS名字
Enhanced Ping 用于及时监视一定数量服务器、路由器等的相应能力
Address Mgmt栏
Subnet Calculator IP Address Management
IP Address Management 用于及时监控一段网络中IP的使用情况
DNS / Whois 用于获取一IP或域名的详细DNS信息
Ping Sweep 用于扫描一段IP中有哪些正在被使用,并显示出其DNS名字
DNS Audit 用于扫描定位本地DNS数据库错误
DHCP Scope Monitor 用于监控具有DHCP功能主机的子网络
Monitoring栏
Bandwidth Monitor 用于及时监控多个设备的通路与带宽情况
Watch It ! 用于telnet、web管理多