10 KiB
layout | title | permalink | redirect_from | |
---|---|---|---|---|
doc | How to create a Kali Linux VM | /doc/pentesting/kali/ |
|
General reminder:
-
The installation scripts and provided tools may have bugs, be vulnerable to Man in the Middle (MitM) attacks or other vulnerabilities.
-
Adding additional repositories or tools for installing software extends your trust to those tool providers.
Please keep in mind that using such a VM or VM's based on the template for security and privacy critical tasks is not recommended.
How to Create a Kali Linux VM
This guide is being created to give guidance on ways in which you could create a Kali Linux penetration testing VM (qube) in Qubes OS.
Kali Linux is the most widely used penetration testing Linux distribution.
There are multiple ways to create a Kali Linux VM:
- Create a HVM and use the offical ISO to install the system or convert a Virtual Image. Explained here.
- Clone the Qubes OS Debian image and turn it into a Kali Linux distribution using katoolin. Explained here.
- Clone the Qubes OS 'jessie' Debian template, upgrade it to 'stretch' (Debian 9.0) and turn it into a Kali linux template. Explained here.
Kali Linux HVM
-
Download the Kali installation DVD
-
Create a new HVM
-
Start the HVM with attached CD/DVD
qvm-start <hvm-name> --cdrom <vm-name>:/home/user/Downloads/<iso-name>.iso
Debian based Kali Template with Katoolin
Katoolin is a script (written in Python) which helps you to install Kali tools.
-
(Optional) Install
debian-8
template (if not already installed) -
Update your
debian-8
templatesudo apt-get update sudo apt-get dist-upgrade
-
Clone
debian-8
template (two options)-
Via Qubes VM Manager
-
Via command line
qvm-clone debian-8 kali
-
-
Start and upgrade the
kali
Template from Debian 8 to Debian 9sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/qubes-r3.list sudo apt-get update sudo apt-get dist-upgrade sudo apt-get autoremove
-
Install Katoolin and add Kali Linux repositories
-
Install Katoolin
sudo apt-get install git git clone https://github.com/LionSec/katoolin.git sudo cp katoolin/katoolin.py /usr/bin/katoolin sudo chmod +x /usr/bin/katoolin rm -rf katoolin
-
Add Kali Linux repositories
-
start katoolin
sudo katoolin
-
select 'Add Kali repositories & Update'
1) Add Kali repositories & Update 2) View Categories 3) Install classicmenu indicator 4) Install Kali menu 5) Help kat > 1
-
select 'Add kali linux repositories'
1) Add kali linux repositories 2) Update 3) Remove all kali linux repositories 4) View the contents of sources.list file What do you want to do ?> 1
-
update Kali repositories
1) Add kali linux repositories 2) Update 3) Remove all kali linux repositories 4) View the contents of sources.list file What do you want to do ?> 2
-
quit katoolin by pressing
CRTL
+c
keysWhat do you want to do ?> ^CShutdown requested...Goodbye...
-
-
-
Clean up and update
kali
templatesudo apt-get dist-upgrade sudo apt-get autoremove
-
Shutdown and trim
kali
template-
Shutdown
kali
templatesudo shutdown -h now
-
In
dom0
console:qvm-trim-template kali
-
-
Start image
-
Install tools
-
View Categories
-
start katoolin
sudo katoolin
-
select
2) View Categories
-
-
Select the categories/tools you want to install
-
For more information on how to use Katoolin see How to Auto Install All Kali Linux Tools Using “Katoolin” on Debian/Ubuntu.
-
Note: The
all
option does not work forInformation Gathering
,Web Apps
,Forensic Tools
,Reverse Engineering
andExtra
.
-
-
-
Create a AppVMs based on the
kali
template- (Optional) Attach necessary devices
Kali Linux TemplateVM from a Debian template
This section will explain how to create your own Kali Linux TemplateVM based on a Debian 9.0 (Stretch) TemplateVM. The basic idea is to personalize the template with all the tools needed, and then spin up isolated AppVMs based on the template.
This has been tested on Qubes OS 3.2.
The steps can be summarised as:
- Install Qubes' Debian 8.0 (Jessie) template
- Upgrade the template to Debian 9.0 (Stretch)
- Install Kali Linux through the
kali-linux-full
package - Use the template to build AppVM so that you can maintain isolation between e.g. pentesting jobs
Get Kali Linux GPG key
CAUTION: Before proceeding, please carefully read On Digital Signatures and Key Verification. This website cannot guarantee that any PGP key you download from the Internet is authentic. Always obtain a trusted key fingerprint via other channels, and always check any key you download against your trusted copy of the fingerprint.
This step is required since by (security) default a TemplateVM do not have a direct Internet connectivity. Users understanding the risks of enabling such access can change this configuration in firewall settings for the TemplateVM.
-
Retrive the Kali Linux GPG key using a DispVM.
[user@xxxx-dvm ~]$ gpg --keyserver hkp://keys.gnupg.net --recv-key 7D8D0BF6 [user@xxxx-dvm ~]$ gpg --list-keys --with-fingerprint 7D8D0BF6 [user@xxxx-dvm ~]$ gpg --export --armor 7D8D0BF6 > kali-key.asc
-
DO NOT TURN OFF the DispVM, the
kali-key.asc
file will be copied to the Kali Linux template in a further step. -
Make sure the key is the authentic Kali key. See the Kali website for further advice and instructions on verification.
Create a Kali Linux (rolling) template
These instructions will show you how to upgrade a Debian 9 TemplateVM to Kali Linux.
Note: The prompt on each line indicates where each command should be entered
(@dom0
, @kali-rolling
or @xxxx-dvm
).
-
Ensure the base template is not running.
[user@dom0 ~]$ qvm-shutdown debian-9
-
Clone the base template and start a terminal in the new template.
[user@dom0 ~]$ qvm-clone debian-9 kali-rolling [user@dom0 ~]$ qvm-run -a kali-rolling gnome-terminal
-
Copy the Kali GPG key from the DispVM to the new template:
[user@xxxx-dvm ~]$ qvm-copy-to-vm kali-rolling kali-key.asc
The DispVM can now be turned off.
-
Add the Kali GPG key to the list of keys trusted to authenticate packages:
[user@kali-rolling ~]$ cat /home/user/QubesIncoming/dispXXX/kali-key.asc | sudo apt-key add -
This command should return
OK
on a line by itself. -
Attempt the upgrade process in the new template.
[user@kali-rolling ~]$ sudo cat <<EOF > /etc/apt/sources.list.d/kali.list # Kali Linux repository deb http://http.kali.org/kali kali-rolling main non-free contrib EOF [user@kali-rolling ~]$ sudo apt-get update [user@kali-rolling ~]$ sudo apt-get dist-upgrade [user@kali-rolling ~]$ sudo apt-get autoremove
-
Shut down and trim the new template.
[user@dom0 ~]$ qvm-shutdown kali-rolling [user@dom0 ~]$ qvm-trim-template kali-rolling
-
Ensure a terminal can be opened in the new template.
[user@dom0 ~]$ qvm-run -a kali-rolling gnome-terminal
Install the Kali tools
At this point you should have a working template and you can install the tools you need.
-
resize the template disk image if you plan on installing the full Kali distribution. For example to install
kali-linux-full
you must grow the size of the VM system from 10GB to at least 20GB. -
Install Kali Linux tools:
[user@kali-rolling ~]$ sudo apt-get install kali-linux-full
-
(Optional) Customise the template's home directory (e.g. install your licensed copy of Burp Suite Professional)
Use the template
The template is ready to be used. You can now spin up AppVMs based on the kali-rolling
template.
Alternative Options to Kali Linux
- PenTester Framework, with PTF Qubes OS guide
- BlackArch Linux, with BA Qubes OS guide
- KATOOLIN
- more on the Penetration Testing page
Notes
Thanks to the people in the discussion thread.