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-2026.1/kali-linux-2026.1-installer-arm64.iso
    ❯ #for Intel Macs
    ❯ curl -LO https://cdimage.kali.org/kali-2026.1/kali-linux-2026.1-installer-amd64.iso
    
  2. Checksum your image:

    #for ARM64 Macs
    ❯ shasum -a 256 kali-linux-2026.1-installer-arm64.iso
    c92c79d7267c93245962cf696c9da8105bf40855744513fbaaec41db17d307e1  kali-linux-2026.1-installer-arm64.iso
    ❯ #for Intel Macs
    ❯ shasum -a 256 kali-linux-2026.1-installer-amd64.iso
    271477ad6ea2676c7346576971b9acc2d32fabd9c2bbaf0e6302397626149306  kali-linux-2026.1-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.