平时,我们看到的路由器入侵事件不多,因此在很多人的印象中,路由(Routing)只是选择通过互联网络从源节点向目的节点传输信息的通道。其实,路由器的安全隐患很多,由于一般黑客接触得不太频繁,被攻击的事件很少发生。但是如果路由器被攻击,后果将不堪设想。
路由安全,不可忽视
路由器是内部网络与外界的一个通信出口。它在一个网络中充当着平衡带宽和转换IP地址的作用,实现少量外部IP地址数量让内部多台电脑同时访问外网。一旦黑客攻陷路由器,那么就掌握了控制内部网络访问外部网络的权力。而且如果路由器被黑客使用拒绝服务攻击,将造成内部网络不能访问外网,甚至造成网络瘫痪。
一般来说,路由器的配置方式有:用主控Console口接终端配置;在AUX口接Modem同电话网相连,在远端配置;在TCP/IP网上可通过仿真终端(virtual termianl)telnet配置;可以从TFTP Server上下载配置;另外,还可以用网管工作站进行配置。路由器攻击造成的最大威胁是网络无法使用,而且这类攻击需要动用大量靠近骨干网络的服务器。其实,路由器有一个操作系统,也是一个软件,相对其他操作系统的技术性来说,差距是非常明显的。由于功能单一,不考虑兼容性和易用性等,核心固化,一般管理员不允许远程登录,加上了解路由器的人少得很,所以它的安全问题不太明显。有时候偶尔出现死机状态,管理员一般使用reboot命令后,也就没什么问题了。
也正因为这样,致使很多路由器的管理员对这个不怎么关心,只要网络畅通就可以了,因为路由器通常都是厂家负责维护的。甚至有些厂家总爱附带一句说:“如果忘记了口令,请和经销商联系。”事实上,连Unix都有很多漏洞,何况路由器脆弱的操作系统?当然路由器一般是无法渗入的。因为,你无法远程登录,一般管理员都不会开的。但是让路由器拒绝服务的漏洞很多。而且,很多管理员有个毛病,他们往往对Windows的操作系统补丁打得比较勤,但是对路由器的操作系统的补丁,很多管理员都懒得去理。
“万能密码”攻击路由
早在学校的时候,小张就对路由器的设置很感兴趣,管理机房的导师也是这方面的行家,据说学校机房的一台路由器的操作系统就被他给反编译分析了。根据导师的说法,路由器的操作系统比起Linux来要简单得多,而且那个型号的路由器存在着像计算机BIOS一样的口令,有了这个口令,很多事情就方便多了,这就是为什么有些路由器公司的手册上有那句话:“如果忘记了口令,请和经销商联系。”看来,这种情形放到其他软件公司开发的产品上也不过分。根据小张的猜想,每个路由器都有一个万能密码,如果真这样,那后果就不堪设想了。
毕业后参加工作,小张来到了一家网络公司。通过对公司的网络设置观察,小张发现,由于一般机器都有防火墙,包过滤通常安装在路由器上,并且大多数路由器都提供了包过滤的功能。现在小张想做的,就是实践导师所说的那个“万能密码”,而且很巧的是,单位里用的路由器也是导师反编译过的那个型号,但是想获得连接路由器的控制权力还是要费点事的。小张选择了对路由器管理接口的入侵,通过获取路由器的登录口令到设备内部,然后看看设备的配置,只要不影响到网络的正常运行就可以了。通过观察,小张发现有台备份数据库的计算机和交换机是一个网段的,按道理说,应该是通的。经过一个小小的远程测试,果然如此。看来,就要用这个备份数据库来“偷窥”密码了。
找了个理由,小张非常轻松地进入了备份数据库,打开FTP端口,然后轻松地安装了一个代理服务器。现在该做点其他的事情了,小张回到自己的机器上,测试了一下Proxy+这个软件。到http://skycn下载后,然后一路“Next”在本机安装完毕,启动软件后界面如图1所示。
图 1
路由攻击有理可依
传统的包过滤功能在路由器上常可看到,而专门的防火墙系统一般在此之上加了功能的扩展,如状态检测等。由于包过滤是一种保安机制,它通过检查单个包的地址、协议、端口等信息来决定是否允许此数据包通过。网络中的应用虽然很多,但其最终的传输单位都是以数据包的形式出现,这种做法主要是因为网络要为多个系统提供共享服务。例如,文件传输时,必须将文件分割为小的数据包,每个数据包单独传输。每个数据包中除了包含所要传输的内容,还包括源地址、目标地址。数据包是通过互联网络中的路由器,从源网络到达目的网络的。路由器接收到的数据包就知道了该包要去往何处,然后路由器查询自身的路由表,若有去往目的的路由,则将该包发送到下一个路由器或直接发往下一个网段;否则,将该包丢掉。结构如图2所示。
图 2
在局域网和Internet之间放置过滤器后,就可以保证局域网与Internet所有的通信数据都要经过过滤器。于是,小张观察到网管在reboot路由器的时候,就开动了包过滤软件。果然,周一网管进行例行检测的时候,IP数据包就源源不断地传过来了。在观察的时候,小张立刻以最快的速度下载下记录文件,并恢复了出口路由器上的设置,然后删除掉在备份数据库服务器上安装的所有东西并断掉连接。开始在自己的机器上分析拦截下来的数据包。根据以前telnet的数据包试验分析,所以不费吹灰之力,密码的位置在杂乱的数据包中很快就被试验出来了。