欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

思科Smart Install的远程代码执行漏洞(CVE-2018-0171)详细分析

来源: 作者: 时间:2019-02-24 19:29 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助

自 2010 年发布以来,思科的Smart Install 出现过若干漏洞,包括远程代码执行漏洞CVE-2011-3271、拒绝服务漏洞CVE-2012-0385、CVE-2013-1146、CVE-2016-1349和CVE-2016-6385。
2017 年 5 月,Embedi 安全公司研究员、俄罗斯白帽黑客 George Nosenko 在 GeekPwn 黑客大赛现场成功演示了一个思科交换机 Smart Install 的缓冲区堆栈溢出漏洞。赛后主办方向思科提交了漏洞信息,2018年 3 月 28 日思科发布漏洞修复补丁。
一、简介
系统:Cisco IOS,Cisco IOS-XE
供应商:思科
漏洞:缓冲区堆栈溢出漏洞[CWE-20][CWE-21]
危害:高危,AV:N/AC:L/Au:N/C:C/I:C/A:C (10.0)
研究人员在 Smart Install Client 代码中发现一个缓冲区堆栈溢出漏洞。攻击者利用这个漏洞可以不经身份验证远程执行任意代码。也就是说,攻击者能够完全控制受漏洞影响的网络设备。
Smart Install 功能是部署交换机的即插即用配置和镜像管理功能。它自动完成初始化,并为新的网络交换器加载当前操作系统的镜像。这意味着用户能够将一个交换器发送到另一个地址放置在网络中,在无配置和管理员的情况下启动交换机。当设备配置发生变化或者热插拔损坏的设备时,这个技术还为配置提供了备份。
一个使用了 Smart Install 的网络包含了一组网络设备,被称为客户端(client),它们由一个三层交换器或者路由器来提供服务,作为它们的 director。

Director 为客户端交换器提供了一个用于镜像和配置的单点管理。客户端交换器与 director 直接或间接地连接,因此能够收到下载的镜像和配置。
通过官方文档可以了解更多关于 Smart Install 技术的信息。
值得注意的是,Smart Install 客户端是默认开启的,因此漏洞影响覆盖范围和危害性不言而喻,重点将在后文论述。
二、漏洞描述
SMI IBC Server Process 进程中包含了 Smart Install Client的实现代码。Smart Install Client在TCP(4786)端口上开启服务(默认开启),用来与 Smart Install Director 交互。
当服务处理一段特殊构造的恶意信息 ibd_init_discovery_msg,就发生了缓冲区堆栈溢出。
更具体地说,这个溢出发生在 smi_ibc_handle_ibd_init_discovery_msg,

因为没有检查拷贝到固定大小缓冲区的数据尺寸。大小和数据是直接从网络数据包中获得的,并由攻击者控制。
三、GeekPwn2017 香港站获奖项目
 

来自安全公司 Embedi 的白帽黑客George Nosenko 在 GeekPwn2017 黑客大赛香港站使用成功演示了这个漏洞,获得“最佳技术奖”,奖金总计 25 万元。
根据大赛提出的场景要求,选手需要在思科 Catalyst 2960 交换机上完成以下两个挑战:
1、重置或者替换 enable 密码,获得 EXEC 模式权限:
https://v.qq.com/x/page/z0616f2f7q8.html
2、劫持交换器与其他设备间的网络流量:
https://v.qq.com/x/page/y0616rq52ca.html
更多技术细节和漏洞利用编写可以从“How To Cook Cisco”一文中了解。
四、漏洞检测
如果你的思科网络设备有一个开放的 TCP 4786 端口,那么它会受到漏洞影响。你可以通过扫描找到这样的设备:
nmap -pT:4786 192.168.1.0/24
检测网络设备是否有 Smart Install Client 功能,可以尝试执行以下命令:
switch>showvstack config
Role:Client (SmartInstall enabled)
VstackDirector IP address: 0.0.0.0
switch>showtcp brief all
TCBLocal Address Foreign Address (state)
0344B794*.4786 *.* LISTEN
0350A018*.443 *.* LISTEN
03293634*.443 *.* LISTEN
03292D9C*.80 *.* LISTEN
03292504*.80 *.* LISTEN
五、互联网扫描结果
当在我们发现这个漏洞,认为它只能被用于企业内部攻击。因为安全配置的网络中 Smart Install 技术是不能通过互联网访问的。
但是通过网络扫描之后,我们发现情况并不是这样子的。
在短暂的网络扫描之后,我们立刻发现了大约250000 有漏洞的设备以及 850 万漏洞端口开放的设备。
或许这是由于 Smart Install 客户端端口 TCP(4786)默认开放,而且网络管理员并没有意识到其中可能存在的安全问题。
六、受漏洞影响的软硬件

