- Kali On ARM
- Gem PDA
- Raspberry Pi - Full Disk Encryption
- Raspberry Pi
- Acer Tegra Chromebook 13"
- ASUS Chromebook Flip
- BeagleBone Black
- Cubieboard 2
- HP Chromebook
- ODROID U2
- Raspberry Pi - Disk Encryption
- Raspberry Pi 2
- Samsung ChromeBook
- Samsung Chromebook 2
- USB Armory
- Utilite Pro
- Kali NetHunter Documentation
- NetHunter Rootless
- Installing NetHunter
- Installing NetHunter On the Gemini PDA
- NetHunter Components
- NetHunter Home Screen
- NetHunter Chroot Manager
- NetHunter KeX Manager
- NetHunter USB-Arsenal
- NetHunter BadUSB Attack
- NetHunter Application - Terminal
- NetHunter Custom Commands
- NetHunter DuckHunter Attacks
- NetHunter HID Keyboard Attacks
- NetHunter Kali Services
- NetHunter MAC Changer
- NetHunter MANA Evil Access Point
- NetHunter Man In The Middle Framework
- NetHunter Metasploit Payload Generator
- NetHunter Nmap Scan
- NetHunter Exploit Database SearchSploit
- Wireless Cards and NetHunter
- Building a New Device File
- Building NetHunter
- Porting NetHunter to New Devices
- Testing Checklist
- Patching the Kernel
- Configuring the Kernel - General
- Configuring the Kernel - Network
- Configuring the Kernel - Wifi
- Configuring the Kernel - SDR
- Configuring the Kernel - USB
- General Use
- Kali Network Repositories (/etc/apt/sources.list)
- HiDPI (High Dots Per Inch) Display
- Install NVIDIA GPU Drivers
- Kali Linux XFCE FAQ
- Kali Linux Forensics Mode
- Kali Linux Metapackages
- Configuring Yubikeys for SSH Authentication
- Packages That Behave Differently With Non-root
- Setting up RDP with Xfce
- Kali In The Browser (Guacamole)
- Kali In The Browser (noVNC)
- All about sudo
- Updating Kali
- Kali's Domains
- Kali Development
- Building Custom Kali ISOs
- Generate an Updated Kali ISO
- Live Build a Custom Kali ISO
- Public Packaging
- Setting Up A System For Packaging
- ARM Cross-Compilation
- Custom Beaglebone Black Image
- Custom Chromebook Image
- Custom CuBox Image
- Custom EfikaMX Image
- Custom MK/SS808 Image
- Custom ODROID X2 U2 Image
- Custom Raspberry Pi Image
- Preparing a Kali Linux ARM chroot
- Rebuilding a Source Package
- Recompiling the Kali Linux Kernel
- Contributing run-time tests with autopkgtest
USB boot in a VM
A few years ago we released a blog post on VMware Fusion Kali USB Boot. This can come in handy if a USB is not working how it should, as it can reduce time from needing to reboot or transfer it to another machine. Since then there have been some updates to VMware Fusion that make this process a bit easier.
As a review, we will be creating a VM that has no hard drive attached and will boot the USB off of EFI.
Create a new custom VM
Be sure to select “Linux” and the latest Debian 64-bit version
Select “UEFI” as the boot option.
Create a new virtual disk (This will be removed later)
Click “Customize Settings”
Give it a name you will remember
In settings, click Processor and Memory. Ensure at least 2048MB memory is allocated, and at least 2 cores.
Next, in “Display”, check “Accelerate 3D Graphics”. This is an optional option, however it improves the performance. Optionally, check “Use full resolution for Retina display”.
Now we can get into the USB section and ensure everything will work like a real system. In “USB Devices” ensure that “USB Compatibility” is set to “USB 3.0” if you have a compatible setup. If you are using USB-C, ensure that you have USB 3.0 selected. The “Plug In Action” should be set to “Connect to Linux”.
To remove the hard disk, go to “Disks” and then expand the “Advanced options” and click “Remove Hard Disk”. You can send it to the trash.
Now we can power on the VM, and it should boot to Kali.
Troubleshooting USB Connections
If you run into problems, you have a few options. First, power off your VM. Go to “Settings” -> “USB Devices” and leave this settings screen up next to your powered-off VM. (You can also expand your toolbar and look at the USB icon). Now, power on the VM. Immediately, you should see the USB Settings screen update with a check next to your USB device:
If you don’t get a check mark, this means that your Mac has grabbed the USB drive. Power off your VM, eject the drive from the Mac, and power on the VM again with the USB settings screen up. You should see the check mark and get the Kali boot screen.
When booting with EFI, your boot screen should look like this:
This indicates that EFI is enabled. If it’s not, triple-check that you entered the firmware line correctly in the “Advanced” section of settings. Note that in some cases, this EFI Network check may hang. Simply pressing ESC within the VM nudges the process along.
To access the Boot Manager, you can click on “Virtual Machine” on the Apple window bar at the top, and then click “Power on to firmware”.
From here, you can select “EFI Internal Shell” to get into the shell. If you get something like this, missing an fs0 map, then EFI doesn’t see your USB drive. If this is the case, power off the virtual machine, unplug the USB, start the VM, and immediately after pressing start, insert the drive, looking for the checkmark in settings.
If everything goes well, you’re booted into Kali. Otherwise, you can get to an EFI shell with ESC, “EFI Internal Shell”. A “happy” EFI shell looks like this:
Note the fs0 map. Next, you can enter ‘fs0:’ and ‘ls’ to look around.
You can enter ‘cd efi\boot’ (notice the backslash, not a forward slash!) and boot the device manually with ‘bootx64.efi’
This should give you a happy EFI boot:
Note that on some installations, the shutdown, followed by removing the drive, powering on the VM and inserting the drive might be required. This likely has much to do with the Mac grabbing the USB drive, or half-grabbing it (without mounting).
If neither of the above worked to fix you booting directly into Kali, but you can boot as seen by troubleshooting EFI, you can always use the boot manager to boot into Kali. Access the Boot Manager by clicking on “Virtual Machine” on the Apple window bar at the top, and then click “Power on to firmware”. Select the option “EFI USB Device” and hit enter.
This should give you a happy EFI boot: