Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Download the latest Kali Linux image, with the xfce DE. The gnome3 version works kind of poorly when remoting to it via VNC. . Download here
  2. Create a new VM on your local Linux computer running KVM/libvirt, and install Kali from the ISO. 15GB 20GB disk should be sufficient. Use the qcow2 format. Make sure to select the virtio driver both for disk and NIC. The VM also need internet connectivity.
  3. During the installation, use manual partitioning. Create just one partition, with / mounted, and enable the bootable flag. Disable swap.
  4. When prompted, set the root password to "toor" (default for Kali)create the user "kali" with "kali" as password. The password will be overwritten by cloud-init later.

Modify the image, to make it cloud ready

...

  1. Login to the virtual machine with rootkali user, and run run sudo apt update && sudo apt upgrade. Reboot if necessary.
  2. Install cloud-init: apt install cloud-init
  3. Run dpkg-reconfigure cloud-init and for metadata services, select only Config Drive, EC2 and Openstack.
  4. Edit the file 
    1. Add datasource_list: [ OpenStack, ConfigDrive, Ec2 ] to /etc/cloud/cloud.cfg
    and change the line disable_root: true to disable_root: false
    1. .d/99_openstack.cfg
  5. Run systemctl enable cloud-init
  6. Run systemctl enable cloud-final
  7. Edit the file /etc/default/grub, and make sure that the variable GRUB_CMDLINE_LINUX_DEFAULT contains console=ttyS0 console=tty0 (if there's other content in this variable that's fine. Just add this to the end of the string.
    NOTE: remove quiet
    1. Run update-grub
    Edit /etc/lsb_release to have the version number, not kali-rolling in DISTRIB_RELEASE
    1. If this is not done, virt-sysprep will fail

Enable ssh server

  1. systemctl enable ssh
  2. Ensure that password logon is disabled

Enable vncserver for

...

user "kali", and add it to upstart

  1. Install tightvncserver and dbus-x11
  2. Run vncserver
    1. Enter the password "kaliVNC" twice
    2. When the command returns, kill the vncserver with vncserver -kill :1
  3. Create /usr/local/bin/vncserv and paste this content

    Code Block
    languagebash
    collapsetrue
    #!/bin/bash
    PATH="$PATH:/usr/bin"
    DISPLAY="1"
    DEPTH="24"
    GEOMETRY="1280x960"
    OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
    
    case "$1" in
    start)
    /usr/bin/vncserver ${OPTIONS}
    ;;
    
    stop)
    /usr/bin/vncserver -kill :${DISPLAY}
    ;;
    
    restart)
    $0 stop
    $0 start
    ;;
    esac
    exit 0


  4. chmod 755 /usr/local/bin/vncserv
  5. Create /lib/systemd/system/vncserv.service and paste this content

    Code Block
    languagebash
    collapsetrue
    [Unit]
    Description=VNC Server
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/vncserv start
    ExecStop=/usr/local/bin/vncserv stop
    ExecReload=/usr/local/bin/vncserv restart
    User=rootkali
    
    [Install]
    WantedBy=multi-user.target


  6. Run systemctl daemon-reload; systemctl enable vncserv

...

  1. Shutdown the virtual machine
  2. Unmount the ISO file (if still mounted)
  3. Run (on your local machine) virt-sysprep -d <vm-name>
  4. Convert the qcow2 disk to raw format, and upload it to glance. (howto)

 

...