= Only needs to be done once during initial setup
Ensure you're using the live rolling repo (not a snapshot) for latest packages:
sudo bash -c 'cat > /etc/apt/sources.list << EOF
# Kali Linux Rolling Repository - Always Latest
deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware
deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware
EOF'
Update package lists:
sudo apt update
Upgrade all packages to latest:
sudo apt full-upgrade -y
Note: This removes the kali-last-snapshot source from the live USB and uses the online rolling repo instead.
Enable automatic time sync:
sudo timedatectl set-ntp true
Set XFCE panel clock to 12-hour format:
xfconf-query -c xfce4-panel -p /plugins/plugin-19/digital-time-format -s "%I:%M %p"
Set your system timezone to Eastern Time:
sudo timedatectl set-timezone America/New_York
Install GPS tools if needed:
sudo apt install gpsd gpsd-tools gpsd-clients
Run text-based GPS monitor:
cgps
Or run GUI GPS monitor:
xgps
Wait for "3D FIX" and coordinates to appear. Go outside for better signal.
Edit Kismet config to enable GPS:
sudo nano /etc/kismet/kismet.conf
Find and uncomment this line:
gps=gpsd:host=localhost,port=2947
Save with Ctrl+O, Exit with Ctrl+X
Check current region:
iw reg get
Set to US for full channel access:
sudo iw reg set US
Check wireless interfaces:
iwconfig
Put WiFi adapter into monitor mode (replace wlan1 with your interface):
sudo airmon-ng start wlan1
Verify monitor mode is active:
iwconfig
Check Bluetooth adapters:
hciconfig
Bring up the ALFA BLE adapter (hci0):
sudo hciconfig hci0 up
Add your user to the kismet group so capture helpers can run properly:
sudo usermod -aG kismet kali
Note: You must log out and back in (or reboot) for this to take effect.
This prevents "IPC connection closed" errors when running Kismet.
Install RTL-SDR tools:
sudo apt install rtl-sdr rtl-433
Blacklist the DVB driver (prevents conflicts):
echo "blacklist dvb_usb_rtl28xxu" | sudo tee /etc/modprobe.d/blacklist-rtl.conf
Set unique serial numbers for each SDR dongle:
rtl_eeprom -d 0 -s 00000433 (Blog V4 - 433MHz IoT)rtl_eeprom -d 1 -s 00001090 (Nooelec - 1090MHz ADSB)
Unplug and replug dongles after setting serials.
Test RTL-SDR is working:
rtl_test
Add RTL-SDR sources to Kismet config:
sudo nano /etc/kismet/kismet.conf
Add these lines at the bottom:
source=rtl433-1:name=RTL_SDRsource=rtladsb-0:device=0,name=ADSB_SDR
Note: These use device indices. The kismet_site.conf (step 12) uses serial numbers instead for reliability.
Create a dedicated folder to organize all Kismet log files:
mkdir -p "/home/kali/Documents/KISMET LOGS"
This keeps all .kismet and .pcapng files in one place instead of scattered in the current directory.
Create/edit the Kismet site config:
sudo nano /etc/kismet/kismet_site.conf
Add these lines:
# Save logs to Documents folder log_prefix=/home/kali/Documents/KISMET LOGS/ # Enable both kismet database AND pcapng raw packet capture log_types=kismet,pcapng # Pre-configured sources source=wlan1mon source=hci0:type=linuxbluetooth,name=ALFA_BLE source=rtl433-00000433:name=RTL_SDR_433 # ADSB disabled due to bug in Kismet 2025.09.R1 # source=rtladsb-00001090:name=ADSB_SDR
Save with Ctrl+O, Exit with Ctrl+X
This configures:
Run Kismet with all sources:
sudo kismet -c wlan1mon -c hci0:type=linuxbluetooth -c rtl433-00000433
Or if sources are pre-configured in kismet_site.conf:
sudo kismet
Open browser to: http://localhost:2501
Login: kali / kali
Stop monitor mode and restore normal WiFi:
sudo airmon-ng stop wlan1mon
Restart NetworkManager if needed:
sudo systemctl restart NetworkManager
ADSB Capture Disabled: Kismet 2025.09.R1 has a bug in the native ADSB decoder - it receives data but doesn't decode aircraft. The rtladsb source is commented out until this is fixed.
To test ADSB manually: rtl_adsb (this works and shows aircraft)
Your RTL-SDR dongles have been assigned unique serial numbers:
Check devices: rtl_test
| WiFi | Access points, clients, SSIDs, signal strength, GPS location |
| Bluetooth | BLE devices, BR/EDR classic devices, advertisements |
| 433MHz IoT | Weather stations, TPMS tire sensors, garage doors, doorbells, smart home sensors |
| ADSB | (Disabled - bug) Aircraft positions, callsigns, altitude |
.kismet - SQLite database with all device metadata, decoded sensor data, GPS coordinates
.pcapng - Raw packet captures (for Wireshark analysis)
Location: /home/kali/Documents/KISMET LOGS/
After completing the one-time setup (Steps 5, 9, 10, 11), you can simply run:
sudo kismet
This works because sources are pre-defined in kismet_site.conf. Kismet loads config files in this order:
/etc/kismet/kismet.conf - Main config (includes other .conf files)/etc/kismet/kismet_site.conf - Overrides everything (your custom settings)The source= lines in kismet_site.conf tell Kismet which devices to capture from automatically:
source=wlan1mon # WiFi in monitor mode source=hci0:type=linuxbluetooth,name=ALFA_BLE # Bluetooth adapter source=rtl433-00000433:name=RTL_SDR_433 # 433MHz IoT (by serial)
Command line vs Config file:
sudo kismet -c wlan1mon -c hci0:type=linuxbluetooth - Specifies sources manually each timesudo kismet - Uses pre-configured sources from kismet_site.conf (easier!)Tip: Using serial numbers (like rtl433-00000433) instead of device indices (like rtl433-1) ensures the correct dongle is always used, even if USB enumeration order changes.