Inspirés par un récent article de blog communautaire, nous avons décidé d'ajouter une nouvelle façon officielle pour notre communauté d'utiliser Kali. À partir de maintenant, vous pouvez trouver une image Kali Linux officiellement maintenue dans le Vagrant Cloud.
Qu'est-ce que le vagabond ?
Depuis le site Web de Vagrant :
Vagrant est un outil permettant de créer et de gérer des environnements de machines virtuelles dans un flux de travail unique.
En termes simples, avec un seul fichier de configuration, vous pouvez télécharger une "boîte" de base et appliquer des configurations supplémentaires comme l'ajout d'une interface réseau supplémentaire, la définition du nombre de cœurs de processeur et de mémoire, ou l'exécution d'un script au premier démarrage. Plus important encore, tout cela est contenu dans un fichier de configuration, qui est très facile à partager par rapport à une machine virtuelle qui s'étend sur plusieurs gigaoctets.
Mise en route
Pour commencer, installez d'abord Vagrant et VirtualBox. Créez ensuite un répertoire vide et à partir de là, exécutez la commande suivante :
$ 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.
Cela créera un fichier nommé Vagrantfile , qui contient toutes les options de configuration de la machine virtuelle. Chaque commande "vagrant" doit être exécutée à partir du répertoire contenant ce fichier. Par défaut, il ne contient que le nom de la boîte ainsi que de nombreuses options communes commentées. Nous reviendrons sur certaines d'entre elles plus tard, mais voici un extrait.
$ 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
Ensuite, assurez-vous que vous disposez de suffisamment d'espace disque. La "boîte" vagabonde (vous pouvez la considérer comme un modèle) utilise environ 4 Go, et la VM créée prendra environ 10 Go ou plus selon ce que vous installez à l'intérieur. Exécutez ensuite cette commande :
$ 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 téléchargera d'abord le fichier de la boîte s'il ne se trouve pas dans son cache, puis créera la machine virtuelle Kali et l'allumera. Vous verrez apparaître l'interface utilisateur de VirtualBox afin que vous puissiez utiliser Kali normalement avec le root/toor identifiants. Les vétérans Vagrant pourraient remarquer que la VM n'est pas sans tête, contrairement à la plupart des autres boîtes Vagrant. Nous avons décidé d'afficher l'interface graphique par défaut car de nombreux outils Kali l'exigent. Si vous n'avez pas besoin de l'interface graphique, vous pouvez la désactiver dans le Vagrantfile (voir ci-dessous pour un exemple de configuration) et exécutez la commande suivante pour vous connecter en SSH à la machine en tant que vagrant utilisateur.
$ 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]:~$
Cet utilisateur a sudo sans mot de passe configuré avec le mot de passe vagrant , selon les conventions Vagrant.
Configuration
La VM est livrée avec une interface NAT préconfigurée, vous n'avez donc pas besoin de modifier la configuration pour avoir accès à Internet depuis l'intérieur de la VM. De plus, Vagrant va créer un dossier partagé par défaut :le répertoire courant sur l'hébergeur (celui contenant le Vagrantfile ) est disponible dans le /vagrant répertoire de l'invité. Ce répertoire permet de conserver des données enregistrées sur l'hôte, mais facilement accessibles par l'invité. C'est une bonne pratique, car cela vous permettrait de réinitialiser rapidement votre machine Vagrant et de ne jamais perdre de données.
Voyons ce que nous pouvons faire de plus avec juste un peu de configuration.
# -*- 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
Ajoutez/décommentez les options dans le Vagrantfile puis redémarrez la machine avec la commande suivante pour que vos modifications prennent effet :
vagrant reload
Le script de provisionnement ne sera exécuté qu'au premier démarrage de la machine, mais vous pouvez utiliser l'une de ces commandes pour le réexécuter :
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
Notez que s'il est possible d'ajouter un réseau ponté (appelé "réseau public" dans Vagrant), c'est probablement une mauvaise idée car Vagrant n'est pas sécurisé par défaut.
Conclusion
Nous espérons que cette nouvelle offre vous sera utile. Nous avons montré quelques choses simples que vous pouvez faire avec Vagrant, mais assurez-vous de consulter la documentation officielle pour plus d'options de configuration et le Vagrant Cloud pour plus de boîtes !