虚拟机的渗透测试限制

信息安全 渗透测试
2021-09-09 22:13:08

使用虚拟机而不是物理机执行渗透测试时有哪些限制?

4个回答

在我看来,从虚拟机执行渗透测试实际上是从 opsec 角度进行渗透测试的首选方式(即保持客户数据之间的分离)。

限制可能源于您无法直接访问底层硬件,特别是:

  • 有线网络接口:某些主机操作系统(例如 OSX)将继续使用有线网络,即使您在主机操作系统中明确禁用它并将虚拟机桥接到它。从网络的角度来看,这意味着同一端口上有两个不同的 MAC 地址,这有时会触发 NAC。
  • 无线接口:大多数管理程序根本不模拟无线设备
  • GPU:如果你想使用 oclhashcat 之类的东西来破解密码,你需要直接访问 GPU

话虽如此,这些问题中的大部分都可以通过将必要的硬件专用于 VM(例如 PCI 或 USB 直通)来解决。

我使用 docker-machine 和 packer/vagrant 以及 vmwarefusion 作为我的提供者。我可以通过以下方式检查我的机器的状态:

docker ps
vagrant global-status

Vagrant 用于 Windows 和 OS X 映像,而 Docker 用于 Linux 和 FreeBSD。

例如,我的 Kali 2.0 Docker 映像开始时约为 550MB,现在约为 1.8GB。我通过这种方式节省了大量磁盘空间,并且能够轻松区分我的图像以确定发生了什么变化以及它是如何变化的。我有 Arch、CentOS、Debian、Fedora、FreeBSD、Kali、Qubes、REMnux、RHEL、Scientific 和 Ubuntu 的映像。

访问我的容器非常容易。我可以在 15 秒左右启动一个全新的 OS X 或 Windows 映像。Docker 要快得多——附加到新创建的正在运行的容器只需几分之一毫秒。我使用 CTRL+P CTRL+Q 来分离,几乎就像 screen 或 tmux。

在我看来,这是相反的效果:在没有虚拟机的情况下,我觉得我的渗透测试能力有限。对于容器和基于 Docker 的工作流程,我特别感到有能力。使用单一的、仅限主机的操作系统是真正的限制。如果没有不断发展的实验室,您还应该如何模拟环境、舞台工具或开发新想法?

可能会遇到一些数据包注入问题,因为 VM 将看到虚拟接口而不是物理接口。这只会影响一些无线攻击。

除此之外,我想不出任何其他问题。

以我个人的经验,只要您没有运行有时需要与某些硬件直接交互的程序,虚拟机并不重要。

例如,您想要直接解决 GPU(密码破解)或想要执行一些低级网络操作的场景可能会给您带来问题。

此外,它还取决于您使用的虚拟化类型。