Kismet Wireless

Kismet Forums


Posted by:dragorn
Subject:Development of Apps with OS X Airport Extreme in Monitor mode
Date:15:43:41 19/01/2011

> Is it possible to use the drone <-> server <-> client configuration to create an application that uses the Kismet protocol to achieve mostly the same objective? (accessing the raw packets going on the wireless channel, in monitor mode?

Yeah, you could tap the drone protocol and get raw packets. The drone logic captures a packet, decapsulates it from whatever the link-layer encoding was, and recapsulates it as a drone-stream packet. There's also some metadata packets sent which include info on the capture sources, and there's a command packet which lets you control hopping, etc, on the drone. The best documentation is honestly just the source - packetsource_drone shows all the decap and command channels.

It wasn't ENTIRELY written with the idea that external programs would want to tap into it, but if you use any modern newcore based code (anything 2009+, but you really want to go right to the latest) then the drone protocol is designed to be pretty forward-compatible.

It's basically similar to PPI - it's a bunch of structs, started with a bitfield indicating what fields are present in the struct (fixed order, so it's there, or it isn't), and the total size. You'd parse whatever fields you can understand, and skip to the next block when you don't understand them anymore.

if you drop me an email so I have a direct way to contact you, I'll try to keep you updated if I plan to change anything significant in the protocol. The only change i can think of on the horizon is making sure it all works with non-dot11 phys like bluetooth - it may already but I don't recall actually testing it.
I'll probably also change the GPS code to use the PPI GPS encodings which are more inter-platform, but I'll make new GPS fields for them so it won't change the fundamental protocol any.

If you just want to get at the statistics, you can talk to kismet_server directly and get those via the network client (there's some simple ruby example code in ruby/ in the source). The server can also present a drone interface if you want both.

Reply to this message