The Kali Linux penetration testing distribution has been available for Raspberry Pi for quite some time. However, it can be quite a chore to set it up, especially with a touchscreen.
Recently I purchased the official Raspberry Pi 7″ touchscreen and was astonished when I put the SD card in and Kali booted up right to the desktop ready for me to log in with the touchscreen not only displaying but actually fully functional with touch enabled!
Read on to see the setup and some basic instructions to do it yourself!
The Equipment
The Raspberry Pi 4 is available in different memory configurations all the way up to 8 GB. It’s about the size of a credit card and uses an extremely low amount of power making it ideal for all sorts of projects and ideas!
Links: Amazon.com*, AliExpress*, Amazon.ca*, Amazon.com.au*, Amazon*.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*
The official 7″ TFT touchscreen for the Raspberry Pi by the official Raspberry Pi Foundation!
Links: Amazon.com*, AliExpress*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*
The Raspberry Pi 4 is available in different memory configurations all the way up to 8 GB. It’s about the size of a credit card and uses an extremely low amount of power making it ideal for all sorts of projects and ideas!
Links: Amazon.com*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*
The CanaKit 3.5A adapter has an extra half an amp (500 mA) of capacity to give some breathing room to your accessories. This is bigger than the official Pi power supply which provides 3.0A.
Links: Amazon.ca*, Amazon.com*, Amazon.com.au*, Amazon.sg*
The SanDisk Extreme A1-A2 SD card has the best scoring SD card on Pi Benchmarks for years and is second in popularity only to the SanDisk Ultra (often included in combo kits). The application class (A1) means random I/O speeds (very important when running an OS) have to meet a higher standard. There’s no benefit on the Pi for A2 right now so get whichever is cheaper/available.
Links: Amazon.com*, AliExpress*, Amazon.ca*, Amazon.com.au*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*
Assembly
The assembly is very easy. First you put your official 7″ touchscreen in the case with the provided screws. Now put your Pi in the slot in the back of the case that is perfectly formed to hold the board. Then you simply connect one ribbon cable from the touchscreen to the Pi. Finally insert your MicroSD and connect the power supply. That is it!
Imaging your SD card
Head to the official Kali Linux ARM Images Page and scroll down to the Raspberry Pi. You will download the image for the Raspberry Pi 2/3 (the first one). You will *not* choose the one that says Raspberry Pi w/ TFT. That is for other older TFTs and Gen1 boards like the original Model B.
Now write the image to your SD card. If you are doing this from Windows then I suggest to use Win32DiskImager . If you are not on Windows then I am going to assume you already know how to write an image to your SD card. Wait for the process to finish then safely eject the card after the write is complete.
Starting Kali Linux
Simply put the SD card in your Raspberry Pi. Assuming you have already assembled everything go ahead and power it up. It should take you straight to the Kali login. The default login information is username root and the password is toor. This should take you straight to the desktop and you should immediately be able to use the touchscreen. Go ahead and hit the Applications menu or open the web browser and test out to make sure everything is working.
Initial Steps
This is pretty much a no brainer but you should immediately change the default password. SSH is enabled by default so you are extremely vulnerable to anyone just SSH’ing in and taking control if you don’t do it. Open a command prompt and type passwd and change it.
The second step is to regenerate your SSH keys. All these images ship with the same default SSH keys which makes your SSH traffic vulnerable to sniffing quite easily. This is easily done by typing:
dpkg-reconfigure openssh-server
The third step is to expand the image to use all of your SD cards space just like you would with Raspbian. Unfortunately we do not have the raspi-config tool to do it for us on Kali. Thankfully we can just use GParted which is very easy. Type in a console window:
apt-get install gparted
Now run gparted from the applications menu or just right in the console again. The window will open. Resize your ext4 partition to use the rest of the unused space (just slide the end of the partition all the way into the rest of the unused space) and then apply your changes.
Now you should be utilizing the full space and will have plenty of space to upgrade to full Kali Linux!
And the fourth step is to update your distribution. From console window:
apt-get update
apt-get upgrade
Upgrade to Kali-Linux-Full (Optional)
The Raspberry Pi distribution is pretty minimal by default. This makes sense for a small ARM board but chances are you have at least a 16-32GB SD card and if you have resized your partition you have plenty of room to unleash the full power of Kali. The upgrade is simple. Type
apt-get install kali-linux-full
This will take a while and there are a few packages you’ll have to answer some basic questions for. However, once completed, you will have the full version of most powerful security and penetration testing distribution in the world with a touchscreen and a highly mobile platform for testing!
Final Build
Benchmarking / Testing Storage
If you want to verify your drive’s performance you may want to run my storage benchmark with:
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
If you search for the model of your drive on Pi Benchmarks you can compare your score with others and make sure the drive is performing correctly!
Other Resources
You may also want to check out my newer Kali Linux Raspberry Pi guide
If you have a Raspberry Pi Zero you may want to check out my Kali P4wnP1 Linux guide here
*Update 8/28/2021
It has been brought to my attention that the screen no longer seems to be plug and play in Kali. This is most likely due to many distros dropping support for resolutions lower than 800×600.
To do a “manual override” and add the correct screen dimensions add this to your /boot/config.txt file:
max_usb_current=1
hdmi_force_hotplug=1
config_hdmi_boost=7
hdmi_group=2
hdmi_mode=87
hdmi_drive=1
hdmi_cvt 800 480 60 6 0 0 0
The last line there will tell it to use the resolution 800 x 480 which will match the screen’s dimensions precisely.
Hi great guide.
However I have 7″ official screen but cannot get it functioning with Kali, no issues with default raspbian just Kali.
Any suggestion
Make sure you’re using the latest version of Kali and you should be good to go!
still doesnt work since the bottom of my screen is out of range. I will prob be dead if you wait three more years to reply
When you say the bottom of your screen is out of range do you actually see an “out of range” error or do you mean that the bottom part of your screen is cut off and you can only see part of it? Those are both two separate issues and I am going to assume you meant the latter but the fix will probably be the same for both incidentally.
Let’s try with a manual override by adding this to /boot/config.txt:
max_usb_current=1
hdmi_force_hotplug=1
config_hdmi_boost=7
hdmi_group=2
hdmi_mode=87
hdmi_drive=1
hdmi_cvt 800 480 60 6 0 0 0
The last line there will tell it to use the resolution 800 x 480 which will match the screen’s dimensions precisely. I’m surprised this would be necessary now when it wasn’t years ago when I wrote this but maybe there’s been recent breaking changes.
One possible culprit is that maybe Kali doesn’t support resolutions smaller than 800×600 natively anymore without the override as this has come up in other distros before so that would definitely be my educated guess.
Can you give that a try and report back?