03. Choose a setup pattern 🧭¶
The go-to for pentesting is Kali Linux. We'll treat running it in a VM as the baseline. That said, standing up a Kali VM takes some effort up front, so we also provide a quick path to try things out.
The three patterns¶
| Pattern | Setup | Where it fits |
|---|---|---|
| A. Kali VM (the standard) ⭐ | Run real Kali in a UTM VM | The royal road of pentesting. Every tool is already included |
| B. Mac native (quick) | Install nmap/Metasploit directly on the Mac; the target runs in Docker | When you just want to get something running and get a feel for it |
| C. Attacker in a container too | Put the attacker in Docker as well, on the same network as the target | When you want the reverse shell to work reliably |
💡 If you want to learn seriously, A (Kali VM) is the standard. But on Apple Silicon there are plenty of snags during setup, so if you "just want to get hands-on first," one option is to start with B (Mac native) and move to A once you're comfortable.
A. Run Kali Linux in a VM (the standard)¶
Stand up a Kali VM with UTM (virtualization software for the Mac). Kali's strength is that nmap, Metasploit, and the other tools are all included from the start.
On Apple Silicon there are a lot of snag points — black screens, import errors, and the like — so we've collected a path that avoids the stumbles in Appendix B. Run a Kali VM in UTM.
⚠️ Kali is "an attack OS with every tool built in." Always use it only against your own practice targets.
B. Mac native (a quick try)¶
Without waiting to build a Kali VM, you can install the tools directly on your Mac and start right away. There's a script that installs everything at once.
If you'd rather install manually, see 04. Get the tools onto your Mac.
C. Put the attacker in a container too¶
On macOS Docker there's a pitfall where "the reverse shell from the target container won't come back to the Mac host." You can avoid it by putting the attacker in a container too, on the same network as the target. → For the steps and the reasoning, see Appendix D. The reverse shell won't come back.
Have AI help with setup¶
For each pattern's setup, you can also paste a prompt to AI and have it help. A collection of copy-paste-ready prompts → Appendix C. AI prompt collection.
⚠️ Even when you ask AI to handle setup, check the commands it runs yourself.