博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cisco路由入侵艺术(转)
阅读量:2455 次
发布时间:2019-05-10

本文共 5157 字,大约阅读时间需要 17 分钟。

Cisco路由入侵艺术(转)[@more@]

  奔流不息的网络里,Web绽放着绚丽的色彩、电子邮件呼哧的穿梭网际、语音电话、网络会议、文件传输,各种数据交织错落,形成辉煌的数字世界。在喧闹的数字世界底层,存在一种精致的次序,这种次序决定着数据的选路、异构介质衔接、协议的交互等功能。而这一次序的缔造者正是布满整个网络的路由器。于是,路由器成了数据通信的交通亭,也成为了众多黑帽(Blackhat)争夺的目标之一。

  Cisco路由器占据这网络世界的绝对位置,于是安全焦点效应激发了路由入侵与防御而产生的精美艺术。下面我将由浅入深的方式讲述Cisco入侵的手段以及防御策略。

  

  【路由器感冒】

  路由器从本身的IOS来说,并不是一个健壮的体系,因而它偶尔也会让自己感冒发烧。系统感冒发烧起来,抵抗力自然就降低不少。

  

  *IOS自身欺骗

  Cisco路由器是用IOS系统来实现路由的细节功能,因此它是路由系统的灵魂。Show命令的在线系统方式却为我们打开一个偷窥之门。

  众所周知,Cisco路由器中,一般用户只能查看路由器的很少信息。而能进入特权模式的用户才有资格查看全部信息和修改路由。一般模式下,show的在线帮助系统不会列表所有可用的命令,虽然75个show的扩展参数只能用于特权模式下(enable),实际上只有13个受到限制。这意味着一般用户(非特权用户)可以查看访问列表或其他路由安全相关信息。

  重要安全相关的ACL信息可以被登录路由的非特权用户查看,诸如:

  #show access-lists

  #show ip prot

  #show ip ospf dat

  #sh ip eigrp top

  等命令可以在非特权模式下泄露网络敏感信息。通过这些命令,我们能得出路由器配置的大致情况,这对采取进一步的入侵起到辅助作用。不过由于这种方式需要用户已经有一个登录帐户,因此得到这样的信息有一定难度。

  

  *WCCP暗道

  Cisco在IOS 11.2版本中引入WCCP(Web Cache Control Protocol),为Cisco缓存引擎提供协议通信。Cisco缓存引擎为www提供透明缓存服务。缓存引擎用WCCP来和其他cisco路由器通信。路由器把HTTP数据发送到缓存引擎主机中。

  虽然这种方式默认是关闭的。假如使能(enable)的话,那么WCCP本身是没有认证机制的。路由器将会把每一个发送合法缓存引擎类型的Hello包的主机认为缓存引擎,于是把HTTP数据缓存到那台主机。这意味着恶意用户可以通过这种方式获取信息。

  通过这种方式,攻击者可以截获站点认证信息,包括站点密码;替代实际WEB内容为自己设计的陷阱;通过路由彻底破坏Web提供的服务。这种方式,可以完全规避登录烦琐的攻击方法,对Web提供全面而且致命的打击。

  我们既可关闭WCCP的启用机制,也可通过ACL阻止WCCP发送HTTP流量给不信任主机来防止这样的恶劣情况发生。

  

  

  *HTTP服务的困惑

  Cisco在IOS版本加入了远程管理路由的Web特性,这对于新羽(newbie)的管理员来,无疑是值得高兴的事情。但引入方便的同时,隐患也随之进入。

  1.基于拒绝式服务攻击的HTTP的漏洞

      Cisco路由启用(enable)远程WEB管理,很容易遭受DoS。这种DoS能导致路由器停止对网络请求的响应。这是功能是Cisco路由的内嵌功能。但启用这个特性,通过构造一个简单的Http请求就会造成DoS攻击:

  http:///%%

  这种请求导致路由停止响应,甚至引起路由器执行硬重置(hard reset)。

  

  2.基于HTTP服务器查询的漏洞

  Cisco 安全建议小组在2000年10月30日公布了这个漏洞。IOS 11.0引入通过Web方式管理路由。”?”是HTML规范中定义的CGI参数的分界符。它也被IOS命令行接口解释成请求帮助。在IOS 12.0中,当问号邻接于”/”,URL解释器就不能正确解释其含义。当一个包括”?/”的URL对路由器HTTP服务器进行请求,并且提供一个有效的启用口令,则路由器进入死循环。因而引起路由崩溃并重起。

  如果http起用,浏览

  http://route_ip_addr/anytest?/

  并且提供特权口令,则可以导致DoS攻击,导致路由停机或者重启。

  除了让路由死亡之外,Http额外提供了一种可怕权限提升的漏洞,如下所论。

  

  3.Cisco IOS 认证漏洞

      当HTTP服务器启用并且使用本地用户认证方式。在某些条件,可以绕过认证并执行设备上的任何命令。用户可以对设备完全的控制。所有命令都将以最高特权执行(level 15)。

  使用username 和password的路由设备帐户认证方式,构造如下URL:

  http://router_ip_addr/level/xx/exec/….

  (注:xx代表16至99之间的84种不同的组合攻击,因为路由器硬件类型众多,而IOS版本也存在不同,因此针对不同的路由器类型,攻击组合数字不同。)

  通过这种方式,攻击者可以完全控制路由并可以改变路由表配置。这种可怕的事实让网管也感到惊悸。这种完整的控制方式将是网站数据通信枢纽的致命一击。

  

  虽然Http漏洞带来如此之多的漏洞,但这种漏洞最主要原因是因为启用http服务器管理路由的缘故,由于这种管理是种命令行方式的替代物,因此对于熟练的网管来说,没有必要启动这种危害性很大的服务。

  #no ip http server 的路由配置也成为时髦的安全配置语句。

  

  

  【在SNMP中行走】

  谈到Cisco路由的安全性,我们就必须涉及到SNMP这个看似简单,实际扮演着重要角色的协议,正因为它的存在,路由器的入侵变的丰富有趣多了。

  

  *SNMP基础简介:

  每个SNMP启用的路由设备都包含一个叫做管理信息模块(MIB),这是一种包含简单等级的数据目录结构,在这种树结构中包含设备各种信息。SNMP基本的命令GET,可以检索MIB的信息,而SET命令则可设置MIB变量。一种用于监控和管理CISCO路由的的软件工具是MRTG,至于如何配置其用于Cisco设备的监控可以参阅LOG的《怎样在Windows NT/2K下安装MRTG》一文http://www.2hackers.org/cgi-bin/2hb/topic.cgi?forum=7&topic=212)。

  在路由器中配置SNMP的方法如下:

  (conf)#snmp-server community readonly RO

  (conf)#snmp-server community readwrite RW

  SNMP协议通过社区(community)字串的概念赋予对设备MIB对象访问的权限。上例中,设置了只读访问的社区字串readonly和可进行读写操作的readwrite社区字串。而大部分管理员喜欢使用public和private设置只读字串和读写字串,疏不知,这样轻易的结果将给网络带来巨大的波动。我们可以在【触及RouterKit】部分清楚认识到这种危害。

  通过SNMP我们可以方便管理和监控Cisco的设备(参阅Log文章介绍),同时也给攻击者带来可乘之机。

  

  *Cisco IOS软件SNMP读写ILMI社区字串漏洞

  ILMI是一个独立的工业标准,用于配置ATM接口。MIB是一个树形结构,包括操作(只读)数据以及配置(读写)选项。在有漏洞的设备上,通过在SNMP请求中指定一个ILMI社团字符串,可以访问整个树形管理结构中三个特定部分的对象:MIB-II系统组,LAN-EMULATION-CLIENT MIB以及PNNI(Private Network-to-Network Interface)MIB。每一部分的子集对象都可以使用相同的“ILMI”社团字符串修改。

  MIB-II系统组包括设备本身的基本信息。能被修改对象的数目虽然是有限的。例如包括:

  system.sysContact.

  system.sysLocation.

  system.sysName.

  Cisco IOS软件版本11.x和12.0允许使用一个非文档的ILMI社区字串未经授权就查看和修改某些SNMP对象。其中就包括诸如上面所说的"sysContact","sysLocation",和"sysName"对象,虽然修改它们不会影响设备的正常操作,但如果意外修改可能会产生混乱。剩下的对象包含于LAN-EMULATION-CLIENT和PNNI MIBs,修改这些对象可以影响ATM配置。如果没有防止未授权使用ILMI社团字符串,一台有漏洞的路由器可能会遭受DoS攻击。

  如果SNMP请求可以被有漏洞的设备接收,那么没有适当授权,就可以访问某些MIB对象,违背了保密性。没有授权就可以修改可读MIB对象的子集,破坏了完整性。而更具有危害性的方法是向SNMP端口发送大量的读和写请求。有漏洞的设备,如果没有防范接收SNMP包的措施,就会遭受DoS攻击,导致路由重载。

  

  至于如何查看这些对象的信息,可以参阅【触及RouterKit】部分。

  

  *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,导致信息泄露。而更为严重的是,如果知道读写社区字符串就可以允许远程配置的路由,可以绕开授权认证

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8403220/viewspace-935258/,如需转载,请注明出处,否则将追究法律责任。

