Skip to content

LyndLabs/Kismet-ESP32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Kismet ESP32 Scanner 📡

Send Bluetooth (BLE) scans from the ESP32 to Kismet!

Installation

  1. Flash your ESP32
  2. Download the binary from this repository.

Description

This app parses JSON streams over serial, and uses the Kismet Scan Report API to send Bluetooth recon to the web interface!

JSON Fields:

  • ID: ESP32's MAC Address
  • FW: Firmware version from config.yaml
  • TYPE: BT, BLE, iBeacon, Eddystone
  • UUID: Unique BT Address, if applicable
  • MFR: Manufacturer, if found
  • NAME: Bluetooth Device Name
  • MAC: MAC Address
  • RSSI: Signal Strength
  • TX: Reported TX power at 1 Meter, if broadcasted.

Usage

For the app, two env variables are needed:

  • KISMETURL: Location of the kismet server, along with the port.
  • KISMETAPIKEY: API key with scanreport permissions.

A third optional log env variable can also be specified:

  • ESP32_SOURCE_LOG: specifies how much logging should be output to terminal. Choice of trace || debug || info || warn || error || off. If env is not specified then this defaults to error.
Example:
# http[s]://[url]:[port]/
$ export KISMETURL=http://localhost:2501/
# [32 char key with scanreport perms]
$ export KISMETAPIKEY=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

# trace will incur log "vomit", debug being most useful to a programmer, info might be useful to the user,
# warn, error and off being self-explanatory,
$ export ESP32_SOURCE_LOG=trace 
$ kismet_esp32_source

# or

$ KISMETURL='http://localhost:2501/' KISMETAPIKEY='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' kismet_esp32_source

Notes

  • Binary depends on libudev on linux hosts, which the majority of linux distributions have installed by default. Alpine has issues. This will be remidiated in a future release.