云安全提醒:Apache Guacamole漏洞可控制网关,窃取个人信息,升级1.2.02版本可修复
扫描二维码
随时随地手机看文章
Apache Guacamole是实现远程办公的流行基础架构,容易受到与远程桌面协议(RDP)相关的众多安全漏洞的攻击。管理员应更新其系统,以避免针对窃取信息或远程执行代码的攻击。
一旦控制了网关,攻击者就可以窃听所有传入的会话,记录所有使用的凭据远程办公,甚至可以发起新的会话来控制组织中的其余计算机。当大多数组织都在远程办公时,这个立足点相当于获得对整个组织网络的完全控制。
Apache Guacamole在全球范围内有超过1000万的Docker下载,并且还嵌入到Jumpserver Fortress,Quali和Fortigate等其他产品中。鳄梨酱网关实质上可以保护和处理来自公司外围用户的连接。
本质上,员工使用浏览器连接到公司的面向Internet的服务器,经过身份验证过程,然后可以访问公司的计算机.虽然员工仅使用他的浏览器,但Guacamole服务器选择一种受支持的协议(RDP,VNC,SSH等),并使用开源客户端连接到特定的公司计算机。连接后,Guacamole服务器将充当中间人,来回中继事件,同时将事件从所选协议转换为特殊的“ Guacamole协议”,反之亦然。
Apache Guacamole易受其自身基础架构内部的几个严重漏洞的影响,以及FreeRDP中的其他漏洞。该漏洞使网络攻击者可以入侵网关,然后拦截并控制与该网关连接的所有会话。
攻击场景和漏洞
有两种不同的攻击情形:在反向攻击中,公司网络内部的受感染计算机利用传入的良性连接来攻击网关,目的是接管网关。在恶意工作者的场景中,一个恶意雇员使用网络内的一台计算机来利用他对连接两端的控制并控制网关。
为了启用这两种方法,使用信息泄露错误的漏洞利用链,内存损坏问题和特权利用是必不可少的。
信息泄露漏洞CVE-2020-9497
为了在RDP连接和客户端之间中继消息,开发人员为默认的RDP通道实现了自己的扩展。一个这样的通道负责来自服务器的音频,因此被称为rdpsnd(RDP声音)
通过发送恶意的rdpsnd通道消息,恶意的RDP服务器可能使客户端认为该数据包包含大量字节,实际上是客户端本身的内存字节。这反过来导致客户端使用这些字节将响应发送回服务器,并为RDP服务器授予一个庞大的,令人讨厌的样式,信息公开原语。
CVE-2020-9497中也涵盖了另一个信息泄露漏洞,但该漏洞会将越界数据发送到连接的客户端,而不是发送回RDP服务器。
RCE内存损坏漏洞CVE-2020-9498
RDP协议将不同的“设备”公开为单独的“通道”,每个设备一个通道。据分析,这包括用于声音的rdpsnd频道、用于剪贴板的cliprdr等。作为一个抽象层,通道消息支持一个碎片,使其消息的长度达到4GB。
任何消息中的第一个片段都必须包含CHANNEL_FLAG_FIRST片段,该片段分配合适大小的流(称为wStream)以容纳总消息的总体声明长度。
但是,如果攻击者发送不带此标志的片段会怎样?似乎只是将它附加到先前的剩余流中。零碎的消息完成重组并继续解析后,它被释放。就是这样。没有人将悬空指针设置为NULL。
这意味着恶意RDP服务器可能会发送一个使用先前释放的wStream对象的无序消息片段,从而有效地创建一个释放后使用的漏洞,该漏洞可用于任意读写攻击。
通过使用漏洞CVE-2020-9497和CVE-2020-9498,可以成功地实现任意读和任意写攻击原语.使用这两个功能强大的原语,成功地实现了一个RCE攻击,当远程用户请求连接到他(受感染的)计算机时,恶意公司计算机(我们的RDP‘服务器’)可以控制guacd进程。
这个guacd进程只处理一个连接,并且以低权限运行,因此黑客寻找一个权限提升的路径,从而允许接管整个网关。
在成功地对客户机进行身份验证后,guacamole客户机启动一个与guacamole服务器的guacamole协议会话,为客户机创建一个匹配的会话。这是通过连接到guacd进程正在监听的TCP端口4822(默认情况下)上的guacamole服务器来完成的。此端口上的通信不使用身份验证或加密(可以启用SSL,但不是默认设置)。会话创建后,guacamole客户机只在guacamole服务器和客户机浏览器之间来回传递信息。
guacd可执行文件中的漏洞允许访问完整的内存布局(用于绕过地址空间布局随机化(ASLR)计算机安全性)和完整的内存内容。
通过利用所有这些弱点,黑客能够完全控制测试guacamule网关,从而截获流经该网关的所有信息。
值得注意的是,该基础设施也容易受到FreeRDP(一种在Apache许可下发布的RDP的免费实现)中现有的bug的攻击。
漏洞修复
在FreeRDP中的漏洞,只在2.0.0-rc4之后版本得到修补,2020年1月之前发布的所有版本都会受到漏洞影响。
至于其他漏洞,Apache通过6月28日发布的Apache Guacamole 1.2.02版解决了所有这些问题。