上一篇:
下一篇:
请登录后发表评论
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%>
回复

   回复   : <%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论
) data-count=1 data-flag=true>点击查看
<%}%>
<%}%> <%}%>
  • 博文量
  • 访问量
    6246437

最新文章

转载于:http://blog.itpub.net/8403220/viewspace-935258/

你可能感兴趣的文章
discord linux_Linux上的Discord聊天和VOIP,任何设备上的游戏流等等
查看>>
tilt brush_Linux,Tilt Brush Toolkit和更多开放游戏新闻发布了新的Minecraft启动器
查看>>
Nintendo Switch将使用Vulkan,System76有助于解决NVIDIA错误以及更多游戏新闻
查看>>
开源企业管理系统_为什么每个企业都应该考虑开源销售点系统
查看>>
ios 多线程gdc_《文明VI》将在Linux,GDC 2017和更多开放游戏新闻中亮相
查看>>
开源h5游戏 宠物_释放:宠物和动物的开源技术
查看>>
开源 xpack 买南非_南非的专业工程团队部署开源工具,挽救生命
查看>>
洛杉矶 夏威夷_夏威夷大学如何解决当今的高等教育问题
查看>>
硬件开源产品_将产品认证为开源硬件的9个理由
查看>>
决议要素_5项决议成为2017年更开放的领导者
查看>>
战神4 幕后花絮 概念艺术_幕后花絮介绍了锻炼技巧,以提高编码技能
查看>>
业务监控 开源_您的开源项目的业务计划
查看>>
计算机视觉 实验室_“计算机上的孩子”在五个国家/地区建立了计算机实验室
查看>>
开源 非开源_非技术人员的5种开源礼品创意
查看>>
迫切内连接_迫切需要符合标准的课程的学校系统找到希望
查看>>
开源openstack_4个OpenStack指南可帮助您构建开源云
查看>>
unity的opengl_Steam上的OSVR,Unity丢弃旧版OpenGL和更多游戏新闻
查看>>
openstack nfv_支持NFV,Kubernetes集成以及更多OpenStack新闻
查看>>
openstack文档_自定义文档,新的分析工具以及更多OpenStack新闻
查看>>
openstack 容器_运行容器,降低复杂性以及更多OpenStack新闻
查看>>