Kali inside VMware (Guest VM)

This guide is about virtualizing Kali Linux inside of VMware, allowing you to have a Kali VM. This is a great way to use Kali, as it is completely separate from the host, allows you to interact with other VMs (as well as the host, and other machines on the network), and allows you to revert to snapshots.

If you are trying to install VMware on Kali Linux (as a host), please see our guide.

The guide below is what we use to generate our pre-made Kali Linux VMware images. You may alter this to your needs. We always generate the images using the latest version of VMware Workstation, as Player and Fusion don’t have the same level of functionally and controls over settings.

You will need to enable virtualization in your BIOS/UEFI for (e.g. Intel VT-x/AMD-V)

Wizard

Upon starting up VMware Workstation, select β€œCreate a New Virtual Machine”.


When you have the option, select β€œCustom (advanced)” for the Virtual Machine Configuration, as this will allow us to have more control over the creation of the VM.


The next screen is β€œVirtual Machine Hardware Compatibility”, which we use β€œWorkstation 8.x”.

This allows for more users to benefit from Kali Linux out of the box (without having to edit the .vmx file to downgrade). If you are using a later version of VMware than v8, upon start up, VMware will prompt about upgrading the VM. This will remove any limitations caused by older VMware profiles. However, most users do not have their Kali Linux VM using all these extra resources (see screenshot below), so they wouldn’t benefit from having the latest profile, which is why we ship with a older profile.


On this screen, we select the Kali Linux image to use to install from. We select β€œBrowse”, and navigate to the location of the ISO that we downloaded. For more information on what image to download, we have written up a guide.


When you see the β€œGuest Operating System” screen, select β€œLinux”, and then the latest version of Debian for the version (as Kali is based on Debian). In this example, its Debian 10. We are going to be use the x64 image to install Kali, so we have selected 64-bit.


The next screen is β€œVirtual Machine Name”, which is where you name the VM. This name is also used as the filename (such as the configuration, hard disk and snapshot - which is not changed from this point).

We are keeping it generic in this guide, by using β€œKali Linux” (as Kali Linux is a rolling distribution, and we update Kali Linux). However for our releases, we use the version number in the name as it is a fixed release (kali-linux-YYYY.N-vmware-ARCH. Example: kali-linux-2022.4-vmware-amd64).


The next screen is β€œProcessors”. Here we can start to define how many resources we give the VM. Kali will be able to perform more tasks simultaneously and quicker if it is allocated more resources. We select β€œ2 processors” and β€œ2 cores per processors”, giving a total of 4 cores. You may wish to use more or less depending on your system requirements.


β€œMemory” is the next section, where we can define how much RAM to use. Again, the higher amount of RAM, the more applications can be open and at increased performance. Various tools inside of Kali can be demanding of resources. When we make the general VMs, we select 2GB (2048 MB) for RAM, but we often increase this for our personal machines as we have high-performing devices with spare RAM which Kali can utilize.


We are then presented with β€œNetwork Connection”. We default to using a NAT connection. However, this can easy be altered (even when the VM is powered on). This allows for Kali VM to talk to the Internet, as well as the rest of the LAN connection, without it taking up an additional IP address. The downside to this is it will not be able to receive reverse shells (without port forwarding inside of VMware).


Next is β€œI/O Controller Types”. We accept the default value of β€œLSI Logic”.


Next is β€œVirtual Disk Type”. We accept the default value of β€œSCSI”


The following screen is β€œDisk”, which allows us to β€œcreate a new virtual disk”


This screen below, β€œDisk Size”, allows us to define how large the virtual hard disk will be. We use β€œ80 GB” for our VMs.

We also don’t have it in a single file, but instead β€œSplit virtual disk into multiple files”. The VM hard disk will grow over time, to the maximum size, as we do not enable the β€œAllocate all disk space”.

It is possible to increase/decrease the hard disk after the VM has been created, however, if you have installed Kali, you’ll need to then also grow or shrink the partition for the space to reflect that.


When it comes to the β€œDisk File” screen, we accept the default value, which has been defined from our VM name earlier in the setup process.


We are then presented the final screen for the VM setup wizard, which gives us an overview of the settings we picked.

We are happy with what’s shown to us, so we then press β€œFinish”. If you try and β€œCustomize Hardware” at this stage, before the VM is fully created, not every setting is visible.


If this is the first time using the wizard, you may have the following prompt explaining how installing β€œVMware tools” will give you a better experience when using the VM.

After reading and understanding the page, you may wish to tick the β€œDon’t show this page again”, before pressing close.


Edit Settings

Before we start up the VM, we now edit its settings, by pressing β€œEdit virtual machine settings”.


We do not have a use for a printer, so we remove it. Navigate to the β€œPrinter” section, and then press β€œRemove”.


You may wish to edit the β€œUSB” settings to alter how USB devices behave. Here we have disabled β€œAutomatically connect new USB devices” (may not have the option depending on your VMware version) and enabled β€œShow all USB input devices”.


Another item to point out is in the β€œDisplay” section. Make sure that β€œAccelerated 3D graphics” is disabled, as people have reported that causes issues.


We then move over to the β€œOptions” tab, and move down to β€œPower”. We choose to enable β€œReport battery information to guests”, as it is a handy thing for users who use Kali on a laptop/notebook.


In β€œShared folders”, we select β€œAlways enable”. At this stage, do not share any paths, as some users may not wish for it.


The final option we alter is β€œVMware Tool”, where we enable β€œSynchronize guest time with host”.


After all this is done, we save, start up the VM, and then continue installing Kali Linux as we normally would for a bare metal install.

During Kali Linux setup process, the install wizard should detect if its inside a VM. If it is, should then automatically install any additional tools (such as open-vm-tools) to give a better user experience. If you want to manually re-install it, you can see our VMware Guest Tools Guide.

Last updated