近期,不断有媒体报道多个使用思科交换机的网络基础设施遭到攻击,造成设备瘫痪并在屏幕上显示美国国旗,疑似使用了CVE-2018-0171,但根据研判此攻击实际是滥用Cisco Smart Install协议中未授权的配置修改功能,并非是CVE-2018-0171,目前没有足够的事实证明CVE-2018-0171已被大规模利用攻击。
Update
根据思科安全团队的确认,被利用的是Cisco Smart Install 协议未授权的配置修改功能 ,不是CVE-2018-0171,用户可通过ACL访问控制限制可访问设备的IP,或禁用Cisco Smart Install功能,进行防护。
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20180409-smi
时间线
2016/12,在Zeronights 2016安全会议上,Dmitry Kuznetzov发表了有关Cisco Smart Install 协议中存在的安全问题演讲,Cisco Smart Install. Pentester’s opportunities。
演讲PPT下载
https://2016.zeronights.ru/wp-content/uploads/2016/12/CiscoSmartInstall.v3.pdf
指出了Cisco Smart Install 协议存在数个未经授权就可下载配置文件,更改系统镜像的安全问题,并公开了名为 Smart Install Exploitation Tool (SIET) 的利用工具。
2017/02/14,Cisco安全团队确认了上述安全问题,并发布了安全公告,给出了相应了防护措施。
2018/3月/28,来自 Embedi 的安全研究员公开了Cisco Smart Install 客户端中存在的一个栈溢出漏洞,CVE-2018-0171。
https://embedi.com/blog/cisco-smart-install-remote-code-execution/
随后,针对4786端口的扫描活动,显著增强。
来自ISC的数据,https://isc.sans.edu/forums/diary/Cisco+Smart+Install+vulnerability+exploited+in+the+wild/23535/
此后,陆续有媒体报道,有使用思科交换机的网络基础设施遭到攻击,造成设备瘫痪并在屏幕上显示美国国旗,怀疑使用了CVE-2018-0171漏洞。
被攻击的设备上留下了“Don’t mess with our elections… -JHT usafreedom_jht@tutanota.com”(不要干涉我们的选举),同时还附上美国国旗。
此举被认为是JHT黑客组织针对他国干涉美国大选的不满,因为被攻击的设备多数是伊朗和俄罗斯。
同时,国内也有一些企业反映受到了攻击,有愈演愈烈之势。国内外多家安全厂商发布了安全预警,认为是利用了CVE-2018-0171漏洞。
但根据我们最新情况研判,JHT黑客组织并非利用的是CVE-2018-0171漏洞,而是利用之前已公开的Cisco Smart Install 协议未授权漏洞,直接采用 Smart Install Exploitation Tool (SIET) 批量扫描,更改系统镜像的结果。
目前没有足够的事实,证明CVE-2018-0171漏洞已被公开利用。用户只需按照Cisco官方安全建议,获取补丁程序升级,做好ACL访问控制,不必过度恐慌。
什么是Cisco Smart Install ?
Cisco Smart Install(SMI)是一种“即插即用”配置和镜像管理功能,为新加入网络的交换机提供零接触的配置部署。该功能允许客户将思科交换机运送到任何位置,将其安装到网络中,然后启动,无需其他配置要求,实现了自动化初始配置和操作系统镜像加载的过程。但SMI在设计时未考虑身份验证功能,也就是说允许未授权用户通过Cisco Smart Install 协议访问设备。
一个典型的采用Cisco Smart Install协议的网络如下
新接入网络的交换机,被称作client switch,而作为director的3层交换机或路由器,为client switch提供用于镜像和配置的单点管理功能。
当Client switch首次安装到网络中时,Director会自动检测到新交换机,并识别出正确的Cisco IOS映像和用于下载的配置文件。它还可以为client switch 分配IP地址和主机名。
Director 可同时充当DHCP和TFTP服务器,并可以存储配置和映像文件。 当然这些文件也可以存储在第三方TFTP服务器上供Director 使用。Client switch 可以从Director TFTP服务器或从远程服务器下载映像和配置文件。
由于Cisco Smart Install 协议在设计时并没有考虑身份验证问题,所以当黑客向Client发送伪装成Director的数据包时,Client会执行黑客指定的命令,包括:
- 更改Client上的TFTP服务器地址。
- 将客Client交换机的启动配置复制到先前更改且由攻击者控制的TFTP服务器。
- 使用由攻击者创建的配置替换客户端的启动配置,并在配置的时间间隔后强制重新加载客户端。
- 将Client交换机上的IOS映像升级为攻击者提供的映像。
- 在Client交换机上执行任意命令(适用于特定Cisco IOS版本)
例如,黑客通过将自己伪装成Director,并建立TFTP服务器,然后发送数据包更改Client上的TFTP服务器地址,并将交换机配置复制到先前更改且由攻击者控制的TFTP服务器。
而此次被广泛报道了JHT黑客组织攻击俄罗斯和伊朗交换机设备,并显示美国国旗事件,应该是利用Cisco Smart Install 协议上的缺陷,直接升级替换了原有的系统镜像,不太像是利用了CVE-2018-0171漏洞。
目前CVE-2018-0171 漏洞只有poc,没有完整的利用代码流出。
如何排查是否受到影响?
由于是利用协议的缺陷,用户应当排查自身的Cisco设备是否开启了Cisco Smart Install功能。
1.端口扫描
检测目标设备是否开启4786/TCP端口,使用nmap扫描目标设备端口,如果开启则受到影响。
nmap -v -p T:4786 目标IP
2.使用Cisco Smart Install安全检测工具
Cisco针对Smart Install功能提供最佳安全实践建议,并提供了Smart Install功能的安全检查脚本,下载链接:https://github.com/Cisco-Talos/smi_check
检测方法如下:
python smi_check.py -i 目标IP
3.登录设备自查
在设备的E控制台中输入show vstack config 可以查询设备是否开启了Smart Install。
若返回结果为Role: Client (SmartInstall enabled) 或者Oper Mode: Enabled 则表示设备开启了Smart Install,设备存在风险。
switch>show vstack config Role:Client (SmartInstall enabled) Vstack Director IP address: 0.0.0.0
或者直接查看4786端口是否开放
switch>show tcp brief all TCB Local Address Foreign Address (state) 0344B794 *.4786 *.* LISTEN 0350A018 *.443 *.* LISTEN 03293634 *.443 *.* LISTEN 03292D9C *.80 *.* LISTEN 03292504*.80 *.* LISTEN
如何防护?
- 使用no vstack命令禁用Smart Install功能
switch#conf t switch(config)#no vstack switch(config)#do wr switch(config)#exit
- 对于部分不支持vstack命令的设备,在交换机上通过配置ACL策略,阻断4786端口访问,保证只有可信的IP才能访问设备。
例如下面的策略,只允许Director 10.10.10.1到Client 10.10.10.200的4786端口可以访问。
ip access-list extended SMI_HARDENING_LIST permit tcp host 10.10.10.1 host 10.10.10.200 eq 4786 deny tcp any any eq 4786 permit ip any any