So I spend as much, if not more time, in Kali in a VMWare Fusion VM than I do the actual MacOS when doing a portion of my job. So being a long time Mac user and also a long time (probably longer) Linux user I am accustomed to dual booting. I never decided to dual boot my MacBook Pro(s) over the years but Kali finally gave me a reason to leave the VM and go dual boot.
When you use Kali as a VM you will soon see that you require an external (and only certain ones work in promiscuous mode) Wifi. This is fine for most but can be annoying when dealing with the reaver and air-crack utils. I have been running in this setup for a year on this particular laptop. When you run as an install in dual boot you can use the internal wifi controller and you get the benefit of course of the full power of the hardware without limiting yourself by the sharing of the VM setup. Not to say their is anything wrong with running Kali as a VM and I still do so when doing a VM to VM attack versus victim scenario whereas Kali is attacking another running VM running an OS with a vulnerability.
With all that as a primer I am not going to copy paste all the stuff needed to make this happen on your MacBook Pro. Feel free to visit http://docs.kali.org/installation/kali-linux-dual-boot-on-mac-hardware for the instructions as they are pretty solid. What I will add here is the gotcha that will happen following these instructions and what I did to get around it.
When the instructions tell you to run rEFInd first and follow those steps, you are given a warning that Apple’s System Integrity Protection could be running and how to circumvent it. rEFInd is a boot manager that allows the Mac to load other options for the user to boot from. The authors of the software mention that if you get an error saying SIP is enabled you can reboot your Mac and enter the Recovery procedure but instead of doing a recovery simply open the terminal and then run rEFInd from there. This does work to the degree that it will allow you to install the boot manager and start the install process on the link above for Kali. What it did for me though was it started the install but immediately would shrink the screen to a small square in the upper left corner of the screen. Once I clicked the “Graphical Install” link the screen would go completely black and the install would stop.
So how do you get around this issue you may be asking by now. Simple really. I went back into the recovery mode boot and loaded the terminal and disabled SIP. Here is how that is done. From the terminal prompt in recovery mode type
csrutil disable. Now exit the terminal and reboot. This disables the SIP, you can enable it again if you wish by doing the procedure again and typing enable instead of disable. If you are curious what SIP does please visit this site https://support.apple.com/en-us/HT204899.
After disabling the SIP I was able to install Kali with no issues other than an error about brcmfmac43602-pcie.txt being needed that you can ignore. After the install I rebooted the machine and found that my rEFInd boot manager was gone and the machine no longer would let me boot to MacOS. Rebooting the machine and holding the Option key allowed me to see the Macintosh HD and boot from it. Once back in the MacOS I ran the rEFInd install again and this time it recognized the new Linux partition. After a quick reboot I was presented with a working boot manager that showed my options of choosing MacOS or Kali.
I hope this helps someone. I noticed this was a topic of discussion in the Kali install forums and users were having varying degrees of success with different methods. This worked for me and I hope you find it useful.