随着企业规模和业务应用的发展,信息化管理的网络在不断的扩大,结构在不断的复杂;伴随着这些变化产生的一个主要现象是设备越来越多,也越来越难管理,尤其在认证、授权和审计问题上,更是变得异常混乱;所幸的是,AAA服务的出现给了网管们一个自由的天地,集中化、人性化的管理使得几乎没有一个中大型网络离得开它;然而,在这些来来回回传递的认证信息中,我们真的可以高枕无忧了吗?下面我们来亲自体验一次让人后怕的抓虫之旅。
一、条件
需要:acs、3.x版本、网络设备下载acl。有人说这个条件还是很苛刻的嘛?然而真的是这样的么?
这是一个非常老的漏洞了,然而我们回过头看看自己的网络:
1、AAA服务器比较流行的无非ACS、linux等,ACS占有的市场比利绝对不低,尤其在外包解决方案的今天,整套cisco的集成项目里几乎必有它。
2、再看ACS,目前4以上版本就一个,其余的都是3.x的,这可都在此威胁的覆盖范围之内。另外,又有多少企业回去升级这些霸占了4、5年市场的3.x版本?这些已经在用且仍旧能用的版本?
3、对于部署了AAA的网络来说,已经无需讨论下载acls应用会不会存在,其比率只能用相当高来概括。
4、此漏洞和网内所有设备的厂商、型号、IOS版本统统无关,因此危害可见一斑。
二、触发
抛开复杂的术语,我们可以简单归纳如下:网络设备很多,不能每台逐个去维护,所以在acs上统一配置了acl,当有用户触发访问网络时,负责放行的设备就会去acs上下载并应用acl,此时,acs传递出来的信息里包含了一个字串,该字串为acs在安装时产生的一个默认隐藏帐户,要命的是,该帐户用户密码相同,这下,所有的网络设备都可以控制了。
三、实践
光看是没印象地,我们下面来动手看看是不是真的有这么回事。
首先安装好acs
点击administration control,配置一个管理帐户,注意要按需控制权限。
需要全部权限时,只需grant all就可以了。
注意区分,刚才我们创建的是acs的管理员,和设备的认证用户是两码事,下面我们来创建AAA客户端,也就是你要管理的设备。
点击网络配置:
注意选择正确的认证类型,我们这次用来测试的是pix防火墙,因此选择cisco的radius。牢记密钥,一会配置设备时会用到。
接下来我们开始配置认证帐户,这些帐户将能直接登陆设备。
在用户配置中创建一个测试帐户cisco。
此时,pix上已经可以配置使用该帐户登陆了。(为了直观,我们采用asdm演示配置过程)
首先,在设备管理的AAA选项中配置AAA服务器群组,增加一个命名为test的群组。
其实,选定该群组并增加一个服务器,注意填写ip地址和密钥,该密钥为我们在AAA client配置中的密钥。
点击右下方的TEST按钮测试和服务器的连通性,用户为我们刚才创建的cisco。
测试成功,如果不行请返回检查之前的操作和设置。
在使用该帐户登陆前,我们还需要配置管理方式。
我们在AAA帐户内,配置登陆方式为telnet,并选定服务器组,建议打钩服务器组失效时采用本地认证,否则你就得去修服务器了。如果需要将enable密码(就是特权模式)也配置为AAA方式,可以点击上面的enable勾选。
这样,我们就可以使用这个帐户登陆设备了。
然而,漏洞到此为止还没有触发,因为还需要配置下载acls。
我们回到acs,在共享属性组建里选择可下载ip acls,创建一个名称。
创建一个acl列表。
随后我们在组设置中编辑默认组的设置,并应用这个列表。(由于默认的帐户属于默认的组,如果你自己有调整过,在这里要记得做相应的修改)
回到pix这边,在防火墙的AAA配置里,增加一条认证规则,对内网出去访问外网的数据进行AAA认证。
注意,对于tcp的认证仅仅支持telnet、http、ftp等常见应用。
当我们访问外网的TCP链接发生时,pix会拦截并弹出用户密码请求:
此时查看pix的acl,发现它去acs服务器上下载了我们刚才配置的acl:
pixfirewall# sh access-l
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096)
alert-interval 300
access-list inside_authentication; 1 elements
access-list inside_authentication line 1 extended permit tcp 192.168.0.0 255.255.255.0 10.0.0.0 255.255.255.0 (hitcnt=4) 0x4a0b7b68
access-list #ACSACL#-IP-test-48abda80; 1 elements (dynamic)
access-list #ACSACL#-IP-test-48abda80 line 1 extended permit ip 192.168.0.0 255.255.255.0 any (hitcnt=1) 0x18f9a310
access-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096)
alert-interval 300
access-list inside_authentication; 1 elements
access-list inside_authentication line 1 extended permit tcp 192.168.0.0 255.255.255.0 10.0.0.0 255.255.255.0 (hitcnt=4) 0x4a0b7b68
access-list #ACSACL#-IP-test-48abda80; 1 elements (dynamic)
access-list #ACSACL#-IP-test-48abda80 line 1 extended permit ip 192.168.0.0 255.255.255.0 any (hitcnt=1) 0x18f9a310
注意,上面带有#ACSACL#-IP字样的就是动态下载的acl。
现在,漏洞触发了,对于一个无法控制设备和acs的黑客来说,他要做的仅仅是在两者之间做一个嗅探(如果是交换网络的话就是arp嗅探),即可得到如下数据:
我们清楚的看到,黑客得到了#ACSACL#-IP-test-48abda80字串,和设备里获得的完全一致。
接下来,他只需将此串作为用户密码,即可登陆acs说管辖的所有设备:
四、补牢
对于还在运行acs3.x的网络来说,作为网管我们可以做一下补救措施:
1、花钱升级到acs4.x版本。
2、更换acs服务器,采用linux或别的系统作为AAA认证服务器。
3、不采用RADIUS转而用TACACS协议替代AAA认证。
这次我们实践的漏洞仅仅是众多网络设备有关漏洞中的一角,其实作为网络管理人员,安全意识始终是第一位的,经常的部署、监控和审计网内的不正常数据和流量,严格审核用户的权限和应用范围,只要这个思想指导下,即便我们每天都要面对众多的漏洞和攻击,我们也有足够的信心能够将损失减小到最低,否则,即使是再强悍的设备和安全方案,也无法应对当今可怕的0day和纷繁复杂的黑客手段。
本文转自 beansprouts 51CTO博客,原文链接:http://blog.51cto.com/netwalk/94023
,如需转载请自行联系原作者