经验证存在漏洞的设备包括:Catalyst 4500Supervisor Engines、Cisco Catalyst 3850 SeriesSwitches 和 CiscoCatalyst 2960 Series Switches。
Cisco Catalyst 4500 SupervisorEngine 6L-E
Cisco IOS 15.2.2E6 (Latest,Suggested)
cat4500e-entservicesk9-mz.152-2.E6.bin(23-DEC-2016)
Cisco Catalyst 2960-48TT-L Switch
Cisco IOS 12.2(55)SE11 (Suggested)
c2960-lanbasek9-mz.122-55.SE11.bin(18-AUG-2016)
Cisco IOS 15.0.2-SE10a (Latest)
c2960-lanbasek9-mz.150-2.SE10a.bin(10-NOV-2016)
Cisco Catalyst 3850-24P-E Switch
Cisco IOS-XE 03.03.05.SE
cat3k_caa-universalk9.SPA.03.03.05.SE.150-1.EZ5.bin(03-NOV-2014)
此外,所有具备 Smart Install Client 的设备都可能受到漏洞影响,包括下列:

[1] [2]  下一页

自 2010 年发布以来,思科的Smart Install 出现过若干漏洞,包括远程代码执行漏洞CVE-2011-3271、拒绝服务漏洞CVE-2012-0385、CVE-2013-1146、CVE-2016-1349和CVE-2016-6385。
2017 年 5 月,Embedi 安全公司研究员、俄罗斯白帽黑客 George Nosenko 在 GeekPwn 黑客大赛现场成功演示了一个思科交换机 Smart Install 的缓冲区堆栈溢出漏洞。赛后主办方向思科提交了漏洞信息,2018年 3 月 28 日思科发布漏洞修复补丁。
一、简介
系统:Cisco IOS,Cisco IOS-XE
供应商:思科
漏洞:缓冲区堆栈溢出漏洞[CWE-20][CWE-21]
危害:高危,AV:N/AC:L/Au:N/C:C/I:C/A:C (10.0)
研究人员在 Smart Install Client 代码中发现一个缓冲区堆栈溢出漏洞。攻击者利用这个漏洞可以不经身份验证远程执行任意代码。也就是说,攻击者能够完全控制受漏洞影响的网络设备。
Smart Install 功能是部署交换机的即插即用配置和镜像管理功能。它自动完成初始化,并为新的网络交换器加载当前操作系统的镜像。这意味着用户能够将一个交换器发送到另一个地址放置在网络中,在无配置和管理员的情况下启动交换机。当设备配置发生变化或者热插拔损坏的设备时,这个技术还为配置提供了备份。 www.wnhack.com
一个使用了 Smart Install 的网络包含了一组网络设备,被称为客户端(client),它们由一个三层交换器或者路由器来提供服务,作为它们的 director。

