1.) Raspberry Pi 3b+
2.) Alfa AWUS036ACH
3.) etekcity SI-7200nd
4.) GPS vk-162
5.) ROMOSS Solo 5 10,000 mAh battery pack ( PH50-203)
Download the latest Kali for Raspberry pi (currently 2019.3). Then burn it to your SD card using Etcher.
Connect to your pi using the ethernet and do your normal new Kali things, change your password, add a new user if you want to.
Personally, since I’m not using the GUI, I set my kali to boot into command line:
systemctl set-default multi-user.target
Now would be a good time to set up SSH only using keys.
Do some more kali stuff like update and upgrade and pray it doesn’t break.
Ensure that swapping is enabled.
Install GPS and enable GPS daemon
apt install gpsd gpsd-clients systemctl enable gpsd
Install WiFi drivers
apt install realtek-rtl88xxau-dkms
Install Kismet from their repo
wget -O - https://www.kismetwireless.net/repos/kismet-release.gpg.key | sudo apt-key add - echo 'deb https://www.kismetwireless.net/repos/apt/release/kali kali main' | sudo tee /etc/apt/sources.list.d/kismet.list apt update apt install kismet
When installing kismet be sure to add your users to the kismet group. FYI, running it as root will cause an exit code of 1 when shutting down the server (keep that in mind if you’re scripting things).
gps=gpsd:host=localhost,port=2947 source=wlan1:name=adapter24ghzbuiltin:type=linuxwifi,channels="8,9,10,11,12,13" source=wlan2:name=adapterdualband:type=linuxwifi,channels="1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,132,136,140,144,149,153,157,161" source=wlan3:name=adapter24ghzetek:type=linuxwifi,channels="1,2,3,4,5,6,7" track_device_seenby_views=false track_device_phy_views=false manuf_lookup=false track_device_rrds=false kis_log_packets=false kis_log_messages=false
Currently I’m using two 2.4 GHz adapters, the built in and the etekcity. I’m splitting the channels between the two. In the future I plan on adding a second or third 5 GHz adapter. Then I’ll switch the built in adapter to being an access point. Then I’ll be able to connect to the Raspberry Pi’s wifi and control the Pi from my phone.
At this point your should probably reboot the Pi. Ensure that the gpsd did start on boot.
ps -aux | grep gpsd
Test your GPS connection, you should see some GPS data show up.
At this point I did some really lazy ways to automate things. I’ll get around to fine tuning it, but I wanted to get my Wigle.net score up, so getting the WarPi into the field was priority one.
Restart Kismet every 10 minutes using a cron jon.
crontab -e */10 * * * * /root/restartkismet.sh
killall kismet sleep 2 sleep 10 service networking restart sleep 10 && kismet
Convert kismet files to wigle CSVs
#!/bin/bash FILES=/root/Kismet*.kismet for f in $FILES do echo $f kismetdb_to_wiglecsv --in $f --out $f-.csv done
Next step is to set a cron job to convert the CSVs and delete the kismet files. Until then I’m just manually cleaning it up by running the conversion shell script and then deleting:
And I’ll start uploading the CSVs automatically. But who uses APIs?