Ispirati da un recente post sul blog della community, abbiamo deciso di aggiungere un nuovo modo ufficiale per la nostra community di utilizzare Kali. A partire da ora, puoi trovare un'immagine Kali Linux ufficialmente mantenuta in Vagrant Cloud.
Cos'è Vagrant?
Dal sito web di Vagrant:
Vagrant è uno strumento per creare e gestire ambienti di macchine virtuali in un unico flusso di lavoro.
In parole povere, con un singolo file di configurazione, puoi scaricare una "scatola" di base e applicare configurazioni aggiuntive come l'aggiunta di un'interfaccia di rete aggiuntiva, l'impostazione del numero di core e memoria della CPU o l'esecuzione di uno script al primo avvio. Ancora più importante, tutto questo è contenuto in un file di configurazione, che è molto facile da condividere rispetto a una macchina virtuale che occupa molti gigabyte.
Per iniziare
Per iniziare, installa prima Vagrant e VirtualBox. Quindi crea una directory vuota e da lì esegui il seguente comando:
$ vagrant init kalilinux/rolling
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Questo creerà un file chiamato Vgrantfile , che contiene tutte le opzioni di configurazione per la macchina virtuale. Ogni comando "vagabondo" deve essere eseguito dalla directory contenente quel file. Per impostazione predefinita, contiene solo il nome della casella e molte opzioni comuni commentate. Ne esamineremo alcuni in seguito, ma eccone un estratto.
$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "kalilinux/rolling"
...
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
...
end
Quindi, assicurati di avere spazio su disco sufficiente. La "scatola" vagante (puoi pensarla come un modello) utilizza circa 4 GB e la VM creata impiegherà circa 10 GB o più a seconda di ciò che installi all'interno. Quindi esegui questo comando:
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'kalilinux/rolling' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'kalilinux/rolling'
default: URL: https://vagrantcloud.com/kalilinux/rolling
==> default: Adding box 'kalilinux/rolling' (v2018.3.1) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/kalilinux/boxes/rolling/versions/2018.3.1/providers/virtualbox.box
...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => /Users/woodbine/vagrant-boxes/kali
Vagrant scaricherà prima il file della scatola se non è nella sua cache, quindi creerà la Kali VM e la accenderà. Vedrai apparire l'interfaccia utente di VirtualBox in modo da poter utilizzare Kali normalmente con il root/toor credenziali. I veterani Vagrant potrebbero notare che la VM non è senza testa, a differenza della maggior parte delle altre scatole Vagrant. Abbiamo deciso di mostrare la GUI per impostazione predefinita perché molti strumenti Kali la richiedono. Se non hai bisogno della GUI, puoi disabilitarla nel Vgrantfile (vedi sotto per un esempio di configurazione) ed esegui il seguente comando in SSH sulla macchina come vagabondo utente.
$ vagrant ssh
Linux kali 4.18.0-kali1-amd64 #1 SMP Debian 4.18.6-1kali1 (2018-09-10) x86_64
The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[email protected]:~$
Questo utente ha sudo senza password configurato con la password vagabondo , come da convenzioni Vagrant.
Configurazione
La VM viene fornita con un'interfaccia NAT preconfigurata, quindi non è necessario modificare la configurazione per avere accesso a Internet dall'interno della VM. Inoltre, Vagrant creerà una cartella condivisa per impostazione predefinita:la directory corrente sull'host (quella contenente il Vgrantfile ) è disponibile in /vagrant elenco dell'ospite. Questa directory consente di mantenere i dati salvati sull'host, ma facilmente accessibili dall'ospite. Questa è una buona pratica, in quanto ti consentirebbe di ripristinare rapidamente la tua macchina Vagrant e non perdere mai dati.
Vediamo cos'altro possiamo fare con una piccola configurazione.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "kalilinux/rolling"
# Create a forwarded port
config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a private network. In VirtualBox, this is a Host-Only network
config.vm.network "private_network", ip: "192.168.33.10"
# VirtualBox specific settings
config.vm.provider "virtualbox" do |vb|
# Hide the VirtualBox GUI when booting the machine
vb.gui = false
# Customize the amount of memory on the VM:
vb.memory = "4096"
end
# Provision the machine with a shell script
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y crowbar
SHELL
end
Aggiungi/decommenta le opzioni all'interno del Vgrantfile quindi riavvia la macchina con il seguente comando per rendere effettive le modifiche:
vagrant reload
Lo script di provisioning verrà eseguito solo al primo avvio della macchina, ma puoi utilizzare uno di questi comandi per eseguirlo nuovamente:
vagrant provision # provision the powered on VM
vagrant up --provision # when VM is powered off, power it on then provision
vagrant reload --provision # reboot the VM then provision
Tieni presente che sebbene sia possibile aggiungere una rete con bridge (chiamata "rete pubblica" in Vagrant), questa è probabilmente una cattiva idea poiché Vagrant non è sicuro per impostazione predefinita.
Conclusione
Ci auguriamo che questa nuova offerta ti sia utile. Abbiamo mostrato alcune semplici cose che puoi fare con Vagrant, ma assicurati di controllare la documentazione ufficiale per ulteriori opzioni di configurazione e Vagrant Cloud per più box!