mirror of
https://github.com/jayofelony/pwnagotchi.git
synced 2025-07-01 18:37:27 -04:00
40 lines
1.8 KiB
Python
40 lines
1.8 KiB
Python
import logging
|
|
import requests
|
|
import pwnagotchi.plugins as plugins
|
|
|
|
'''
|
|
You need an bluetooth connection to your android phone which is running PAW server with the GPS "hack" from Systemik and edited by shaynemk
|
|
GUIDE HERE: https://community.pwnagotchi.ai/t/setting-up-paw-gps-on-android
|
|
'''
|
|
|
|
|
|
class PawGPS(plugins.Plugin):
|
|
__author__ = 'leont'
|
|
__version__ = '1.0.1'
|
|
__name__ = 'pawgps'
|
|
__license__ = 'GPL3'
|
|
__description__ = 'Saves GPS coordinates whenever an handshake is captured. The GPS data is get from PAW on android.'
|
|
|
|
def on_loaded(self):
|
|
logging.info("[paw-gps] plugin loaded")
|
|
if 'ip' not in self.options or ('ip' in self.options and self.options['ip'] is None) or (len('ip' in self.options and self.options['ip']) is 0):
|
|
logging.info("[paw-gps] no IP Address defined in the config file, will uses paw server default (192.168.44.1:8080)")
|
|
|
|
def on_handshake(self, agent, filename, access_point, client_station):
|
|
if 'ip' not in self.options or ('ip' in self.options and self.options['ip'] is None or (len('ip' in self.options and self.options['ip']) is 0)):
|
|
ip = "192.168.44.1:8080"
|
|
else:
|
|
ip = self.options['ip']
|
|
|
|
try:
|
|
gps = requests.get('http://' + ip + '/gps.xhtml')
|
|
try:
|
|
gps_filename = filename.replace('.pcap', '.paw-gps.json')
|
|
logging.info("[paw-gps] saving GPS data to %s" % (gps_filename))
|
|
with open(gps_filename, 'w+t') as f:
|
|
f.write(gps.text)
|
|
except Exception as error:
|
|
logging.error(f"[paw-gps] encountered error while saving gps data: {error}")
|
|
except Exception as error:
|
|
logging.error(f"[paw-gps] encountered error while getting gps data: {error}")
|