//kalinux.info
Разное 531 просмотров

Добавление Kali в облаке Vagrant

Добавление Kali в облаке Vagrant

Вдохновленный недавним сообщением в сообществе, мы решили добавить новый официальный способ для нашего сообщества использовать Kali. Начиная с этого момента вы можете найти официально сохраненный образ Kali Linux в Vagrant Cloud.

Что такое Vagrant?

На веб-сайте Vagrant:

Vagrant - это инструмент для создания и управления средами виртуальных машин в одном рабочем процессе.

Проще говоря, с помощью одного файла конфигурации вы можете загрузить базовое «поле» и применить дополнительные настройки, например, добавить дополнительный сетевой интерфейс, установить количество ядер и памяти процессора или запустить скрипт при первой загрузке. Что еще более важно, все это содержится в файле конфигурации, который очень легко разделить по сравнению с виртуальной машиной, которая охватывает многие гигабайты.

Начало работы с Vagrant

Чтобы начать работу, сначала установите Vagrant и VirtualBox. Затем создайте пустой каталог и оттуда выполните следующую команду:

$ vagrant init offensive-security/kali-linux
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.

Это создаст файл с именем Vagrantfile, который содержит все параметры конфигурации для виртуальной машины. Каждая команда «vagrant» должна быть запущена из каталога, содержащего этот файл. По умолчанию он содержит только имя поля, а также многие общие комментарии. Мы рассмотрим некоторые из них позже, но вот выдержка.

$ 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 = "offensive-security/kali-linux"

...SNIP...

  # 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

...SNIP...
end

Затем убедитесь, что у вас достаточно свободного места на диске. Vagrant «ящик» (вы можете думать о нем как о шаблоне) использует около 4 ГБ, а развернутая виртуальная машина займет около 10 ГБ или более в зависимости от того, что вы устанавливаете внутри. Затем запустите эту команду:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'offensive-security/kali-linux' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'offensive-security/kali-linux'
    default: URL: https://vagrantcloud.com/offensive-security/kali-linux
==> default: Adding box 'offensive-security/kali-linux' (v2018.3.1) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/offensive-security/boxes/kali-linux/versions/2018.3.1/providers/virtualbox.box
...SNIP...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /Users/woodbine/vagrant-boxes/kali

Vagrant сначала загрузит файл окна, если он не находится в кеше, а затем создайте виртуальную машину Kali и включите ее. Вы увидите, что пользовательский интерфейс VirtualBox появляется, поэтому вы можете использовать Kali с учетными данными root / toor.
Vagrant ветераны могут заметить, что VM не безголовый, в отличие от большинства других Vagrant боксов. Мы решили показать графический интерфейс по умолчанию, потому что для этого требуются многие инструменты Kali. Если вам не нужен графический интерфейс, вы можете отключить его в Vagrantfile (см. Ниже пример конфигурации) и запустить следующую команду SSH на машину в качестве пользователя Vagrant.

$ 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.
vagrant@kali:~$

У этого пользователя нет пароля, который sudo настроен с помощью пароля vagrant согласно соглашениям Vagrant.

Конфигурация Vagrant

VM поставляется с предварительно настроенным интерфейсом NAT, поэтому вам не нужно редактировать конфигурацию, чтобы иметь доступ к Интернету внутри виртуальной машины. Кроме того, Vagrant создаст общую папку по умолчанию: текущий каталог на хосте (тот, который содержит Vagrantfile) доступен в каталоге / vagrant guest. Этот каталог позволяет сохранять данные на хосте, но легко доступен гостю. Это хорошая практика, так как это позволит вам быстро сбросить вашу машину-Vagrant и никогда не потерять данные.

Давайте посмотрим, что еще мы можем сделать с небольшой конфигурацией.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "offensive-security/kali-linux"

  # 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

Добавьте / раскомментируйте параметры внутри Vagrantfile, затем перезагрузите компьютер следующей командой, чтобы ваши изменения вступили в силу:

vagrant reload

Сценарий обеспечения будет запускаться только при первом запуске машины, но вы можете использовать одну из этих команд для повторного запуска:

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

Обратите внимание, что, хотя можно добавить мостовую сеть (называемую «общедоступной сетью» в Vagrant), это, вероятно, плохая идея, так как по умолчанию Vagrant небезопасен.

Завершение

Мы показали несколько простых вещей, которые вы можете сделать с Vagrant, но не забудьте проверить официальную документацию для получения дополнительных параметров конфигурации и Vagrant Cloud для большего количества ящиков!