courses

VM Setup on macOS without paying for virtualization software

Requirements

You will need at least 40GB or so of free space on your hard drive for this class. We won’t likely use it all, but it needs to be there.

Common tools

Setting up a VM on macOS is relatively straightforward. While you could spend lots of money to get a commercial hypervisor like Parallels Desktop or VMware Fusion, that’s…ridiculous. Sure, they can do some fancy stuff, but we are sticking with open source solutions! Plus, they cost lots of money, and that’s just wrong.

So, what can we use? Well, there’s the option of VirtualBox if you’re on an Intel Mac. But a) that requires you are on an Intel Mac, b) that requires you interact with Oracle, and c) it has been nothing but trouble in my past classes. So, don’t use it. Instead, we’ll use the Universal Turing Machine (UTM) software. It’s free, it’s open source, and it’s pretty easy to use. It’s also a Universal app, so it runs on both Intel and Apple Silicon Macs. More importantly, it provides an easy-to-use wrapper around the QEMU hypervisor, which is what we’ll be using to run our VMs.

Alternatively, if you’re a brew user, you can use

$ brew install --cask utm

to get UTM installed. If you’re really feeling like you want to do things “The Linux Way”, you can install libvirt and virt-manager via brew, and use that to manage your VMs. I’m not going to cover that here, but it’s an option.

Or, you can go full masochist and use qemu directly. I’m not going to cover that here, either. And if you think it makes sense, why are you here? Go away. Or better yet, talk to me about becoming a TA.

VM Installation, Step by Step

  1. Download your image:

    #for ARM64 Macs
    ❯ curl -LO https://cdimage.kali.org/kali-2025.3/kali-linux-2025.3-installer-arm64.iso 
    ❯ #for Intel Macs
    ❯ curl -LO https://cdimage.kali.org/kali-2025.3/kali-linux-2025.3-installer-amd64.iso
    
  2. Checksum your image:

    #for ARM64 Macssha512sum kali-linux-2025.3-installer-arm64.iso
    999842205dd59c09bf0cf03ead31572d43f31a8b84da3d0b93960b3b7573d982bd0596d32b2792db96733f0e2eba33cd0a18e14733c79c8e7ff160316e6dd770 kali-linux-2025.3-installer-arm64.iso
    ❯ #for Intel Macssha512sum kali-linux-2025.3-installer-amd64.iso
    fa31c6068adf67ec8fc995883cfa85e9ddbc5cfc754f75f8fb815665e2988776cb72a40fe4c0fa464250caac715dc10738fe972bae8a3c293a1d26b491abc84d kali-linux-2025.3-installer-amd64.iso
    

In the instructions below, ignore the mentions of freebsd. I simply don’t have a system handy with which to take new screenshots. The process is the same, regardless.

  1. Create a new VM in Hyper-V by selection “New” and “Virtual Machine” from the right side of the Hyper-V Manager window.

    new VM dialog

  2. We want to virtualize, regardless of which underlying architecture we are using.

    virtualize_not_emulate

  3. We are Linux, so select it:

    linux

  4. I would suggest you give your VM at least 4GB of memory, since it’s going to be the primary external interface to your work environment for this class. As for the cores, leaving it at default is fine, unless you want to limit it to a specific number of cores (at least 2!). Click continue.

  5. Browse to wherever you downloaded the image, and select the ISO that you downloaded. Click continue.

  6. For storage, 64GB should be plenty. We can resize later as needed. Click continue.

  7. If you are on an M series Mac, before booting the VM, we need to make a change. First, select the VM in the list, and then select “Edit” from the right side of the window. Scroll down and Select “New” under devices, and then select “Serial Port”.

    edit

  8. When the VM boots, you’ll select “Install”. It will open on the Serial window. Follow the prompts to install Kali. The defaults are fine. Once it’s done, you can delete the serial port, and the display will work fine.