针对渗透入侵测试的菜鸟而言,往往需要通过大量的靶机来练手例如 Metasploitable、VulnHub、DVWA等等。但是我们不难发现这些靶机都有个弊端就是所有的漏洞BUG都是已知和静态的,这与实际场景也存在着较大的出入。那么,有没有一款可以用来随机创建漏洞虚拟机的工具呢?答案是有。在Github上我挖掘到了一个叫做SecGen的生成器,SecGen是一个允许用户随机来创建漏洞虚拟机的工具,该项目使用Vagrant,Puppet和Ruby来快速创建可以用于学习或托管CTF的随机漏洞虚拟机。本文,我将为大家介绍SecGen在Kali Linux上的安装方法,以及如何使用SecGen并生成漏洞虚拟机。此外,你也可以选择在树莓派上安装使用。
步骤1:安装SecGen
在正式开始之前按照惯例,我们先使用apt-get update命令来更新下软件列表。接着我们使用git clone命令,从git存储库克隆该项目的副本。
git clone https://github.com/SecGen/SecGen
依赖关系安装,我们在终端中执行以下命令。
sudo apt install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler vagrant imagemagick libmagickwand-dev
完成依赖项安装后,我们使用cd SecGen命令进入到SecGen目录,并执行以下命令:
bundle install
注意这里我并没有使用sudo权限来执行以上命令,使用普通权限运行bundle会更合适,在必要时系统可能会提示你需要输入密码。以root用户身份运行bundle,可能会导致系统出现问题和冲突。
如果你出现上述提示,可以键入以下命令来查看Ruby的版本号。
ruby --version
根据你的Ruby版本,来完成所需步骤即可。
步骤2:创建你的第一个虚拟机
生成随机漏洞虚拟机,只需在终端中输入以下命令。
ruby secgen.rb run
但不幸的是执行以上命令后我却发现,Kali存储库的Vagrant版本存在问题,并且Ruby gems也有问题。因此如果你的机器同样出现了致命的错误,那么我建议你将你的Vagrant版本进行降级。你可以执行以下命令:
apt purge vagrant
然后,从Vagrant站点下载Debian软件包。使用dpkg -i命令来安装vagrant.deb文件。
dpkg -i vagrant1.9.7x86_64.deb
现在,我们返回到SecGen文件夹,再次执行以下命令。
ruby secgen.rb run
如果这里没有错误,我们将可以顺利进入到下个操作。如果依然显示报错信息,你可以执行以下命令来清除你的Ruby gems。
sudo gem cleanup
在完成以上两个步骤后,我们再次执行创建命令:
ruby secgen.rb run
创建过程可能需要等待一段时间,但并不会太漫长。
不一会儿一个漏洞虚拟机就生成了,在虚拟机软件上我们可以查看到它的一些细节信息。
网络连接模式设置
VirtualBox将机器组网模式默认为NAT。这个模式可以让虚拟机接入互联网,但主机将无法成功访问到它。
因此,我们需要将NAT转变为允许我们访问虚拟机的网络模式。根据我们的需求我们可以选择host-only(仅主机模式)或bridged(桥接)。但桥接模式将会将漏洞虚拟机直接曝露在我们的内部网络,因此我决定选择使用仅主机模式。在VirtualBox中,选择machine后选择“设置”,“网络”将NAT更改为“仅主机适配器”即可。
在完成以上设置后,我们就可以通过浏览器来打开该漏洞虚拟机了。我们通过ifconfig命令来查看它的网络设备情况。
sudo ifconfig
如果你的ifconfig命令有问题,你可以运行安装apt-get install net-tools。
从ifconfig的返回结果可以看到一个名为vboxnet0的适配器,并且地址空间为172.28.128.0/24。接下来,我们执行以下命令。
nmap 172.28.128.0/24 -sn
Nmap应该会为我们返回两个结果,你的主机和你的漏洞虚拟机。
如果你在渗透的过程中卡在了某一步,你可以在SecGen存储库文件夹中执行以下命令,查看该虚拟机的生成方案。
cd projects
此目录中包含之前生成的机器。我只有一台机器,因此我将目录更改为了该机器目录。在该目录中,有一个scenario.XML的文件。我们可以通过以下来命令查看它。‘
cat scenario.xml | less
或者,你也可以选择自己喜欢的文本编辑器,如Vim进行查看。
vim scenario.xml
这里我更喜欢使用Vim,因为它提供语法的高亮显示。
|