【51CTO 12月27日外电头条】开源的Metasploit Framework和商业化的Metasploit产品提供了网络设备安全评估功能,本文介绍如何使用最新的版本对思科IOS进行渗透测试,开源的Framework需要添加独立的模块和支持库,商业化产品已经包含了这些模块,因此可以更快速地开始渗透测试,下面的屏幕截图显示了一次成功的渗透测试结果。
图 1 成功的渗透测试结果
首先,我想说明的是,经过正确配置的思科设备是很难被攻破的,和其它软件一样,思科IOS中也存在漏洞,但只有少数人能成功利用代码执行中的内存泄露漏洞,因此,现实世界中针对IOS的攻击往往集中在两方面:配置不当和弱口令。
漏洞扫描器可以通过版本字符串对比确定IOS的陈旧状态,确定版本号后就可以进一步确定该网络设备是否打了最新补丁,但如果你对IOS了解不深,这个信息也许帮助不大,事实上,在生产环境中,通常只有很少的服务暴露在外,包括SNMP,Telnet,SSH和HTTP,你可能还会发现有Finger或SIP和H.323等媒体协议,熟悉远程访问的人应该对前四个协议相当熟悉了,但在配置路由器允许这些协议通行时,往往会犯一些低级错误,最常见的就是非故意扩大允许的访问来源。
在一些老版本中,思科IOS HTTP服务有多个著名的安全漏洞,作为渗透测试人员,我们最关心的两个漏洞均与绕过身份证验证相关,第一个漏洞编号是CVE-2000-0945,在IOS设备管理界面中身份验证失踪了,这个漏洞允许未经验证的,通过Web界面直接访问IOS全部功能,第二个漏洞编号是CVE-02001-0537,它允许攻击者绕过在HTTP请求中验证级别大于15的身份验证过程,攻击者可通过Web界面直接获得设备的访问特权,开源的Metasploit Framework现在提供了两个模块利用这些漏洞:
/auxiliary/scanner/http/cisco_device_manager
/auxiliary/scanner/http/cisco_ios_auth_bypass
Metasploit Express和Metasploit Pro在发现扫描期间会自动识别思科IOS HTTP服务,检查是否存在这两个缺陷,并利用它们获取设备的配置信息。除了这两个已知的安全漏洞外,设备密码也可以通过对HTTP服务进行暴力破解获得,相对于Telnet和SSH等基于终端的服务,HTTP服务更容易遭暴力破解。Metasploit Express和Metasploit Pro在成功暴力破解HTTP服务后,它们可以进一步获得运行中的设备配置。
下一个我想讨论的服务是SNMP,说来也奇怪,SNMP经常出现在安全路由器上,SNMP协议作为一种远程访问标准协议,其使用非常广泛,因此凡是具有监控和管理功能的交换机,路由器或其它网络设备,统统都会支持SNMP协议,最常见的就是用它来监控设备的运行状态。
但很多网络管理员没有意识到的是,SNMP暴露的信息不仅很深入,如果SNMP社区可写,还可以利用它获得设备的完全控制权,在思科IOS中,可写的SNMP社区可被用来下载运行中设备的配置信息,甚至可以用来修改运行配置。禁用了Telnet的路由器和复杂的串行密码可以通过可写入SNMP社区被轻松劫持,Metasploit Framework提供了一个SNMP暴力破解工具,它是一个辅助模块,它利用通用密码词表确定有效的社区,并确定这些社区是只读的还是可写入的,除了基本的暴力破解模块,MetaSploit现在还包含了一个很厉害的模块(由社区志愿者pello提交),这个模块可以使用可写入SNMP社区下载设备的运行配置。
Metasploit Express和Metasploit Pro使用这两个模块自动抓取有漏洞的设备的配置文件,在发现扫描期间,SNMP暴力破解工具在后台启动,如果它检查到SNMP社区可写,它们将会配置一个本地TFTP服务,下载运行配置文件。由于SNMP协议现在集成了智能暴力破解组件,除了动态生成的密码外 ,它还使用了精心调整的社区名单,调整名单来源于一个很有意思的研究项目,研究人员收集了互联网上网络管理员们不小心泄露的SNMP社区字符串,通过分析,找出那些最长使用的密码,这个项目的研究结果非常让人吃惊,我从来没有想到最常用的SNMP社区字符串居然是"public@es0"和"private@es0",因为这两个社区字符串是思科文档中举例时使用的。
我想讨论的最后两个协议是Telnet和SSH,它们的共同点是可以远程访问目标设备的命令shell,并且是不需要非特权用户的,从渗透测试角度来看,它们之间最显著的区别是,SSH需要知道远程目标设备的用户名和密码,而Telnet只需要知道身份验证的密码即可,Metasploit Framework也包含了这些协议的暴力破解模块,暴力破解成功后,会自动创建一个交互式会话。
Metasploit Express和Metasploit Pro都支持攻击使用Telnet和SSH协议的网络设备,在最新版本中,使用的是密码分析研究项目调整后的密码表,它将一些不常用的密码放在了词表的前端,在现实世界中这一招往往很灵验,根据我们以往的渗透测试经验,很多ISP都给设备使用了静态密码,并且这些密码都已被列入暴力破解密码表。
通过Telnet或SSH协议在思科IOS设备上建立一个会话后,商业产品中的证据收集功能会自动获取版本信息,活动用户列表,并尝试暴力破解,如果获得设备的访问权,它还会自动转储系统的其它信息,包括运行配置。
说了这么多,还没有讲到任何新东西,最新版本可以将这些操作链接到一起,一气呵成完成所有渗透测试任务。到目前为止,有一点我还没有提到的是,在取得思科IOS配置文件后,我们下一步该做什么呢?我们已经知道这些配置文件包含了设备的运行配置信息,也就是说,它包括了vty密码,enable密码,VPN密钥,SSL证书和Wi-Fi凭据,Metaspoit会自动解析这些配置文件,找出敏感数据并保存起来,作为下一步利用的基础数据,或是盗取身份验证证书,下面的屏幕截图显示了暴力破解Telnet vty密码的输出结果,然后是enable密码,再后面是转储和解析的配置。
图 2 暴力破解结果
Metasploit Express和Metasploit Pro可以自动从这些配置文件中回收证书,进一步获得网络上其它设备的访问权,如果你通过SNMP社区攻破了一台思科设备,并发现vty密码是"cicsorules",你可以使用暴力破解组件通过多种网络协议自动尝试这个密码,并可以用这个密码尝试访问其它网络设备,一旦得逞,便可获得配置文件,并重新开始新的尝试,也许路由器的vty就是内部网站的登录密码,或利用获得的密码发动传统的攻击,我们的目标是确保我们的用户可以识别并利用给定网络的薄弱环节。
原文出处:http://www.net-security.org/article.php?id=1548
原文名:Cisco IOS penetration testing with Metasploit
作者:HD Moore
【51CTO.com译稿,转载请注明原文作译者和出处。】
【编辑推荐】