GCE虚拟机被披露远程接管漏洞
未授权的远程攻击这就可通过 DHCP 洪水攻击接管Google Compute Engine (GCE) VM虚拟机,并利用google_guest_agent进程添加的 SSH 密钥获得 root 访问权限。
五天前, 一份名为“gcp-dhcp-takeover-code-exec”的项目在github中悄悄上线。该项目主要披露了于影响 Google Compute Engine 平台中虚拟机的未修补的远程接管漏洞。Google Compute Engine ( GCE ) 是 Google Cloud Platform 的基础设施即服务 (IaaS) 组件,使用户能够按需创建和启动虚拟机 (VM)。GCE 提供了一种以元数据服务器的形式存储和检索元数据的方法,它提供了一个中心点,以键值对的形式设置元数据,然后在运行时提供给虚拟机。
报告中指出由于 ISC DHCP 软件使用的随机数较弱,并且不幸地结合了其他因素,攻击者可以通过网络接管 Google Cloud Platform 的虚拟机并通过 SSH(公钥身份验证)授予自己访问权限,然后他们可以以 root 用户身份登录。
漏洞主因其实是 ISC DHCP 客户端使用弱伪随机数的结果,导致攻击者可以使用一组预先计算的标识符(又名XID)制作多个 DHCP 数据包攻击受害者的 DHCP客户端,( DHCP ) 动态主机配置协议 是一种网络管理协议,用于自动执行 IP 网络上的设备配置过程。通过使用 DHCP 数据包流攻击受害者虚拟机,其想法是利用“可预测的”XID 值泛洪被攻击者的机器,如果 XID 正确,则使被攻击的机器接受DHCP包含的配置,最终的结果是 被攻击的机器会把攻击者指定的服务器地址当成正确的Google元数据服务器。这是一个竞争条件,但由于洪水是快速而彻底的,Google的元数据服务器败得毫无胜算。
当上述攻击成功后,此时攻击者已假冒成Google的元数据服务器(伪接管),那么假冒的元数据服务器能在后续的攻击中发挥什么作用呢?
结局就是:接管被攻击者的机器! 因为Google 严重依赖元数据服务器,包括 ssh 公钥的分发和管理。
//详情可参考关于项目中提到的另一份报告~
//Google Cloud Platform 的 OS Login 账号提权
//https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/red-team-tech-notes/-/tree/master/oslogin-privesc-june-2020
至此,整个项目报告中的攻击思路已经完全清晰了。项目还包含了整个攻击流程,攻击场景和验证POC,实属一份精彩的报告。
但可惜的是谷歌于 2020 年 9 月 27 日获悉该问题,此后了承认该报告正确性,称其为“不错的收获”,但截止github项目上线时尚未推出补丁或提供正确的补丁日期。
有时间或者感兴趣的小伙伴可以拜读一下原文, 有条件的小伙伴更可实际操作把玩一番
传送门:https://github.com/irsl/gcp-dhcp-takeover-code-exec
(我总是不自觉想到为啥厉害的漏洞都是别人挖到的,肯定还是自己太菜了,唉..)
评论0次