針對滲透入侵測試的菜鳥而言,往往需要通過大量的靶機(jī)來練手例如 Metasploitable、VulnHub、DVWA等等。但是我們不難發(fā)現(xiàn)這些靶機(jī)都有個(gè)弊端就是所有的漏洞BUG都是已知和靜態(tài)的,這與實(shí)際場景也存在著較大的出入。那么,有沒有一款可以用來隨機(jī)創(chuàng)建漏洞虛擬機(jī)的工具呢?答案是有。在Github上我挖掘到了一個(gè)叫做SecGen的生成器,SecGen是一個(gè)允許用戶隨機(jī)來創(chuàng)建漏洞虛擬機(jī)的工具,該項(xiàng)目使用Vagrant,Puppet和Ruby來快速創(chuàng)建可以用于學(xué)習(xí)或托管CTF的隨機(jī)漏洞虛擬機(jī)。本文,我將為大家介紹SecGen在Kali Linux上的安裝方法,以及如何使用SecGen并生成漏洞虛擬機(jī)。此外,你也可以選擇在樹莓派上安裝使用。
步驟1:安裝SecGen
在正式開始之前按照慣例,我們先使用apt-get update命令來更新下軟件列表。接著我們使用git clone命令,從git存儲庫克隆該項(xiàng)目的副本。
git clone https://github.com/SecGen/SecGen

依賴關(guān)系安裝,我們在終端中執(zhí)行以下命令。
sudo apt install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler vagrant imagemagick libmagickwand-dev

完成依賴項(xiàng)安裝后,我們使用cd SecGen命令進(jìn)入到SecGen目錄,并執(zhí)行以下命令:
bundle install
注意這里我并沒有使用sudo權(quán)限來執(zhí)行以上命令,使用普通權(quán)限運(yùn)行bundle會更合適,在必要時(shí)系統(tǒng)可能會提示你需要輸入密碼。以root用戶身份運(yùn)行bundle,可能會導(dǎo)致系統(tǒng)出現(xiàn)問題和沖突。

如果你出現(xiàn)上述提示,可以鍵入以下命令來查看Ruby的版本號。
ruby --version
根據(jù)你的Ruby版本,來完成所需步驟即可。
步驟2:創(chuàng)建你的第一個(gè)虛擬機(jī)
生成隨機(jī)漏洞虛擬機(jī),只需在終端中輸入以下命令。
ruby secgen.rb run
但不幸的是執(zhí)行以上命令后我卻發(fā)現(xiàn),Kali存儲庫的Vagrant版本存在問題,并且Ruby gems也有問題。因此如果你的機(jī)器同樣出現(xiàn)了致命的錯誤,那么我建議你將你的Vagrant版本進(jìn)行降級。你可以執(zhí)行以下命令:
apt purge vagrant
然后,從Vagrant站點(diǎn)下載Debian軟件包。使用dpkg -i命令來安裝vagrant.deb文件。
dpkg -i vagrant1.9.7x86_64.deb
現(xiàn)在,我們返回到SecGen文件夾,再次執(zhí)行以下命令。
ruby secgen.rb run
如果這里沒有錯誤,我們將可以順利進(jìn)入到下個(gè)操作。如果依然顯示報(bào)錯信息,你可以執(zhí)行以下命令來清除你的Ruby gems。
sudo gem cleanup
在完成以上兩個(gè)步驟后,我們再次執(zhí)行創(chuàng)建命令:
ruby secgen.rb run
創(chuàng)建過程可能需要等待一段時(shí)間,但并不會太漫長。

不一會兒一個(gè)漏洞虛擬機(jī)就生成了,在虛擬機(jī)軟件上我們可以查看到它的一些細(xì)節(jié)信息。

網(wǎng)絡(luò)連接模式設(shè)置
VirtualBox將機(jī)器組網(wǎng)模式默認(rèn)為NAT。這個(gè)模式可以讓虛擬機(jī)接入互聯(lián)網(wǎng),但主機(jī)將無法成功訪問到它。

因此,我們需要將NAT轉(zhuǎn)變?yōu)樵试S我們訪問虛擬機(jī)的網(wǎng)絡(luò)模式。根據(jù)我們的需求我們可以選擇host-only(僅主機(jī)模式)或bridged(橋接)。但橋接模式將會將漏洞虛擬機(jī)直接曝露在我們的內(nèi)部網(wǎng)絡(luò),因此我決定選擇使用僅主機(jī)模式。在VirtualBox中,選擇machine后選擇“設(shè)置”,“網(wǎng)絡(luò)”將NAT更改為“僅主機(jī)適配器”即可。

在完成以上設(shè)置后,我們就可以通過瀏覽器來打開該漏洞虛擬機(jī)了。我們通過ifconfig命令來查看它的網(wǎng)絡(luò)設(shè)備情況。
sudo ifconfig
如果你的ifconfig命令有問題,你可以運(yùn)行安裝apt-get install net-tools。

從ifconfig的返回結(jié)果可以看到一個(gè)名為vboxnet0的適配器,并且地址空間為172.28.128.0/24。接下來,我們執(zhí)行以下命令。
nmap 172.28.128.0/24 -sn
Nmap應(yīng)該會為我們返回兩個(gè)結(jié)果,你的主機(jī)和你的漏洞虛擬機(jī)。
如果你在滲透的過程中卡在了某一步,你可以在SecGen存儲庫文件夾中執(zhí)行以下命令,查看該虛擬機(jī)的生成方案。
cd projects
此目錄中包含之前生成的機(jī)器。我只有一臺機(jī)器,因此我將目錄更改為了該機(jī)器目錄。在該目錄中,有一個(gè)scenario.XML的文件。我們可以通過以下來命令查看它。‘
cat scenario.xml | less
或者,你也可以選擇自己喜歡的文本編輯器,如Vim進(jìn)行查看。
vim scenario.xml
這里我更喜歡使用Vim,因?yàn)樗峁┱Z法的高亮顯示。
|