如何使用SecGen随机生成漏洞靶机?

AlexFrankly 2017-9-4 教学频道 0 0

对于渗透测试的新手而言,往往需要通过大量的靶机来练手例如 VulnHub、Metasploitable、DVWA等。但我们不难发现这些靶机有个弊端就是,所有的漏洞都是已知和静态的,这与实际场景也存在着较大的出入。那么,有没有一款可以用来随机创建漏洞虚拟机的工具呢?答案是有。在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

如何使用SecGen随机生成漏洞靶机?

依赖关系安装,我们在终端中执行以下命令。

sudo apt install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler vagrant imagemagick libmagickwand-dev

如何使用SecGen随机生成漏洞靶机?

完成依赖项安装后,我们使用cd SecGen命令进入到SecGen目录,并执行以下命令:

bundle install

注意这里我并没有使用sudo权限来执行以上命令,使用普通权限运行bundle会更合适,在必要时系统可能会提示你需要输入密码。以root用户身份运行bundle,可能会导致系统出现问题和冲突。

如何使用SecGen随机生成漏洞靶机?

如果你出现上述提示,可以键入以下命令来查看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

创建过程可能需要等待一段时间,但并不会太漫长。

如何使用SecGen随机生成漏洞靶机?

不一会儿一个漏洞虚拟机就生成了,在虚拟机软件上我们可以查看到它的一些细节信息。

如何使用SecGen随机生成漏洞靶机?

网络连接模式设置

VirtualBox将机器组网模式默认为NAT。这个模式可以让虚拟机接入互联网,但主机将无法成功访问到它。

如何使用SecGen随机生成漏洞靶机?

因此,我们需要将NAT转变为允许我们访问虚拟机的网络模式。根据我们的需求我们可以选择host-only(仅主机模式)或bridged(桥接)。但桥接模式将会将漏洞虚拟机直接曝露在我们的内部网络,因此我决定选择使用仅主机模式。在VirtualBox中,选择machine后选择“设置”,“网络”将NAT更改为“仅主机适配器”即可。

如何使用SecGen随机生成漏洞靶机?

在完成以上设置后,我们就可以通过浏览器来打开该漏洞虚拟机了。我们通过ifconfig命令来查看它的网络设备情况。

sudo ifconfig

如果你的ifconfig命令有问题,你可以运行安装apt-get install net-tools

如何使用SecGen随机生成漏洞靶机?

从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,因为它提供语法的高亮显示。

如何使用SecGen随机生成漏洞靶机?

如果你想得到一些提示信息,你可以通过以下命令获取到。

cat marker.xml | less

这将给你提示帮助你找出随机生成的机器。

步骤3:生成其他场景

关于如何编写自己的场景方案,不在本文的讨论方位内。但在SecGen GitHub的页面上已经有详细的记录说明,除了使用默认方案生成随机虚拟机之外,用户还可以使用一些其他的生成方案。示例如下:

ruby secgen.rb --scenario scenarios/examples/remotely_exploitable_user_vulnerability.xml run

这将创建一个具有随机远程可利用漏洞的虚拟机。

ruby secgen.rb --scenario scenarios/security_audit/team_project_scenario.xml run

这将会为我们创建一组漏洞机器,并模拟一个迷你企业架构。SecGen创建了一个内网服务器,一台台式机和一台Web服务器。之后通过简单配置,就可以模拟存在漏洞的企业内部网络了。这对于新手能力的提升无疑将带来巨大的帮助。

更多示例你可以在 ./SecGen/scenarios/examples目录下找到。

总结

通过本文对SecGen的介绍,我们可以看到SecGen的优势所在。对于渗透测试的新手而言,SecGen不失为一款优秀的练习工具。随着该工具的不断完善和成熟,我也希望越来越多的人能够加入到这个项目中来,创建更多的优秀场景并分享它们!

 *参考来源:null-byte,FB小编 secist 编译,转载请注明来自FreeBuf.COM

转载请注明来自华盟网,本文标题:《如何使用SecGen随机生成漏洞靶机?》

喜欢 (0) 发布评论