Skip to content

Kismet

Kismet is a wireless network and device detector, sniffer, wardriving tool, and WIDS (wireless intrusion detection) framework.

Kismet works with Wi-Fi and Bluetooth interfaces, SDR (software-defined radio) hardware like the RTLSDR, and other specialized capture hardware.

Kismet operates on Linux, macOS, and to a degree on Windows 10 under the WSL framework. On Linux, it supports most Wi-Fi cards, Bluetooth interfaces, and other hardware devices. On macOS, it works with built-in Wi-Fi interfaces, while on Windows 10, it supports remote captures.

Kismet operates passively (except for specific features like Bluetooth scanning). It is not typically an attack tool but focuses on collecting and analyzing wireless data. Logs generated by Kismet, such as PCAP files and handshakes, can be used with tools like Hashcat or Aircrack-NG for further analysis.

See the Kali Forum about Kismet

1. Remove Kismet if installed
sudo apt autoremove kismet
1. Install dependencies
sudo apt install -y build-essential git libwebsockets-dev pkg-config zlib1g-dev \
libnl-3-dev libnl-genl-3-dev libcap-dev libpcap-dev libnm-dev libdw-dev \
libsqlite3-dev libprotobuf-dev libprotobuf-c-dev protobuf-compiler protobuf-c-compiler \
libsensors4-dev libusb-1.0-0-dev python3 python3-setuptools python3-protobuf \
python3-requests python3-numpy python3-serial python3-usb python3-dev python3-websockets \
librtlsdr0 libubertooth-dev libbtbb-dev gpsd gpsd-clients
1. Clone and build Kismet
git clone https://www.kismetwireless.net/git/kismet.git
cd kismet
./configure
make -j$(nproc)
1. Install Xcode (if not installed)
xcode-select -p 1>/dev/null || xcode-select --install
1. Install Homebrew and update
which -s brew || ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
1. Install dependencies
brew install git pkg-config python3 libpcap protobuf protobuf-c pcre librtlsdr libbtbb \
ubertooth libusb openssl libwebsockets gpsd
1. Clone and build Kismet
git clone https://www.kismetwireless.net/git/kismet.git
cd kismet
LDFLAGS=-L$(brew --prefix)/lib CPPFLAGS="-I$(brew --prefix)/include -I$(brew --prefix openssl)/include" ./configure
make -j$(nproc)
sudo usermod -aG kismet $USER

Network Interface Card (NIC) Configuration

Section titled “Network Interface Card (NIC) Configuration”
1. List available wireless interfaces
iwconfig
1. Edit Kismet configuration
cd kismet
nano kismet.conf
gps=true
gpsd=true
gpsd-host=localhost
gpsd-port=2947
ncsource=wlan0
logtypes=pcapdump,netxml
logtemplate=%n-%d-%i.%l
web=true
webport=2501
remote=true
remotesource=wlan0
plugins=alert_log,db-log,db-sqlite,db-geoip
alerts=alert_log,alert_syslog,alert_screens,alert_webhook
1. Run Kismet
./kismet
1. Common options
-c <config file> # Specify a config file
-n # Don't start the UI
-f <log file> # Log to a file
-t <log type> # Log to a specific type
-l <log level> # Log at a specific level
-p <plugin> # Load a specific plugin
-u <user> # Run as a specific user
-w <work dir> # Specify a working directory
sudo apt install gpsd gpsd-clients
sudo systemctl start gpsd
brew install gpsd
gpsd -N -D 2 /dev/ttyUSB0
sudo usermod -aG kismet $USER
sudo dseditgroup -o edit -a $USER -t user kismet

How do I add an SDR as a data source in Kismet?

Section titled “How do I add an SDR as a data source in Kismet?”

Ensure SDR drivers are properly installed and add the appropriate SDR configuration to the Kismet data source settings.

Why is my GPS not providing accurate data to Kismet?

Section titled “Why is my GPS not providing accurate data to Kismet?”

Ensure your GPS device is correctly installed and has a clear line of sight to the sky. Use gpsd and tools like cgps to verify operation.

Yes. Configure Kismet to log data to disk, integrate GPS for location data, and use optimized wardriving settings.

How can I improve the capture range of my SDR?

Section titled “How can I improve the capture range of my SDR?”

Optimize SDR gain settings and use high-quality antennas for your frequency range.

Yes. Use compatible Bluetooth interfaces and configure them in Kismet as data sources.