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