針對滲透入侵測試的菜鳥而言,往往需要通過大量的靶機來練手例如 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,因為它提供語法的高亮顯示。
|