德国黑客FX访谈 如何攻击思科路由器IOS
FX是德国黑客组织Phenoelit的成员之一,精通路由协议。他在2001年就用和迈克尔-林恩相似的手法攻破了思科路由器IOS操作系统。下面是他最近的一次访谈。我们通过这次对话可以从中学习要注意哪些问题。
1)您先自我介绍一下?
我是德国的一名黑客,Phenoelit组织成员之一。我的兴趣主要是各种协议、设备、平台和攻击,其中也包括思科的路由器。
2)在思科路由器漏洞事件之前您认识迈克尔-林恩吗?
他给我寄了黑帽会议的时间表,问我是否愿意去拉斯维加斯看他的攻击演示,但我后来没去。
3)您对林恩在黑帽会议上攻击思科路由器IOS操作系统的演示持什么看法?
他的攻击方法比起我以前对IOS进行堆溢出攻击的方法更为巧妙,不用猜测那么多的指针。他还获取了虚拟终端(VTY)连接,这很酷。当然他是在前人的基础上作出的成果。
4)您是在什么时候第一次完成对IOS的攻击?
2001年底。
5)您认为在您之前是否已经有其他人利用IOS漏洞攻破思客路由器了吗?
我确信在我之前有人也做到过。我不会狂妄到认为自己是第一个。
6)您是否认为思科施压要林恩在演示稿中删除那些汇编代码没什么道理?
从技术角度讲是的。林恩的演示稿只是介绍了如何攻击的大致原理,IOS版本繁多,从他的演示中你无法得到具体的攻击方法。至于法律上来说,思科这样做我不是很懂,超出了我的知识范围。
7)您在2001年就已经发现如何攻击IOS,4年后林恩也得出类似的成果。这还得感谢思科起诉林恩,搞的满城风雨,路人皆知。一些黑客为此还组织起来想第一个公布利用IOS漏洞的shellcode。
真的?不过我没有参加这场竞赛。他们要想达到这一目的不是那么容易的。
8)以后独立研究人员针对思科设备的安全建议会不会越来越多?
我希望是这样,但他们在发布消息之前至少要先通知思科的产品安全突发事件响应团队(PSIRT)。
9)从您在上届黑帽和DEFCON会议的论文可以看出,您已成功的攻破思科的路由器。您采取了什么方法?
和林恩的差不多。利用漏洞执行攻击代码总是要经过三个步骤:首先是触发漏洞,具体方法跟漏洞有关;然后利用堆溢出执行代码,这和其他堆溢出攻击的手法类似,溢出后用攻击代码覆盖,林恩和我都是采取这种手法,区别在于他覆盖的数据更少,这样执行攻击代码更为稳定;不过我们的第三个步骤不一样。
10)您和林恩的方法有什么区别?
我三年多前的方法没他的稳定。我是用代码替换路由器的配置文件,在更新的版本里,则是给路由器的running image打补丁,以获得命令行访问权。
11)为什么不用您的shellcode获取虚拟终端(VTY)连接?是不是因为您认为这是不可能的?
有几方面原因。第一是因为我写第一个攻击版本时对socket通信了解还不多,第二是因为端口23被路由器过滤了,所以需要替换配置文件。
12)您的攻击方法会不会留下痕迹?
被替换的配置文件应该算是吧:)
13)2004年5月时一些欧洲的少年黑客窃取了IOS源代码。但到目前还未发现任何针对IOS的新攻击。是没人根据源代码去实现攻击,还是故意不暴露?
要想攻击路由器不需要源代码。源代码很长,我想没人会仔细研究它。即便有代码,没思科的设备也是枉然。大多数人连思科的设备也没有。
14)管理员用什么办法才能验证IOS镜像的完整性和发现是否有后门?
与完好的IOS镜像对比SHA-1哈希值。
15)这么多种类的IOS镜像能否防御蠕虫和其他黑客攻击?
不能。不同的处理器架构和平台才是最重要的防御措施。
16)林恩说“思科未来打算抽象路由器操作系统的架构,这样做会产生负面影响。无需知道不同设备的地址偏移量,就可以对所有路由器发起攻击。”思科这样做是不是很危险?
这样做的弊端是便于开发攻击技术,但好处是用户给IOS打补丁时就不用替换整个镜像,而且还可以为已推出的路由器增加新的安全功能。所以说思科这样做是一把双刃剑。除非思科在路由器上安装Java虚拟机,不同的处理器架构仍将继续存在下去。但这样会引起一些新的攻击,象IOS的内核模块后门。
17)但打补丁仍是大问题。林恩说“当网络崩溃时如何给路由器打补丁,用邮件还是CD光盘?但路由器没有CD光驱。”
这问题更严重。现在IOS不打补丁,直接用新的版本替换旧的。这就象刷电脑的BIOS一样。更多情况下,更新版本会带来很多兼容问题。远程升级IOS并不是明智的主意。
18)很多管理员并不升级IOS,您是否认为从小型ISP到大型运营商都存在这一问题?
大型运营商一般用的是专门为他们定制的IOS镜像。我怀疑它们得到升级补丁会会其他人早些。我觉得潜规则是大型运营商先升级补丁,然后是小型ISP,而大型企业从不升级补丁。我曾见过有的企业用的IOS还是9.0版本。大型运营商一般对安全很重视,但他们不告诉其他人,网络安全是他们的命脉。