
Metasploitable3 是一个从零开始构建的虚拟机,包含大量的安全漏洞。
Metasploitable3 是一个从头构建、包含大量安全漏洞的虚拟机。它旨在作为使用 metasploit 测试漏洞利用的目标。
Metasploitable3 以 BSD 风格许可证发布。更多详情请参阅 COPYING 文件。
要使用 https://app.vagrantup.com/rapid7/ 提供的预构建镜像,请创建一个新的本地 metasploitable 工作区:
Linux 用户:
mkdir metasploitable3-workspace
cd metasploitable3-workspace
curl -O https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile && vagrant up
Windows 用户:
mkdir metasploitable3-workspace
cd metasploitable3-workspace
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/rapid7/metasploitable3/master/Vagrantfile" -OutFile "Vagrantfile"
vagrant up
或者克隆此仓库并自行构建盒子。
系统要求:
需求:
./build.sh windows2008 来构建 Windows 虚拟机,或运行 ./build.sh ubuntu1404 来构建 Linux 虚拟机。如果 /tmp 空间较小,请使用 TMPDIR=/var/tmp ./build.sh ... 将临时 packer 磁盘映像存储在 /var/tmp 下。.\build.ps1 windows2008 来构建 Windows 虚拟机,或运行 .\build.ps1 ubuntu1404 来构建 Linux 虚拟机。如果没有向脚本传递任何选项(例如 .\build.ps1),则两个虚拟机都会被构建。vagrant up 来启动两者。要启动任意一个虚拟机,可以使用:
vagrant up ub1404:启动 Linux 虚拟机vagrant up win2k8:启动 Windows 虚拟机vagrant,密码:vagrant。packer build --only=<provider> ./packer/templates/windows_2008_r2.json 构建基础虚拟机映像,其中 <provider> 是您偏好的虚拟化平台。目前支持 virtualbox-iso、qemu 和 vmware-iso 提供程序。第一次运行时会花费一些时间,因为它需要下载操作系统安装 ISO。vagrant box add packer/builds/windows_2008_r2_*_0.1.0.box --name=rapid7/metasploitable3-win2k8 完成此操作。vagrant plugin install vagrant-reload 来安装 reload vagrant provisioner。vagrant up win2k8。这将启动虚拟机并运行所有必要的安装和配置脚本以完成设置。大约需要 10 分钟。vagrantvagrant使用 Vagrant 和轻量级的 Ubuntu 14.04 Vagrant 云盒子映像,您可以快速设置并定制 ub1404 Metasploitable3 以进行开发或自定义。为此,请安装 Vagrant 以及虚拟化平台,例如 VirtualBox、VMWare 或 libvirt。
安装相关的提供程序插件:
# virtualbox
vagrant plugin install vagrant-vbguest
# libvirt
vagrant plugin install vagrant-libvirt
然后,进入此仓库中的 chef/dev/ub1404 目录。查看该目录下的 Vagrantfile。选择一个支持您的提供程序的基础盒子。
Metasploitable ub1404 使用 Vagrant 的 chef-solo provisioner。在 Vagrantfile 中配置 chef_solo 块,指定您想要的 Metasploitable chef 配方(recipes)——您可以在 chef/cookbooks/metasploitable 文件夹中浏览它们。或者,在那里添加或编辑您自己的 cookbook 和/或配方。
在 chef/dev/ub1404 目录中,您可以运行 vagrant up 来获取一个开发用的 ub1404 虚拟实例。在初始的 up 构建和供应之后,当您编辑 chef runlist 或 chef 配方时,请在同一目录下运行 vagrant rsync && vagrant provision。为了更快地开发,您可以注释掉不需要重新运行的配方——但即使所有配方都启用,Vagrant 的重新供应通常也不会超过一两分钟。Chef 旨在幂等,因此您可以经常重新运行此命令。
考虑在修改配方之前拍摄快照(例如 vagrant snapshot save fresh),以便始终可以恢复到初始状态(vagrant restore fresh)。如果您想要一个_完全_新鲜的快照,可以先使用 vagrant up --no-provision 进行初始化,然后拍摄快照,接着运行 vagrant provision。
维基页面提供了更多细节,是主要的文档来源。请查看。
本项目的 Windows 部分基于 GitHub 用户 joefitzgerald 的 packer-windows 项目。使用了 Packer 模板、原始 Vagrantfile 和安装应答文件作为基础模板,并根据本项目需求进行了扩展。