Kali is a Linux distribution or it is a security and penetration test distribution. It is beyond a Linux distribution and provides a lot of useful, popular and featureful tools to the security professionals. Some of popular tools Kali provides
- nmap
- metasploit
- burp
- sqlmap
- masscan
- nikto
- …
Download Kali
We should get Kali installation iso image from internet official Kali site. Light version provides only popular tools which seems to be enough for most of the situations. There are different type of alternatives about desktop environment. Default desktop environment of Kali is GNOME shell but also following desktop environments are provided in the download site.
- KDE
- Mate
- Xfce
- LXDE
Kali can be run on small and embedded ARM devices with the following architectures.
- Armhf
- Armel
https://www.kali.org/downloads/

Weekly Builds
Previous step provides links about Kali releases. But as we know Linux world is dynamic world where every day new update provided by software maintainers. After some time Kali installation iso images can become old. So Kali is provided also weekly builds which holds latest installation files and tools.
http://cdimage.kali.org/kali-images/kali-weekly/

Create VM and Mount ISO Image
Kali works most of the popular virtualization systems like Vmware, Kvm, Virtualbox, Hyperv etc. We can chose whatever we want and which we are efficient to use. I have using Linux KVM virtualization. So we will create a virtual machine and give required hardware resources those have listed below.
- 2 CPU core
- 2 GB Ram
- 20 GB disk
- 1 Network interface
After that before starting vm we should put downloaded iso image into cdrom of the vm. We should mount it in order to start Kali installation procedure from cdrom.
Start Kali VM
The first screen of the installation process is like below. Kali provides different options in order to boot. We will chose the install option. Here is what these boot options means.
Live (amd64)
will open in live mode without installing it from ram.Live (amd64 failsafe)
is similar to previous one but work with less drivers and more reliabilityLive (forensic mode)
will open without touching systems local disks in order to investigationLive USB Persistence
will open persistent mode but use USB drive to save dataLive USB Encrypted Persistence
will open persistent mode with more secure way by encrypting them-
Install
will start installation of Kali into disk Graphical Install
will start installation with more friendly GUIAdvanced options
will provide more configuration parameters while booting

Select Language
Kali comes with great language support. We can chose which language we want to use. This configuration will set general language preference for whole Kali.

Select Location
Selecting location is required for setting time zone and system locale. This will be the country we are living.

Configure Locales
This will set locale we want to use.

Configure Keyboard
I think this is the one of the most important step. We will configure keyword map to use. Here I select Turkish (Q Layout)
.

Helper Applications
While waiting some helper or intermediate applications will be installed. These applications will be used to install main operating system.
DHCP Network Configuration
At this step Kali will try to configure its network settings with DHCP. If everything goes expected this step will be automatically proceeded if not we need to fix DHCP or set network configuration manually.
Hostname
At this step we will configure hostname of the Kali installation. Hostname will be used for network level naming of this system. Here we set hostname kali2

Domain name
Domain name specifies the network level group name this is generally not so important if you are not in a corporate environment. We set this as myhome
but select whatever name you want.

Set Password For Root User
Now another important step. We will set root
user password. Be sure that password is complex for attackers but easy to remember for yourself. If we need to show password in clear text not as masked we can select Show Password in Clear
option below.

Re-Enter Root Password
We should re-enter password for consistency and preventing mistakes which will lead to problems.

Disk Partitioning
We will create partitions where operating system data and user directories will be put. I prefer Guided - use entire disk
which is generally ideal for most of the users.
Guided - use entire disk
will use given disk wholly and provided partition schema automatically to us.Guided - use entire disk and set up LVM
will use given disk wholly, and setup LVM which is a disk technology to extend disks with news one.Guided - use entire disk and set up encrypted LVM
will use given disk wholly, and setup encrypted LVM which is a disk technology to extend disks with news one. This is more secure way if we are using Kali physicallyManual
will give control to us and we will select all partitions, file systems and parameters about disk.

Select Disk
We will select which disk we want to use for partition and installation. In this example we have single disk.

Partition Schema
Linux installations have different directories where some of them installed different partitions. We can set different partition for home
directory where user files resides. But I prefer all files in one partition.

Finish Partitioning
We can review the partition table which will be applied after we accept it. We finish partitioning and write changes to disk.

Accept Partitioning

Install Base System
We do not need to make anything just the base system installation starts.

Network Mirror
If we need we can set network mirror configuration. But generally we do not need one.

Install GRUB Boot Loader
GRUB is boot loader very popular in Linux distributions which used to load and start operating system. Naturally we select yes to install it.

Select Boot Disk
We will select the disk we want to install GRUB bootloader.

Installation Finished
After we click Continue
the installation of the Kali will be finished and system will be restart.

Login Kali
Here we are. We can login by providing root
and its password we have previously set.
