V M I n j e c t o r
(c) 2012 by Marco Batista
<marco.batista [at] secforce.com>
Licensed under GPLv3 (see LICENSE file)
VMInjector 是一款工具,旨在通过直接内存操作,绕过在 VMware Workstation/Player 上运行的主流操作系统的登录认证屏幕。
VMInjector 是一款通过操作 VMware 客户机内存以绕过操作系统认证屏幕的工具。 VMware 管理分配给客户操作系统的资源,包括 RAM 内存。VMInjector 将 DLL 库注入到 VMWare 进程中,以获取对映射资源的访问权限。该 DLL 库通过解析 VMware 进程拥有的内存空间,并定位对应于客户机 RAM 镜像的内存映射 RAM 文件来工作。通过操作分配的 RAM 文件并修补负责认证的函数,攻击者可以获得对底层虚拟主机的未授权访问。 VMInjector 目前可以绕过锁定的 Windows、Ubuntu 和 Mac OS X 操作系统。 内存修补是非持久性的,重新启动客户虚拟机将恢复正常的密码功能。
如果虚拟主机的密码被遗忘需要重置,可以使用 VMInjector。 通常,在渗透测试活动中,当获得对 VMWare 主机的访问权限,并且攻击者希望获得对该主机上运行的客户机的额外访问权限时,可以使用此工具。
Windows 机器(具有管理员权限); VMware Workstation 或 Player 版本; 锁定的客户虚拟机;
VMInjector 由两部分组成: DLL 注入应用程序(Python 脚本或提供的已转换可执行文件) DLL 库(x86 和 x64)
该工具通过提供两种 DLL 支持 x86 和 x64 位架构。用户可以使用自己的 DLL 注入器选择主机上运行的客户虚拟机。
要运行该工具,请从命令行执行提供的 VMInjector(32 或 64)可执行文件。 VMware 在单独的进程中运行每个客户机。需要将 VMInjector 指向运行需要绕过的客户机的进程。一旦用户选择了进程,它将把 DLL 注入所选的目标。 注入 DLL 后,用户需要指定操作系统,以便完成内存修补。
此工具仅用于合法目的。代码根据 GPLv3 许可证发布。
我要感谢 Michael Ligh 在 2006 年对向客户虚拟机注入 shellcode 所做的宝贵研究。
我还要感谢 Carsten Maartmann-Moe 在 Inception 上的工作,这是一款可以通过 IEEE 1394 FireWire 技巧解锁锁定的 Windows、Ubuntu 和 OS X 机器的工具。这最初由(现已过时的)winlockpwn 工具展示。