Scanning mode: Bluetooth

The design of Bluetooth makes capturing packets very difficult, but performing active scans for discoverable Bluetooth and BTLE devices can still yeild results.

Scanning mode data sources

The scan report API is designed to be as simple as possible, and to automate as much of the process as possible.

To assist with automation, scanning mode datasources are created dynamically by Kismet when scan reports are submitted; there is no need to define a specific datasource before sending a scanning mode report.

To create the scanning mode datasource, a scanning report must include:

  1. A datasource UUID. This UUID must be unique within Kismet, and consistent for all reports from this datasource. Scanning software should cache this UUID for consistent reporting between instances.

  2. A human-readable name. This wil be assigned as the name of the datasource, and will be updated automatically if the name changes in subsequent reports.

Cache and burst mode reporting

Scanning mode assumes that the device doing scanning may not be able to maintain a constant connection to the Kismet server.

Reports can be cached in sent in groups using the report endpoint; each report contains a timestamp, GPS location, and signal information. Multiple reports for the same AP reflecting information over time can be sent in a single connection.

Bluetooth scanning report

DESC

Submit a scanning report.

A scanning report consists of a datasource name and UUID, and a list of report objects.

ROLES
admin scanreport
ADDED
API added 2020-07
URI
/phy/phybluetooth/scan/scan_report.cmd
METHODS
POST
JSON
PARAMETERS

This endpoint takes additional parameters by using a `POST` request and supplying a JSON document or json form variable.

You can find more information about API parameters here.

reports list OPTIONAL

List of report objects

source_name string OPTIONAL

Source name

source_uuid string OPTIONAL

Source UUID

API

Each report object should contain:

timestamp number OPTIONAL

Unix timestamp with second precision.

If no timestmap is provided, the time the report is received is used.

Due to lack of high-precision packet data in scanning mode, timestamps are second precision only.

btaddr string REQUIRED

Bluetooth device address

devicetype string OPTIONAL

Device type, if known

txpowerlevel number OPTIONAL

Advertised transmission power level

pathloss number OPTIONAL

Reported path loss

scan_data string OPTIONAL

Binary scan data, as hex string

service_data dictionary OPTIONAL

Dictionary of UUID to service scan data, as binary hex strings

signal number OPTIONAL

Signal level, in dBm

lat number OPTIONAL

GPS latitude of detection, in decimal degrees

lon number OPTIONAL

GPS longitude of detection, in decimal degrees

alt number OPTIONAL

GPS altitude of detection, in meters

spd number OPTIONAL

GPS speed of motion of sensor during detection, in kilometers/hour

tags object OPTIONAL

Object/Map of device tags which will be applied to the device created by this scan.

Tagged scans should be used with caution: Tags will be applied to the device and will override any existing tags, so care must be taken with tags that overlap those editable by the user interface.

Submitting a user name or description tag, for instance, may be valuable if the user can enter that data in the scanning app, but the user should be advised that they can’t also edit that user name in the normal Kismet UI.