I've recently managed to successfully install Kali Linux 2.0, Windows 10, and MacOS X Yosemite to triple-boot on my 2013 MacBook Pro laptop, and it took quite a bit of research to figure out all the pieces to this puzzle, so I though I'd share it here with the community - maybe this is helpful for some:


You will need several tools to make this work, including a sufficiently large USB flash-drive (I used 1 256GB stick, but it can probably be done with a 32GB stick, too), a USB WiFi adapter (or a wired Ethernet cable, because the Mac's built-in WiFi is not recognized by default in Kali Linux), a Windows 10 license, another Windows PC (where you download the Windows 10 ISO image that you put on your USB flash-drive), and a few hours of spare time.

Also, you need to understand from the beginning that all three operating systems are capable of EFI-booting and can handle a GPT partition table. There are plenty of old articles around on the Internet that will talk about Hybrid MBRs and other complicated, outdated, and dangerous hacks. You can ignore all of them (mostly). Also, there are probably other sequences of how you can make this installation work, so don't think this is the only possible approach. But it is the one that worked for me and I haven't read any other articles about this anywhere yet, so feel free to follow this process (or not), as you see fit. This process may require some tweaks, if you are using a MacBook Pro model from a different year, or a MacBook Air.

Obvious disclaimer: this process has the potential of being highly destructive to all the data on your hard disk, so make a backup first! Even better, do this on an old laptop that you are happy to wipe completely.

So here we go:

  1. For historic reasons I started the process by making the MacBook Pro dual-boot into Windows 10 and MacOS X. That can be easily done using the BootCamp boot manager that Apple ships with MacOS X, and the benefit of this approach is that this will also install Apple's drivers for Windows 10 properly, so your MacBook will work better under Windows 10 as a result. I've detailed all the steps to getting the MacBook Pro to dual-boot Windows 10 in a previous blog post I wrote on my company's blog: http://blog.altova.com/how-to-upgrad...to-windows-10/
  2. The next step for me was to shrink the Windows 10 partition by about 64GB to make room for the Kali Linux 2.0 install. I did this from within Windows 10, by right-clicking on the Windows Start menu, selecting Disk Management, and then identifying and shrinking the Windows 10 partition, thereby creating some empty space. I also used Windows 10 to download the Kali 2.0 disk image and wrote it to the USB stick, as detailed here: http://docs.kali.org/downloading/kal...ve-usb-install
  3. Now here comes my departure from the official instructions... rather than following the sequence described here (http://docs.kali.org/installation/ka...n-mac-hardware) for dual-boot setup, I simply held down the option key while restarting the Mac, and used the Mac's built-in boot manager to boot from the Kali Linux 2.0 USB stick.
  4. I then proceeded to install Kali Linux 2.0 into the empty space on the hard disk, but - and this is important - do not install the GRUB boot loader into the MBR, as that would wipe out your MacOS X installation. I know this for a fact, because I believed the hybrid MBR approach that so many people talk about, and did install it, and thus managed to wipe my MacOS X installation. Not a huge problem, since I was able to just boot into the Mac Recovery partition and was easily able to reinstall MacOS X Yosemite that way (rememeber what I said about having backups before!!!). Just be very careful and triple-check every prompt during this install sequence.
  5. After that installation sequence, my GUID Partition table looked like this:
  6. Now comes the interesting part... I finally installed rEFInd as new boot manager: http://www.rodsbooks.com/refind/, and you can also follow those particular instructions from here: http://docs.kali.org/installation/ka...n-mac-hardware
  7. If you are lucky, you can now already book into all three operating systems from rEFInd. In my case, however, I found that Windows 10 would not boot. Instead it wanted me to run a repair from the source CD. It took a little while for me to understand that somewhere throughout the process I had inadvertently ended up with a Hybrid MBR after all, and that was what was giving Windows 10 heart palpitations. The fix was suggested to me by Roderick W. Smith, the author of rEFInd, and it was simply this: "Create a standard protective MBR on the disk. You can do this in gdisk by typing "x" to get to the experts' menu, typing "n" to create a new protective MBR, and then typing "w" to save the changes." - that was indeed all that was necessary, and Windows 10 happily boots again.
  8. The last tricky bit was to get Kali Linux 2.0 to work with the built-in Wi-Fi network card in my MacBook Pro. That card is using a Broadcom BCM4360 chipset, and was not supported out of the box. The only way I found to make this work is to first get another Internet connection working on your machine. This could be a wired Ethernet cable, or in my case I used a cheap USB WiFi device that I had previously used on my Raspberry Pi. Once you have Internet available in Kali, do the following steps:
  9. First we'll need to edit the list of apt sources to make sure you can install the drivers:
    sudo vi /etc/apt/sources.list
  10. Make sure your sources list has all the four lines that are documented here: http://docs.kali.org/general-use/kal...t-repositories
  11. In my case I was missing 2 lines in the sources that use http.kali.org - somehow these weren't installed by default. Also make sure you have the source repositories included as per the above URL.
  12. Once you've edited the file, enter the following to save and exit from vi:
  13. Now you have a long sequence of shell commands to go through to update everything, download and install the right driver, remove the incorrect drivers, and then you're all set:
  14. Code:
    modprobe -r b44 b43 b43legacy ssb brcmsmac
  15. Code:
    sudo apt-get update
  16. Code:
    sudo apt-get install linux-headers-$(uname -r)
  17. Code:
    sudo apt-get install broadcom-sta-dkms
  18. Code:
  19. Code:
    modprobe wl
  20. This was the correct driver for my 2013 MacBook Pro, your machine may require a different driver. See here for potential help on that topic: http://askubuntu.com/questions/55868...reless-drivers

As you can see, the process is a bit tricky, but in the end everything works beautifully and now I have a laptop that can boot into all three operating systems easily, so I can use the same machine for penetration testing and regular IT work.

Onward and upward, I'm signed up for the PWK course next, so I look forward to that challenge.