Kali Linux on Raspberry Pi 1/2/3/Zero with 3.5″ or 2.8″ Touch Screen and touch optimized interface in a ready-to-go image

Sticky Finger’s Kali-Pi – The pocket size, finger friendly, lean mean hacking machine


(Refreshed 30/8/2017 with working Bluetooth, mana, RAS-AP, ntop, ArmyGuy255a‘s 9 button menu)


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 TFT screens.
  • Kali Linux Rolling edition with MSF meta package and all other essential tools
  • Re4son Kali-Pi Kernel 4.9 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.
  • Apache, Pure-FTP, SDR-Scanner, Screenshot Tool, ntop, darkstats, mana-toolkit, 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 Raspberry Pi 3 on-board Bluetooth


  • 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
  • Extend the file system if your card is > 8GB (See fdisk howto here)
  • Boot up your Pi and ssh into it with user root and password toor
  • Change passwords (defaut: root=toor, pi=raspberry, ftp/pi=raspberry, vnc/root=toortoor)
  • Set up the screen with the re4son-pi-tft-setup tool:
    cd /usr/local/src/re4son-kernel_4*
    mount /dev/mmcblk0p1 /boot
    ./re4son-pi-tft-setup -u    #(updates re4son-pi-tft-setup to the latest version)
    ./re4son-pi-tft-setup -h    #(lists all options - pick your screen from the list)
    ./re4son-pi-tft-setup -t <your screen> -d /home/pi      # Say "Y" when asked if you want the console to be displayed on the TFT screen
  • NOTE: If you have an Adafruit 3.5″ or a 4DSystems screen, please install the “old” kernel for now. For Adafruit 2.8″ please select “No” when asked to enable the “on/off button”.
  • Optional: enable “Automatic boot into Sticky Finger’s Touch Interface”:
    cd /usr/local/src/re4son-kernel_4*
    ./re4son-pi-tft-setup -b cli  # Boot into command line interface
    ./re4son-pi-tft-setup -a pi   # Enable auto-login for user "pi"
  • 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= 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
    export KPTIMEOUT=2          ## Minutes before screensaver kicks in, comment out for screensaver off
    ## 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: