User Guide

Synapse-WiGLE User Guide

Synapse-WiGLE adds new Storm commands to allow you to query the WiGLE API using your existing API credentials.

Getting Started

Check with your Admin to enable permissions and find out if you need personal API credentials.

Examples

Setting your personal API credentials

To set-up personal use API credentials:

> wigle.setup.apikey --self myapiname myapitoken
Setting WiGLE API credentials for the current user.

Search for wifi networks near a lat/long

By default, when searching for wifi networks using :latlong property of a geo:place node, the wigle.network.search command will use the :radius property from the node to calculate the bounding box for the search:

> [ geo:place=* :latlong=(39.851, -104.675) :radius=1km ] | wigle.network.search --yield --size 3
inet:wifi:ap=('Bitcoin IoT', '00:01:9f:21:03:58')
        .created = 2024/05/08 16:35:03.791
        .seen = ('2019/02/19 15:00:00.000', '2019/02/27 14:00:00.000')
        :bssid = 00:01:9f:21:03:58
        :channel = 1
        :encryption = wpa2
        :latlong = 39.85383224,-104.67593384
        :ssid = Bitcoin IoT
inet:wifi:ap=('franks hot spot', '00:03:7f:12:bb:16')
        .created = 2024/05/08 16:35:03.867
        .seen = ('2023/05/04 10:00:00.000', '2023/05/04 10:00:00.001')
        :bssid = 00:03:7f:12:bb:16
        :channel = 149
        :encryption = wpa2
        :latlong = 39.84906769,-104.67415619
        :ssid = franks hot spot
inet:wifi:ap=('FDU2000X-0015-DEN', '00:04:f3:30:d1:5b')
        .created = 2024/05/08 16:35:03.905
        .seen = ('2023/01/13 20:00:00.000', '2023/07/07 18:00:00.000')
        :bssid = 00:04:f3:30:d1:5b
        :channel = 6
        :encryption = wpa2
        :latlong = 39.85902023,-104.6753006
        :ssid = FDU2000X-0015-DEN

The --radius argument can be specified to provide a radius for geo:place nodes which do not have a :radius property value, or to override the current :radius value on nodes which do have it set.

> [ geo:place=* :latlong=(39.851, -104.675) ] | wigle.network.search --radius 1km --yield --size 3
inet:wifi:ap=('Bitcoin IoT', '00:01:9f:21:03:58')
        .created = 2024/05/08 16:35:03.791
        .seen = ('2019/02/19 15:00:00.000', '2019/02/27 14:00:00.000')
        :bssid = 00:01:9f:21:03:58
        :channel = 1
        :encryption = wpa2
        :latlong = 39.85383224,-104.67593384
        :ssid = Bitcoin IoT
inet:wifi:ap=('franks hot spot', '00:03:7f:12:bb:16')
        .created = 2024/05/08 16:35:03.867
        .seen = ('2023/05/04 10:00:00.000', '2023/05/04 10:00:00.001')
        :bssid = 00:03:7f:12:bb:16
        :channel = 149
        :encryption = wpa2
        :latlong = 39.84906769,-104.67415619
        :ssid = franks hot spot
inet:wifi:ap=('FDU2000X-0015-DEN', '00:04:f3:30:d1:5b')
        .created = 2024/05/08 16:35:03.905
        .seen = ('2023/01/13 20:00:00.000', '2023/07/07 18:00:00.000')
        :bssid = 00:04:f3:30:d1:5b
        :channel = 6
        :encryption = wpa2
        :latlong = 39.85902023,-104.6753006
        :ssid = FDU2000X-0015-DEN

Search for wifi networks with a specific bssid

> [ inet:wifi:ap=('cool-wifi', '00:00:00:00:C4:27') ] | wigle.network.search --yield

Use of meta:source nodes

Synapse-WiGLE uses a meta:source node and -(seen)> light weight edges to track nodes observed from the WiGLE API.

> meta:source=68d546f5b3b26deb3f32d18733e5f522
meta:source=68d546f5b3b26deb3f32d18733e5f522
        .created = 2024/05/08 16:35:03.742
        :name = wigle api

Storm can be used to filter nodes to include/exclude nodes which have been observed by Synapse-WiGLE. The following example shows how to filter the results of a query to include only results observed by Synapse-WiGLE:

> #cool.tag.lift +{ <(seen)- meta:source=68d546f5b3b26deb3f32d18733e5f522 }