Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/GONZOsint/geowifi
Search WiFi geolocation data by BSSID and SSID on different public databases.
https://github.com/GONZOsint/geowifi
geolocation osint wifi
Last synced: 3 months ago
JSON representation
Search WiFi geolocation data by BSSID and SSID on different public databases.
- Host: GitHub
- URL: https://github.com/GONZOsint/geowifi
- Owner: GONZOsint
- Created: 2022-02-05T21:35:12.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-02T18:45:06.000Z (over 1 year ago)
- Last Synced: 2024-06-15T15:35:52.744Z (5 months ago)
- Topics: geolocation, osint, wifi
- Language: Python
- Homepage:
- Size: 55.7 KB
- Stars: 867
- Watchers: 16
- Forks: 86
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hacking-lists - GONZOsint/geowifi - Search WiFi geolocation data by BSSID and SSID on different public databases. (Python)
README
# π‘ππ | geowifi
Search WiFi geolocation data by BSSID and SSID on different public databases.
![geowifi](https://imgur.com/C4eZL2P.png)
### πΎ Databases
| **[Wigle](https://wigle.net/)** | **Apple** | **[Google](https://developers.google.com/maps/documentation/geolocation/overview)** | **[Milnikov](https://www.mylnikov.org/)** |
|---------------------------------------|-------------------------------------|-------------------------------------------------------------------------------------|-------------------------------------------------------|
| **[WifiDB](https://www.wifidb.net/)** | **[Combain](https://combain.com/)** | **[Freifunk Carte](https://www.freifunk-karte.de/)** | **β (Discontinued) [OpenWifi](https://openwifi.su/)** |---
## βοΈPrerequisites
- [Python3](https://www.python.org/download/releases/3.0/).
- In order to display emojis on **Windows**, it is recommended to install the [new Windows terminal](https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701).---
## π APIs and configuration file
The tool has a configuration file in the `gw_utils` folder called **config.yaml**. Each of the configuration parameters and how to obtain the necessary information is explained below:
- ### **wigle_auth**:
In order to use the Wigle service it is necessary to [obtain an API](https://api.wigle.net/) and configure the `gw_utils/config.yaml` file replacing the value of the "**wigle_auth**" parameter for the "**Encoded for use**" data [provided by Wigle](https://wigle.net/account).- ### **google_api**:
In order to use the [Google Geolocation Services](https://developers.google.com/maps/documentation/geolocation/overview) it is necessary to [obtain an API](https://developers.google.com/maps/documentation/geolocation/get-api-key) and configure the `gw_utils/config.yaml` file replacing the value of the "**google_api**" parameter for the "**API**" provided. Google provides $200 of free monthly usage.- ### **combain_api**:
In order to use the [Combain API](https://combain.com/api/) it is necessary to [obtain an API](https://portal.combain.com/#/auth/register) and configure the `gw_utils/config.yaml` file replacing the value of the "**combain_api**" parameter for the "**API**" provided. Combain provides a free trial and paid plans.- ### **no-ssl-verify**:
Option to enable or disable the SSL verification process on requests.---
## π οΈ Installation
Use the package manager [pip](https://pip.pypa.io/en/stable/) to install requirements.
```bash
python3 -m pip install -r requirements.txt
```### Docker ###
```bash
docker build -t geowifi:latest .
```---
## π Usage
```
usage: geowifi.py [-h] [-s {bssid,ssid}] [-o {map,json}] identifierSearch for information about a network with a specific BSSID or SSID.
positional arguments:
identifier The BSSID or SSID of the network to search for.options:
-h, --help show this help message and exit
-s {bssid,ssid}, --search-by {bssid,ssid}
Specifies whether to search by BSSID or SSID (default: bssid)
-o {map,json}, --output-format {map,json}
Specifies the output format for the search results (default: map)
```- Search by BSSID:
```
python3 geowifi.py -s bssid
```- Search by SSID:
```
python3 geowifi.py -s ssid
```It is possible to export the results in json format using the `-o json` parameter and show the locations on html map using `-o map`.
### π³ Docker usage ###
```bash
docker run --rm geowifi:latest
```- Search by BSSID:
```bash
docker run --rm geowifi:latest -s bssid
```- Search by SSID:
```bash
docker run --rm geowifi:latest -s ssid
```### πΊοΈ Map output example
![Map output](https://imgur.com/CilV4LR.png)
### πΎ Json output example
```json
[
{
"module": "google",
"bssid": "C8:XX:XX:XX:5E:45",
"latitude": 33.571844,
"longitude": -1XX.XXXXX97
},
{
"module": "combain",
"error": "Not enough witooth"},
{
"module": "mylnikov",
"error": "Object was not found"
},
{
"module": "vendor_check",
"vendor": "Cisco-Linksys, LLC"},
{
"module": "apple",
"bssid": "C8:XX:XX:XX:5E:45",
"latitude": 33.57198715,
"longitude": -1XX.XXXXX12},
{
"module": "wigle",
"bssid": "C8:XX:XX:XX:5E:45",
"ssid": "Vertigo",
"latitude": 33.60998154,
"longitude": -1XX.XXXXX22},
{
"module": "wifidb",
"bssid": "C8:XX:XX:XX:5E:45",
"ssid": "Vertigo",
"latitude": 33.6109,
"longitude": -1XX.XXXXX533
}
]
```---
## π’ Mentions
- This project uses some of the research and code used at [iSniff-GPS](https://github.com/hubert3/iSniff-GPS).
- Thanks to [Micah Hoffman](https://twitter.com/WebBreacher) for his attention and answers to my questions.
- Thanks to [kennbro](https://twitter.com/kennbroorg) for lending me his scrupulous eyes to give me feedback.