CrowdStrike/VirtualGHOST

GitHub: CrowdStrike/VirtualGHOST

用于检测 VMware vSphere 环境中未注册隐藏虚拟机(VirtualGHOST)的安全审计工具集,包含 PowerShell 和 Python 两种实现。

Stars: 110 | Forks: 4

# VirtualGHOST ![CrowdStrike Logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e94743baeb114459.png) [![Twitter URL](https://img.shields.io/twitter/url?label=Follow%20%40CrowdStrike&style=social&url=https%3A%2F%2Ftwitter.com%2FCrowdStrike)](https://twitter.com/CrowdStrike) 本仓库包含由 CrowdStrike 专业服务团队开发的工具,用于检测 VMware vSphere 环境中是否存在“VirtualGHOST”。所谓的“VirtualGHOST”(或简称 Ghost)是指在 ESXi 主机上通过命令行手动启动的 VMware 虚拟机。CrowdStrike 决定将这种特定技术称为 VirtualGHOST,因为这种虚拟机的存在几乎无法被检测到。其中一些工具不仅限于搜索 VirtualGHOST,还会审查 vCenter 事件以寻找可疑活动的证据。 ## 工具对比 随着 CrowdStrike 持续观察到 VirtualGHOST 技术在野外的使用,已开发出多种工具来协助识别 VirtualGHOST 虚拟机。下表概述了目前开发的工具之间的一些关键区别。 |功能 / 特性|Detect-VirtualGHOST|GHOSTHUNTER| |----|----|----| |**语言**|PowerShell|Python| |**目标系统**|ESXi 或 vCenter|仅 vCenter| |**检测运行中的 Ghost 虚拟机**|:heavy_check_mark:|:wavy_dash: (并非专门针对此目的,但会看到其存在于数据存储上)| |**检测仍存在于数据存储但未必在运行中的 Ghost 虚拟机**|:x:|:heavy_check_mark:| |**审查 vCenter 事件中的可疑活动**|:x:|:heavy_check_mark:| ## Detect-VirtualGHOST (PowerShell) 本仓库中的原始工具 [Detect-VirtualGHOST](Detect-VirtualGHOST.ps1) 是一个 PowerShell 脚本,它利用 [VMware PowerCLI](),通过比较清单(vCenter 或 ESXi)中注册的虚拟机列表与实际正在运行的虚拟机,来识别未注册但已启动的 VMware 虚拟机(VM)。 有关执行和输出解读的详细指南可在 [Detect-VirtualGHOST 文档](./docs/Detect-VirtualGHOST.md)中找到。 ## GHOSTHUNTER (Python) CrowdStrike 开发了一个 Python 脚本,该脚本利用 [pyVmomi](https://github.com/vmware/pyvmomi/tree/master)(VMware vSphere 管理 API 的 Python SDK)来对 vCenter Server 进行分类审查,以寻找可疑活动的迹象。它旨在补充 CrowdStrike 之前创建的用于识别 VirtualGHOST 虚拟机的原始 PowerShell 脚本。 该脚本已在 Python 3.13 上针对 vCenter 8 进行了测试。它需要安装两个 Python 模块,可以使用 Python 的默认包管理器 pip 进行安装: - requests - pyvmomi 有关执行和输出解读的详细指南可在 [GHOSTHUNTER 文档](./docs/GHOSTHUNTER.md)中找到。 ## 后续步骤 如果识别出 VirtualGHOST,团队应尽快收集取证镜像。CrowdStrike 观察到威胁行为者利用此技术在 Ghost 虚拟机不再被主动使用时立即将其删除。 ### 对 VirtualGHOST 进行镜像取证 / 调查 由于 VirtualGHOST 不在虚拟机清单中,因此无法通过标准的 VMware 流程(如 vCenter 或 ESXi Web UI)进行管理。要收集正在运行的 VirtualGHOST 的取证镜像和虚拟机日志文件,请执行以下步骤: - 在包含 VirtualGHOST 虚拟机的 ESXi 主机上启用 SSH(这是必需的,因为数据存储浏览器可能不允许您复制与 VirtualGHOST 相关的所有文件,因为其中一些文件将被锁定) - 通过 SSH 连接到 ESXi 主机 - 将 VirtualGHOST 目录中的所有文件复制到其他位置(请注意某些文件将被锁定) - 通常每个目录只有一个虚拟机定义(`.vmx`)文件 - 因此请导航到检测脚本返回的 `VMConfigFile` 的父目录 - 使用标准的创建/注册虚拟机界面在 ESXi UI 中注册正在运行的 VirtualGHOST 虚拟机([文档链接](https://knowledge.broadcom.com/external/article?legacyId=1006160)) - 在 ESXi Web UI 中打开新注册的虚拟机 - 展开所有虚拟机菜单并截取屏幕截图以供调查(这可以使回溯特定虚拟机配置的工作更容易) - 通过 ESXi Web UI 挂起新注册的虚拟机 - 将虚拟机目录中的所有文件复制到单独的位置(注意这是在注册之后) :bulb: 存储在虚拟机目录中的 `vmware*.log` 文件对您的调查将**极其**有价值,所以别忘了获取/查看它们! ## 支持 作为免费、按原样提供的工具,本软件不受 CrowdStrike 官方支持。因此,我们恳请您不要向 CrowdStrike 支持团队发送咨询。项目维护者将与活跃的社区贡献者合作解决错误并提供新功能。如果您发现了错误,请[通过 GitHub 提交 issue](https://github.com/CrowdStrike/VirtualGHOST/issues/new)。
标签:AI合规, AMSI绕过, CrowdStrike, DNS 解析, ESXi, IPv6, PowerCLI, PowerShell, Python, vCenter, VirtualGHOST, VMware, vSphere, 企业安全, 威胁检测, 幽灵虚拟机, 影子IT, 恶意活动审查, 数字取证, 数据集, 无后门, 未注册虚拟机, 红队检测, 网络安全, 网络资产管理, 自动化脚本, 虚拟化安全, 逆向工具, 隐私保护