1. 识别虚拟机管理程序
识别虚拟机正在运行的管理程序,如 VMware、Hyper-V 或 Xen。
不同的管理程序使用不同的虚拟化技术,需要不同的回避方法。
2. 检测虚拟化特征
执行检查虚拟化特征的测试,例如:
检查 CPUID 标志
读取虚拟化相关寄存器
调用特定于管理程序的 API
3. 依赖于管理程序的漏洞
利用管理程序的已知漏洞,例如:
Spectre 和 Meltdown 漏洞
直接内存访问 (DMA) 漏洞
固件漏洞
4. 硬件扩展
利用硬件扩展,如:
Intel VT-x/EPT
AMD-V/SMT
IOMMU
5. 硬件模拟
模拟不存在的硬件,例如:
虚拟网络适配器
虚拟磁盘驱动器
虚拟 CPU
6. 恶意软件和 rootkit
使用恶意软件或 rootkit 来隐藏虚拟化的迹象,例如:
修改虚拟化检测工具
拦截虚拟化 API 调用
注入恶意代码
7. 沙盒逃逸
从虚拟机提供的沙盒中逃逸,例如:
利用沙盒中的错误
升级沙盒特权
使用沙盒外部的资源
上一篇:如何让vm虚拟机运行
下一篇:vm虚拟机去虚拟化工具包