用户
搜索
  • TA的每日心情
    擦汗
    2019-1-31 10:58
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    官方账号

    Rank: 7Rank: 7Rank: 7

    101

    主题

    101

    帖子

    1175

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2018-12-21

    i春秋认证

    发表于 2019-9-4 18:37:55 0425

    22.jpg

    大多数安全人员都会对未知的USB设备保持高度警惕,永远不会拿起一个未知的、不可信的USB,插入计算机。但是,最近我们发现了有关USB应用的新漏洞,它存在于Supermicro服务器的基板管理控制器(baseboard management controllers)上,我们并将其称为USBAnywhere。它可让攻击者很轻易地远程连接到服务器,并通过公网将任意USB设备挂载到服务器上。

    Supermicro公司为全世界各大企业提供各类基础网络建设。
    

    在撰写本文时,我们发现至少有47000个系统的基板管理控制器(BMC)暴露在公网上,并且使用了和漏洞相关的协议。此外,请记住这些只是直接暴露在公网上的BMC,那些攻击者可登录访问的BMC也存在同样的漏洞。

    想了解其他信息可直接访问我们的GitHub

    介绍

    按照原本的设计,BMC允许管理员带外(out-of-band)管理服务器,是高权限组件。而这个漏洞的根本原因在于Supermicro X9、X10和X11平台的BMC实现虚拟媒体的方式存在缺陷,即远程连接磁盘镜像,将其作为虚拟USB CD-ROM或软盘的方法存在缺陷。当用户远程访问时,虚拟媒体服务的验证流程未对流量进行加密亦或使用弱加密,这让攻击者在拦截流量的情况下可轻易破解身份凭证,非法登录服务。在某些情况下,攻击者还可凭借默认凭证甚至不需要凭证登录服务。

    一旦连接上,攻击者可利用虚拟媒体服务将某个USB设备与目标系统进行交互。这意味着攻击者可以像BadUSB一样攻击服务器,比如加载一个新的操作系统镜像,使用键盘和鼠标修改服务器、植入恶意软件,甚至完全禁用某些设备。这种攻击方式并不复杂,任何攻击者都有可能造成巨大的损失。

    远程USB访问

    通常,对虚拟媒体服务的访问是由BMC的web接口上的一个小型Java应用实现的。这个应用涉及到BMC上的623端口(虚拟媒体服务),使用自定义数据格式对客户机进行身份验证,并在客户机和服务器之间传输USB数据包。

    通过对身份验证流程的分析,我们发现了以下问题:

    • 明文验证

    虽然这个Java应用使用唯一的session ID进行身份验证,但该服务还允许客户机使用纯明文用户名和密码。

    • 未加密的网络流量

    存在流量加密的选项,但必须由客户端主动发起。Java应用会对初始的身份验证进行加密,然后其他所有通信都使用未加密的数据包。

    • 弱加密

    流量加密使用的是编译到BMC固件中的固定密钥(RC4加密)。此密钥在所有Supermicro BMC中都一样。而且RC4有多个已公开的弱点,已被禁止在TLS中使用。

    • 验证绕过(仅适用于X10和X11平台)

    当客户端在虚拟媒体服务上进行了正确的身份验证,然后断开连接后,关于该客户机的一些服务的内部状态就会被错误地保留下来。此时内部状态和某个客户端套接字文件描述符相绑定,如果此时新客户端被BMC分配了相同的套接字文件描述符,则新客户端会继承了这个内部状态。即使新客户机使用不正确的凭据进行身份验证,服务也会让新客户端继承以前客户端的授权。

    综上所述,这些弱点可让攻击者轻易获得对虚拟媒体的访问。在最简单的情况下,攻击者可以直接尝试BMC的默认用户名和密码。即使更改了默认密码,攻击者仍然可以轻松访问。如果管理员在BMC上次关闭后使用了虚拟媒体服务,即使攻击者输入错误的用户名和密码,仍然可以连接。考虑到BMC很少断电下线,这种身份验证绕过漏洞很大概率能成功。

    此外,攻击者还可以拦截到虚拟媒体服务的流量,并利用存储在BMC中的固定密钥解密。

    通过对623端口扫描发现,来自90多个国家的47339个BMC的虚拟媒体服务可以被公开访问。

    33.png

    USB连接到目标系统

    绕过身份验证后,用户可以访问BMC上的虚拟USB集线器。这个虚拟集线器支持最多5个虚拟设备,且支持任意设置。

    通常,当一个新的USB连接到主机时,主机会通过“描述符”识别设备的类型及其配置。这些描述符告诉系统哪个是USB CD-ROM、打印机和WiFi,以加载相应的驱动,进行交互。

    然而,Supermicro的虚拟USB hub中的设备依赖于BMC上的软件来提供这些描述符。因此,BMC硬件允许某软件成为任何USB设备。这就是Java应用程序可以成为虚拟CD-ROM驱动器的原因。

    当与允许用户在软件中模拟USB设备的Facedancer等框架相结合时,攻击者可以模拟他们需要的任何设备。而最显著的就是BadUSB攻击,在下面的视频中,我们的研究人员演示了一个使用Facedancer的所进行的攻击。

    确保BMC的安全性

    值得注意的是,BMC永远不应该直接暴露在公网上。一切攻击的开端都是因为可以在公网上找到BMC。

    由于BMC的高权限、重要性和“漏洞百出”的名声,它也成为安全研究中最活跃的领域之一。通过一个简单的shodan扫描,可以发现全球至少有94000个623端口暴露在公网上。

    44.png

    此外,未暴露于公网的BMC也应仔细监测是否有攻击产生。这类服务器的固件通常不会得到及时更新。

    我们这项研究表明一个事实,一些BMC漏洞即使是新的攻击者也可进行利用。攻击者只需使用一个免费的工具来模拟USB设备,就可以远程控制对企业服务器。为了防范这类针对系统固件的攻击,及时进行固件更新是非常必要的。

    修复

    在我们上报漏洞后,Supermicro已承诺会尽快为他们的X9、X10和X11平台提供固件更新。建议使用Supermicro X9、X10和X11平台的用户及时访问Supermicro安全中心,了解更新信息。

    除了厂商提供的安全更新,组织还应该采用第三方工具来测试服务器是否存在其他漏洞。

    漏洞时间表

    2019-06-19: Eclypsium提供漏洞报告给Supermicro

    2019-07-09: Eclypsium向Supermicro报告了更多发现

    2019-07-29: Supermicro确认漏洞报告并开发了一个补丁

    2019-08-16: Eclypsium通知CERT/CC有大量公共系统受到漏洞影响

    2019-08-16: Supermicro确认将于9月3日前发布新固件

    2019-08-21: Eclypsium试图第二次通知CERT/CC

    2019-08-23: Eclypsium通知其他受漏洞影响机器的网络运营商

    2019-08-23: Eclypsium发现Supermicro X9平台也受到了影响

    2019-09-03: Eclypsium公开漏洞细节

    本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场:https://nosec.org/home/detail/2926.html
    来源:https://eclypsium.com/2019/09/03/usbanywhere-bmc-vulnerability-opens-servers-to-remote-attack/
    
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册