*Cisco IOS软件层叠SNMP共享社区字串漏洞
Cisco 配置文件中,意外创建和暴露SNMP共享字符串,可以允许未授权地查阅或者修改感染的设备。这种漏洞是调用SNMP函数中的缺陷引起的。SNMP利用“community”的标记来划分“object”组,可以在设备上查看或者修改它们。在组中的数据组织MIB。单个设备可以有几个MIBs,连接在一起形成一个大的结构,不同的社团字符串可以提供只读或者读写访问不同的,可能重叠的大型数据结构的一部分。
启用SNMP,键入“snmp-server”命令时,如果社区在设备上不是以有效的社区字串存在,就会不可预料地添加一个只读社区字串。如果删除它,这个社区字串将会在重载设备时重新出现。
缺陷源于SNMPv2的“通知(informs)”功能的实现,这个功能包括交换只读社区字符串来共享状态信息。当一个有漏洞的设备处理一条定义接收SNMP "traps"(陷阱消息)主机的命令时(常规snmp-server配置),在trap消息中指定的社团也还是配置成通用,如果它在保存配置中没有定义。即使社区在前面被删除并且配置在系统重载前保存到存储器,也会发生这种情况。
当通过"snmpwalk"(一种检测SNMP配置正确性的工具),或者使用设备的只读社团字符串遍历基于视图的访问控制MIB来检查设备时,就会泄漏读写社团字符串。这意味着知道只读社区字串允许读访问存储在设备中的MIB,导致信息泄露。而更为严重的是,如果知道读写社区字符串就可以允许远程配置的路由,可以绕开授权认证机制,从而完全控制路由器的整体功能。
【另类攻击】
前面的漏洞综述,似乎我们都在围绕着如何获得路由配置信息而讲述,因为得到一个完整Router-config,那么我们便掌握了路由的世界。下面的入侵方法则另辟奚径。
*TFTP的艺术
Cisco的熟练管理员,一般习惯于Cisco免费提供的TFTP服务器(http://www.cisco.com/pcgi-bin/tablebuild.pl/tftp),而Cisco培训的书籍总会介绍使用copy running-config tftp的命令来保存路由配置文件。于是获得TFTP就有可能获得路由配置文件。
幸运的是,TFTPD守护程序存在目录遍历的漏洞,允许远程用户从目标系统中获得任意文件。我们可以通过下面简单方法获取目标系统中的任何文件:
Exploit
tftp> connect target_machine
tftp> get cisco-conf.bin
Recieved 472 bytes in 0.4 seconds
tftpd> quit
而这个免费软件还没有任何修补措施,因此借助这种方式,可以不费吹灰之力就可能得到一份完整的路由配置存档。
*SSH安全感
通过Telnet管理方式,造就了一批密码窃听者。通过明文的ASCII的网络传输形式,窃听者随便放置嗅探装置(sniffer),就可安闲的等待着登录用户,密码以及各类敏感信息自动送到面前。SSH加密方式在路由器的应用,大大的消灭了这种嚣张的气焰。
但入侵与反入侵本来就是个古老的话题。于是,SSH也开始有了危机感。Cisco SSH存在着三个精妙且复杂的漏洞,这种攻击的手法所涉及的知识已经大大超出本文的范畴,所以以简略的形式给予说明并指出应用漏洞的文章出处。(这些漏洞整理自中国网络安全响应中心CNSAN,http://www.cns911.com/holes/router/router01062902.php,在此对漏洞整理工作者的无私工作给予致敬。)
1.RC-32完整性检查漏洞
参考:http://www.core-sdi.com/files/files/11/CRC32.pdf
作者运用及其复杂的数学方式来证明这种漏洞的存在性,看懂这片文章需要相当的数学功底,本人在看这篇文章的时候也是头痛万分。不过文章中的理论分析十分精彩,初学者可以省略此漏洞。
CNSAN的文章则指出“要使这种攻击成功,攻击者要拥有一或者2个已知chipertxt/plaintext串,这一般并不难,因为每个进程启动时的问候屏幕是固定并可探测的,这样可以通过SNIFF进程来获得相应的chipertext”。
2.通信分析
参考:http://online.securityfocus.com/archive/1/169840
CNSAN的文章论述:“要利用这个漏洞,攻击者必须捕获信息包,这样可以分析使用的密码长度并用暴力手段猜测密码”。
在SSH中封装明文数据时,数据从8字节的边界上开始封装并对数据进行加密。这样的包在明文数据长度之后进行某中数学封装,SSH在加密通道内以明文的方式传输,结果,能检测SSH传输的攻击就能获得SSH内的内容。文章还友善的给出了Patch程序来修正这个漏洞。
3.在SSH 1.5协议中KEY恢复
参考:http://www.securityfocus.com/archive/1/161150
CNSAN的文章论述:要利用这个协议,攻击者必须能嗅探SSH进程并能对SSH服务器建立连接,要恢复SERVER KEY,攻击者必须执行2^20+2^19=1572864 连接,由于KEY是一小时的生存时间,所以攻击者必须每秒执行400此连接。
这种技巧的要求非常高,通常的远程入侵中,使用KEY来获得SSH会话过程的概率相当之低。
*本地密码劫持
在所有入侵中,这种类型的入侵活动可谓是蓄谋以久的野蛮做法。方法本来的意图是用于管理员忘记密码后的恢复措施。而技术做为双刃剑的一面,便在于我们如何使用它。
如果你有一台笔记本电脑,你有一根与路由器相应类型的连接线,那么你配备了入侵路由的武器。剩下的时间,你将思考如何闭开网管的眼睛,把连接线与路由器连接。以后的动作,需要你行动迅速了。(以25xx系列路由为例)
1.切断路由器的电源。
2.连接计算机与路由器。
3.打开超级终端(CTL-Break in Hyperterm)。
4.在启动路由器的30秒时间内,迅速按CTL-Break组合键,使路由器进入rom monitor 状态,出现提示符如下:
Followed by a '>' prompt...
5.输入 O/R 0x2142,修改配置注册器(config register)路由器从Flash
memory引导。
6.输入I,路由器初始化设置后重新启动。
7.输入系统配置 对话提示符敲no,一直等提示信息显示: Press RETURN to get started。
8.输入enable 命令,出现Router# 提示符。
这是,我们可以完全使用show命令查看路由中的一切配置,并可转储到计算机上。如果使用了enable的加密方式,虽然现在无法看,但可以使用工具进行破解。当然,粗鲁的做法是直接修改:
Router#conf term
Router(conf)#enable password 7 123pwd
进行完以上操作,别忘了恢复路由的正常状态,否则网管很快就能发现问题所在:
Router(conf)#config-register 0x2102
Router(conf)#exit
至此,我们从几个方面试图获得整个路由的配置,那么如何进一步扩大入侵的战果,一些令人激动的工具给我们带来的无比愉悦的方便。