Kali Linux on Raspberry Pi 1/2/3(+)/4/Zero(W) with touch optimized interface in a ready-to-go image
(Refreshed 03-June-2019 with full RasPi 4 support)

Sticky Finger’s Kali-Pi – The pocket size, finger friendly, lean mean hacking machine
Need practice targets? Checkout Sticky Finger’s DV-Pi


Sticky Finger’s Quick Start Guide:

Sticky Finger’s Kali-Pi image comes with the following features out of the box:

  • 2GB image ready to go with all common touch screens.
  • Kali Linux Rolling edition with MSF meta package and all other essential tools
  • Re4son Kali-Pi Kernel 4.14 with bluetooth, touch screen support and wifi injection patch
  • “re4son-pi-tft-setup” tool to set up all common touch screens, enable auto-logon, etc.
  • “kalipi-config” tool to set up the raspberry pi (improved raspi-config for kali)
  • Apache, Pure-FTP, SDR-Scanner, Screenshot Tool, ntop, darkstats, mana-toolkit,
    Kismet classic, Kismet development, Remote Access AP, Sticky Finger’s Kali-Pi Launcher
  • Boots into vanilla kali gui but comes with user “pi” pre-configured to launch
    the “Sticky Finger’s Kali-Pi Launcher” (touch screen interface) after login
  • Just run “re4son-pi-tft-setup” tool for your particular screen and you are up and running.
  • Out of the box support for on-board Bluetooth & wifi with nexmon patches


  • 8GB for Kali-Pi MSF – basic Kali MSF package (this image)
  • 16GB for Kali-Pi Full –  install kali-linux-full and OpenVAS (very tight)
  • 32GB  for Kali-Pi Complete – Install the above plus Snort and other goodies
  • Boot up your Pi and ssh into it with user root and password toor
  • Change passwords (default: root=toor, pi=raspberry, ftp/pi=raspberry, vnc/root=toortoor)
  • Set up the screen with the kalipi-tft-config tool:
  • Optional: setup wifi and enable “Automatic boot into Sticky Finger’s Touch Interface”:
    # Configure wifi
    # Configure boot into command line interface for user pi
    # Change passwords for users "pi" and "root"
    # Set location settings, etc.
  • Edit “/home/pi/Kali-Pi/menu” to define your screensize, enable/disable screensaver and PIN:
    ## Adjust these:
    export KPSCREENSIZE=2.8   ## Screensize in inch, Options= 5.0, 3.5, 2.8
    export KPLAYOUT=9         ## Number of buttons - Currently only 9 is supported
    export KPPIN=0            ## Set to "1" to enforce PIN authentication, run ./set-pin to change PIN from "1337"
    #export KPTIMEOUT=2       ## Minutes before screensaver kicks in, comment out for screensaver off
    export KISMETVER=1        ## Set to "2" to launch kismet github version, "1" to use classic stable version
    export TFT=1              ## Set to "0": no TFT screen,
                              ##        "1": TFT touchscreen,
                              ##        "2": TFT screen with external mouse,
                              ##        "3": resistive HDMI touchscreen, or
                              ##        "4": Raspberry Pi 7" Touchscreen 
    ## End adjustments

Reboot and enjoy 🙂

For updates

Head over to the forums for more information about the menus and tools.

To pair Bluetooth devices, just start the bluetooth services:

systemctl enable bluetooth
service bluetooth start
systemctl enable hciuart
systemctl start hciuart.service

You are now ready to pair your devices, just like this:


[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
Discovery started
[bluetooth]# pair 00:1F:xx:xx:xx:xx
Attempting to pair with 00:1F:xx:xx:xx:xx
Pairing successful
[bluetooth]# trust 00:1F:xx:xx:xx:xx
[CHG] Device 00:1F:xx:xx:xx:xx Trusted: yes
[bluetooth]# connect 00:1F:xx:xx:xx:xx
Attempting to connect to 00:1F:xx:xx:xx:xx
Connection successful

Voila – there it is, Bluetooth device connected.

More details can be found here:

TIP: How to mount the img file in linux

If you are curious to see what’s in the image file before you write it to the SD card, here is how you can mount it in linux:

  1. Check the file system table with fdisk:
     fdisk -l StickyFingers-Kali-Pi-Small-160827.img
  2. Create a mount point for each image
    mkdir img1 img2
  3. Mount each image
    mount StickyFingers-Kali-Pi-Small-160827.img -o loop,offset=$(( 512 * 1)) img1/
    mount StickyFingers-Kali-Pi-Small-160827.img -o loop,offset=$(( 512 * 125001)) img2/

For questions or comments please join the discussion in our forum:

For updates