[Desktop翻譯]VirtualBox的小祕密:命令行

自動化您的 VirtualBox 配置html

原文地址:medium.com/disruptive-…react

原文做者:medium.com/@0xbharath安全

發佈時間:2017年6月7日 - 4分鐘閱讀bash

咱們在一些軟件上常常會遇到一些不爲人知但卻很是方便的功能。VirtualBox就有這樣一個功能,命令行。markdown

VBoxManage是VirtualBox的命令行界面。有了它,你徹底能夠在主機操做系統的命令行中控制VirtualBox。VBoxManage支持GUI給你提供的全部功能,但它支持的功能遠不止這些。它公開了虛擬化引擎的全部功能,甚至是那些沒法(還不能)從GUI訪問的功能。網絡

幸運的是,VBoxManage有大量的文檔,使生活變得簡單。它涵蓋了VBoxManage中的全部可用選項。若是你發現本身在使用 VBoxManage,文檔是你的參考資料。less

VBoxManage文檔oop

與其說是在官方文檔中已經普遍涉及的內容,讓本文成爲VBoxManage的又一教程,不如說是我最近使用VirtualBox命令行解決的一個問題。ui

問題是

我開始在一個開放的安全社區舉辦研討會。在開放社區舉辦研討會的好處是,很難預測人們帶着什麼樣的軟件/硬件走進來。你必須意識到軟件依賴性和硬件要求。spa

咱們計劃舉辦一個關於網絡偵查的研討會。做爲實驗室設置的一部分,咱們面臨着一系列的挑戰。

  • 咱們想讓觀衆運行幾個完整的虛擬機做爲實驗室的一部分,以展現遠程操做系統檢測技術,利用內核網絡棧實現的差別,因此使用容器是不可能的。
  • 咱們但願運行 "ReactOS "以免混亂的Windows許可條款。運行ReactOS意味着,使用Vagrant或容器不是一個簡單的選擇。
  • 觀衆攜帶的筆記本電腦有各類主機操做系統。Windows沒有原生的SSH客戶端,因此Vagrant又不是一個可行的選擇。
  • 咱們但願實驗室的設置儘量的自動化,而不是讓觀衆點擊每一步,簡單的VirtualBox GUI是沒法知足的。

VBoxManage FTW!

這時,咱們沒有太多選擇,只能求助於老牌的VirtualBox,這時我認真考慮了VirtualBox命令行。

  • VirtualBox能夠運行幾乎全部的*nix機器,也能夠運行ReactOS。
  • VBoxManage支持實驗室設置的徹底自動化(事實上Vagrant在後臺使用VBoxManage)。
  • VBoxManage在全部安裝了VirtualBox的平臺上均可以使用。

解決方案的步驟

建立實驗室設置

咱們建立了一堆虛擬機。其中一些虛擬機做爲受害者,一個虛擬機做爲實驗室中的攻擊者。咱們使用VirtualBox GUI從咱們的Linux機器中導出OVA格式的虛擬機。這時咱們有一個目錄,裏面有全部OVA格式的實驗室虛擬機。

導入實驗室設置

  • 咱們爲*nix建立了一個bash腳本,爲Windows建立了一個批處理文件,以使用VBoxManage自動導入實驗室設置。
  • Windows的問題是VBoxManage只能在VirtualBox安裝目錄下做爲命令使用,因此咱們必須調整批處理文件。
  • 下面的腳本導入全部須要的OVA文件,並列出主機上全部可用的虛擬機,以檢查OVA是否成功導入。

bash腳本導入實驗室虛擬機。

#!/usr/bin/env bash
VBoxManage import "victim1.ova"
VBoxManage import "victim2.ova"
VBoxManage import "attacker.ova"
printf "\n\nList of all the VMs\n------------------------\n"
VBoxManage list vms
複製代碼

batch腳原本導入實驗室虛擬機。

PATH=%PATH%;C:\Program Files\Oracle\VirtualBox
vboxmanage import "victim1.ova"
vboxmanage import "victim2.ova"
vboxmanage import "attacker.ova"
echo. && echo 'List of all VMs' && echo. && echo '-------------------------'
vboxmanage list vms
cmd \k
複製代碼

開始實驗室

  • 咱們建立了一個*nix的bash腳本和Windows的批處理文件來運行實驗室。
  • 咱們但願在後臺運行受害者,只顯示攻擊者。VirtualBox無頭模式在後臺運行一個虛擬機。
  • 咱們從Linux機器導出OVA,而Windows上的VirtualBox主機專用網絡適配器名稱與Linux不一致,因此咱們不得不使用vboxmanage modifyvm來修改適配器名稱。
  • 下面的腳本在後臺運行全部的受害者,並顯示攻擊者的虛擬機。這個腳本列出了全部正在運行的虛擬機,以檢查是否全部的東西都在運行。

bash腳原本啓動實驗室。

#!/usr/bin/env bash
vboxmanage startvm "victim1" --type headless
vboxmanage startvm "victim2" --type headless
vboxmanage startvm "attacker"
printf "\n\nList of all the VMs running\n------------------------------\n"
vboxmanage list runningvms
複製代碼

batch腳原本啓動實驗室。

PATH=%PATH%;C:\Program Files\Oracle\VirtualBox
vboxmanage modifyvm "victim1" --nic1 hostonly --hostonlyadapter1 "VirtualBox Host-Only Ethernet Adapter"
vboxmanage modifyvm "victim2" --nic1 hostonly --hostonlyadapter1 "VirtualBox Host-Only Ethernet Adapter"
vboxmanage modifyvm "attacker" --nic1 hostonly --hostonlyadapter1 "VirtualBox Host-Only Ethernet Adapter"
vboxmanage startvm "victim1" --type headless
vboxmanage startvm "victim2" --type headless
vboxmanage startvm "attacker"
echo. && echo 'List of all the running VMs' && echo. && echo '-------------------------'
vboxmanage list runningvms
cmd \k
複製代碼

中止實驗室

  • 建立了*nix的bash腳本和Windows的批處理文件來優雅地關閉實驗室。
  • vboxmanage controlvm有一個選項能夠關閉正在運行的虛擬機。
  • 下面的腳本關閉了全部正在運行的實驗室虛擬機,並列出了當前正在運行的虛擬機,以檢查一切是否正常關閉。

bash腳原本中止實驗室。

#!/usr/bin/env bash
vboxmanage controlvm "victim1" poweroff
vboxmanage controlvm "victim2" poweroff
vboxmanage controlvm "attacker" poweroff
printf "\n\nList of all the VMs running\n------------------------------\n"
vboxmanage list runningvms
複製代碼

批量文件來中止實驗室。

PATH=%PATH%;C:\Program Files\Oracle\VirtualBox
vboxmanage controlvm "victim1" poweroff
vboxmanage controlvm "victim2" poweroff
vboxmanage controlvm "attacker" poweroff
echo. && echo 'List of all the running VMs' && echo. && echo '-------------------------'
vboxmanage list runningvms
cmd \k
複製代碼

結論

VBoxManage是VirtualBox提供的一個很是整潔而強大的界面。當你試圖自動化你的虛擬環境時,特別是當你試圖分發你的環境時,它就會很方便。本文探討了這樣一個問題的解決方案,這還不是冰山一角,找到一個問題/挑戰,閱讀VBoxManage文檔,並享受其中的樂趣!


經過www.DeepL.com/Translator(免費版)翻譯

相關文章
相關標籤/搜索