Director 为客户端交换器提供了一个用于镜像和配置的单点管理。客户端交换器与 director 直接或间接地连接,因此能够收到下载的镜像和配置。
通过官方文档可以了解更多关于 Smart Install 技术的信息。
值得注意的是,Smart Install 客户端是默认开启的,因此漏洞影响覆盖范围和危害性不言而喻,重点将在后文论述。
二、漏洞描述
SMI IBC Server Process 进程中包含了 Smart Install Client的实现代码。Smart Install Client在TCP(4786)端口上开启服务(默认开启),用来与 Smart Install Director 交互。
当服务处理一段特殊构造的恶意信息 ibd_init_discovery_msg,就发生了缓冲区堆栈溢出。
更具体地说,这个溢出发生在 smi_ibc_handle_ibd_init_discovery_msg,
本文来自无奈人生安全网
因为没有检查拷贝到固定大小缓冲区的数据尺寸。大小和数据是直接从网络数据包中获得的,并由攻击者控制。
三、GeekPwn2017 香港站获奖项目
 

来自安全公司 Embedi 的白帽黑客George Nosenko 在 GeekPwn2017 黑客大赛香港站使用成功演示了这个漏洞,获得“最佳技术奖”,奖金总计 25 万元。
根据大赛提出的场景要求,选手需要在思科 Catalyst 2960 交换机上完成以下两个挑战:
1、重置或者替换 enable 密码,获得 EXEC 模式权限:
https://v.qq.com/x/page/z0616f2f7q8.html
2、劫持交换器与其他设备间的网络流量:
https://v.qq.com/x/page/y0616rq52ca.html
更多技术细节和漏洞利用编写可以从“How To Cook Cisco”一文中了解。
四、漏洞检测
如果你的思科网络设备有一个开放的 TCP 4786 端口,那么它会受到漏洞影响。你可以通过扫描找到这样的设备:
nmap -pT:4786 192.168.1.0/24
检测网络设备是否有 Smart Install Client 功能,可以尝试执行以下命令: 本文来自无奈人生安全网
switch>showvstack config
Role:Client (SmartInstall enabled)
VstackDirector IP address: 0.0.0.0
switch>showtcp brief all
TCBLocal Address Foreign Address (state)
0344B794*.4786 *.* LISTEN
0350A018*.443 *.* LISTEN
03293634*.443 *.* LISTEN
03292D9C*.80 *.* LISTEN
03292504*.80 *.* LISTEN
五、互联网扫描结果
当在我们发现这个漏洞,认为它只能被用于企业内部攻击。因为安全配置的网络中 Smart Install 技术是不能通过互联网访问的。
但是通过网络扫描之后,我们发现情况并不是这样子的。
在短暂的网络扫描之后,我们立刻发现了大约250000 有漏洞的设备以及 850 万漏洞端口开放的设备。
或许这是由于 Smart Install 客户端端口 TCP(4786)默认开放,而且网络管理员并没有意识到其中可能存在的安全问题。
六、受漏洞影响的软硬件

经验证存在漏洞的设备包括:Catalyst 4500Supervisor Engines、Cisco Catalyst 3850 SeriesSwitches 和 CiscoCatalyst 2960 Series Switches。 copyright 无奈人生
Cisco Catalyst 4500 SupervisorEngine 6L-E
Cisco IOS 15.2.2E6 (Latest,Suggested)
cat4500e-entservicesk9-mz.152-2.E6.bin(23-DEC-2016)
Cisco Catalyst 2960-48TT-L Switch
Cisco IOS 12.2(55)SE11 (Suggested)
c2960-lanbasek9-mz.122-55.SE11.bin(18-AUG-2016)
Cisco IOS 15.0.2-SE10a (Latest)
c2960-lanbasek9-mz.150-2.SE10a.bin(10-NOV-2016)
Cisco Catalyst 3850-24P-E Switch
Cisco IOS-XE 03.03.05.SE
cat3k_caa-universalk9.SPA.03.03.05.SE.150-1.EZ5.bin(03-NOV-2014)
此外,所有具备 Smart Install Client 的设备都可能受到漏洞影响,包括下列:
内容来自无奈安全网

[1] [2]  下一页

copyright 无奈人生

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。