If you’ve never installed kismet, there are a few packages it can benefit from that you should get for a more full-featured installation. How did I figure this out? Well, I knew from the output of ./configure that PCRE support was missing. So I used the hand apt-cache search pcre to search for all packages with that in the name. I thought it might be libpcre3 and tried it, but it didn’t work. So naturally I tried the -dev version instead (since we are building from source here)
sudo apt-get install libpcre3-dev
^^ this allows you to use regular expressions on the SSID names for filtering. Honestly, I’ve never done it but it could be useful.
sudo apt-get install libnl-dev
this is the solution to this problem after ./configure
*** WARNING *** LibNL/nl80211 support was not found. Kismet uses libnl to control mac80211 based wireless interfaces, which comprise the vast majority of interfaces on modern Linux systems. Unless you plan to use only older drivers, you need libnl. You need both the libnl libraries and development headers (called libnl-dev or libnl-devel by most distributions).
Well, the first package wasn’t enough to satisfy configure so, let’s examine the output more closely to see what exactly it is looking for: checking for libnl30… yes checking for libnlgenl30… no checking for libnl20… no checking for libnl1… no I tried the libnl-genl-3-200 package, but what do you know, it’s the -dev version that it wants, just like before.
sudo apt-get install libnl-genl-3-dev
A few others that you might need for general source compilation are:
sudo apt-get install build-essential libncurses-dev libpcap-dev
Now we don’t have configure bitching at us, it’s time to make dep.
sudo make dep This checks that all the dependencies are in place before it attempts the costly build. sudo make This turns hard written code into a binary file that can be executed, but it just leaves that binary in the directory. To fully install it we want to make, then either make install or, preferably make suidinstall. Be sure to run make first or these won’t work. I know some software will let you just do make install but not here.
sudo make suidinstall
Why the suidinstall? Short answer: It’s safer. In theory, there could be a bug in kismet (and this is a new version, so there’s sure to be some) where someone could broadcast a particular packet with malformed data and ride a buffer overflow right up your fun-hole into ROOT. Yes, someone could generate a wifi packet that would crash kismet and give root access (which is what you are running with if you don;t use suidinstall) to whoever wrote the packet. suidinstall is a tad more complicated, but it only takes about 3 more seconds and a reboot and then you’ll never notice it again. Basically, you need to add yourself to the “kismet” user group in order to be able to run kismet. Unfortunately, this requires you to log out and log back in again to work.
To add yourself to the group, I’m sure there is a very simple command line command using chgrp or something, but I puss out and wind up using the GUI tool to do it. This can be sorta confusing the first time. Go to your control panel and find a “users and groups” option. Open that up and you’ll see users settings and “manage groups”. click manage groups and then find the “kismet” group. DO NOT “ADD”, click “properties”. Then find yourself in the list of members and check the box next to your name. Boom. You are now added. However, you won’t be able to run kismet until you log back in because apparently these groups are only assigned at login. So sadly, reboot that Ubuntu machine that should never need to be rebooted (in theory) and come back here so we can get on with building the plugins. Or just continue on and reboot at the end.
Update: dragorn, the author of kismet saw this page and corrected me on how to properly install the plugins, so I’m removing what I had before. Here is the correct procedure for installing the plugins, either as a user install or system wide (the best way, but you can’t do it that way if you aren’t root)
< dragorn> ‘make install’ installs plugins to the system dirs
< dragorn> so it needs to run as root
< dragorn> userinstall installs them to the home dir of whatever user you run it as
sudo make plugins-install
or (as non-root)
18:40 < dragorn> make install plugins would… well, if you run it as root, would install kismet non-suid, then compile plugins as root
18:41 < dragorn> but plugins are only installed by plugins-install, restricted-plugins-install
18:41 < dragorn> or plugins-userinstall, restricted-plugins-userinstall
18:41 < dragorn> restricted being the ‘offensive’ ones like autowep and ptw
The bluetooth plugin needs a package first. I googled around and it turns out to be:
sudo apt-get install libbluetooth-dev
Without that you’ll get an error like this when you try to make install it:
packetsource_linuxbt.h:42:33: fatal error: bluetooth/bluetooth.h: No such file or directory
So now you should be set up to run kismet 2013! It’s great as usual, but is not the much anticipated phy-neutral version dragorn has been working on forever. That version will sniff anything you throw at it, as long as you have a capable adapter. Zigbee, Bluetooth, DECT, WiSpy frequency analyzer, Wifi, etc. You can download and try it out. The interface is different than the kismet you are used to and takes some getting used to.