Kismet Developer Docs

The Kismet REST-like API

REST webserver endpoints

The Kismet REST-like API
Link

Exploring endpoints

Exploring the REST API should be simple, here's how to get the most out of the endpoints and self-documenting fields.
Link

Serialization types

Data can be serialized in several different ways, as traditional JSON, streaming pseudo-JSON for large queries, and as 'pretty' output for learning the API.
Link

Logins and sessions

Kismet uses a standard login and session cookie system which is easily supported by most HTTP libraries.
Link

Commands

Commands (actionable API calls) use a common method for defining arguments and options.
Link

Keys and MAC addresses

The differences between keys and macs, and optional MAC group matching.
Link

System status

Basic system status and health reporting.
Link

Devices

Device listing, sorting, and related interfaces.
Link

Devices

A common 'device view' API which is used by many components of Kismet to present different views of the device data while retaining identical API calls.
Link

Messages

Kismet exposes the console messages via the messagebus API.
Link

Alerts

The alerts API allows for fetching raised alerts, defining new custom alerts purely via the API interface, and raising alerts via the API interface, allowing external tools to tie into the Kismet alert subsystem.
Link

Channels

Observed channels and channel traffic API.
Link

Datasources

APIs for accessing defined, and potential, datasources, as well as controlling the behavior of datasources.
Link

GPS

Supported GPS devices, defined GPS devices, and current location information.
Link

Packet capture

Access the packet stream live with optional datasource and device filtering.
Link

Filters

Dynamically control filtering options to include or exclude devices and packets; the filtering API is used by multiple components in Kismet to define filters.
Link

Plugins

Information about running Kismet plugins.
Link

Streams

Logging and long-running live exports of data are classified as streams and can be observed and manipulated via the stream API.
Link

Logging

View and control logging attributes live.
Link

Points of interest

Points-of-interest can be tagged live, allowing for integration of physical buttons or other scripts to make a kismetdb entry for future analysis.
Link

KismetDB logs

Kismet stores all of its information in the kismetdb log; by exposing interfaces to the kismetdb log via the REST api, it becomes possible to access not only the current data and live packet streams, but previously captured packets and events.
Link

Phy80211 Wi-Fi

The 802.11 Wi-Fi subsystem defines a set of Wi-Fi specific APIs for accessing information about APs, related devices, and more.
Link

Wi-Fi fingerprinting

Live manipulation of the fingerprinting system, which will be used in the future for whitelisting, alerts, and complex Wi-Fi device tracking.
Link

Phy802.11 SSID Scan module

Still under development, the ssidscan module will allow for targetting devices by SSID and automatically searching for behavior.
Link

UAV / Drones

Kismet can track additional information about UAV/Drone/Quadcopter devices based on manufacturer, SSID, and packet contents.
Link

Kismet WebUI interfaces

Extending the webui - device data

The web UI has pluggable interfaces for extending the device details window.
Link

Extending the web ui

The web UI can be extended via Javascript and the UI pluggable interface, allowing for alterations and entirely new web UI systems.
Link

General Kismet interfaces

Kismetdb logs

The kismetdb log file is the new unified system for storing data, state, snapshots, devices, and all other info in Kismet.
Link

Creating Kismet plugins

Kismet plugins can change server behavior (via C++ plugins), interface behavior (via Javascript), or both
Link

Kismet C++ and C interfaces

Extending device and data tracking

How to extend the Kismet interface for parsing 802.11 IE tags.
Link

Creating Kismet datasources

How to extend Kismet by creating new datasources
Link

Datasource capframework library

The datasource captureframework C API
Link

Extending device and data tracking

Extending the Kismet C++ data classifier system.
Link

Helper tools

The Kismet external tool API defines how Kismet talks to capture and helper binaries.
Link

Creating tracked components

The tracked_component system is the Kismet internal architecture for introspectable and serializable data storage, and is used to define tracked structures like devices and protocol attributes.
Link