俄罗斯漏洞研究员兼利用开发者 Sergey Zelenyuk 公开了 VirtualBox中一个 0day 漏洞的详情。另外他还提供了详细的漏洞利用指南。
从最初披露的详情来看,该 0day 漏洞存在于所有受支持操作系统上 VirtualBox 虚拟化软件的一个共享代码基中。
攻击者能通过利用该漏洞逃逸 guest 机器的虚拟环境并到达 Ring 3权限层,即以最小权限运行多数用户程序代码。
SergeyZelenyuk 发现这个 0day 漏洞可被用于以 NAT 模式配置 Intel PRO/1000 MT Desktop (82540 EM) 网络适配器的虚拟机上,而这个默认设置允许 guest 系统访问外部网络。
Zelenyuk 周二发布技术 write-up 称,“Intel PRO/1000 MT Desktop (82540EM) 中存在一个漏洞,可允许 guest 中具有根/管理员权限的攻击者逃逸至一个主机 ring3。之后攻击者就能够利用现有技术通过 /dev/vboxdrv 将权限提升至 ring 0。”
Zelenyuk 表示,让漏洞其作用的一个重要步骤是理解上下文描述符在数据描述符之前处理。
研究人员详细说明了该安全漏洞背后的机制,展示了如何触发获取可被滥用于逃避虚拟操作系统限制的缓冲溢出漏洞的必要条件。首先,他使用包描述符(即允许网络适配器追踪系统内存中网络数据包数据的数据段)引发了一个整数反向溢位条件。随后利用这一状态从 guest 操作系统中将数据读取到一个堆缓冲区并触发可导致覆写功能指针的溢出条件或引发栈溢出条件。
Zelenyuk 所写的利用依靠两个溢出条件。由于它提供了 Ring 3 级别权限的访问,因此控制主机操作系统需要提升权限。尽管这并非不可能实现,但攻击者必须链接其它漏洞才能提升在系统上的权限。
研究人员发布的利用 VirtualBox 0day 漏洞的步骤绝对不是小子们能应付的,而是需要具有更深的技术知识。
缓冲区溢出并非总是处于稳定状态,多数时候会导致目标崩溃。然而,Zelenyuk 表示他的 exp “百分之百可靠”,而且“由于二进制匹配有误或出于其它更微妙的原因,exp 不会出现一直起作用或永远不起作用的情况。”
他在默认配置为86位和64位的 Ubuntu 16.04 和 18.04 上已对漏洞进行了测试。
这并非该研究员首次在 VirtualBox 中发现漏洞。今年年初,他报告了存在于 VirtualBox 版本5.2.18中的漏洞。然而,出于某种原因,甲骨文在硬件虚拟化软件版本 5.2.18 中静默地修复了该漏洞,而且并未对该研究员提出任何致谢。
Zelenyuk 在报告中清楚地说明了自己在通知问题开发人员前公开这个 0day 漏洞完整详情的原因。甲骨文此前的做法似乎是原因之一。
他这样说道:
1. 等个半年时间,一直等到漏洞被修复,这被认为是正常的做法。
2. 在漏洞奖励领域,以下做法也被认为是正常的:
(1) 等一个多月的时间以便验证提交的漏洞以及做出采信还是不采信的决定。
(2) 随意更改决定。今天你发现这个漏洞奖励计划将涵盖某软件中的 bug,一周后当你带来 bug 和 exp,发现对方“不感兴趣”了。
(3) 没有明确的漏洞奖励涵盖软件列表。这对于漏洞奖金而言很方便,但对于研究人员而言很尴尬。
(4) 没有对漏洞的价格设置上限和下限。影响漏洞价格的因素虽然说很多,但研究人员需要知道哪些是值得研究的,哪些不是。
3. 对伟大的妄想和营销废话:对漏洞进行命名并且为此专门设立网站;一年开上千次会议;夸大自己作为安全研究人员的重要性;认为自己是“救世主”。殿下,请走下神坛吧!
我已经对前两点感到不胜其烦,因此我做出了完全披露的决定。信息安全圈子,请继续前进。
原文来自:
本文地址://q13zd.cn/virtuabox-0day-exp.html编辑:薛鹏旭,审核员:逄增宝
Linux大全:
Linux系统大全: