CIP Cyber

iSniff GPS WiFi Sniffing Tool

Table of Contents

iSniff GPS passively sniffs for SSID probes, ARPs and MDNS (Bonjour) packets broadcast by nearby iPhones, iPads and other wireless devices. The aim is to collect data which can be used to identify each device and determine previous geographical locations, based solely on information each device discloses about previously joined WiFi networks.

iOS devices transmit ARPs which sometimes contain MAC addresses (BSSIDs) of previously joined WiFi networks. iSniff GPS captures these ARPs and submits MAC addresses to Apple’s WiFi location service (masquerading as an iOS device) to obtain GPS coordinates for a given BSSID. If only SSID probes have been captured for a particular device, iSniff GPS can query network names on wigle.net and visualise possible locations.

By geo-locating multiple SSIDs and WiFi router MAC addresses, it is possible to determine where a device (and by implication its owner) is likely to have been.

Below: Visualisation of WiFi router locations in Melbourne, AU returned by Apple Location Services

Dependencies

iSniff GPS was developed and tested on a Ubuntu 12.04 (32-bit) VM with Python 2.7.3, Django 1.5.4 and Scapy 2.2.0-dev.
See requirements.txt for additional python modules required.

Components

iSniff GPS contains 2 major components and further python modules:

  • iSniff_import.py uses Scapy to extract data from a live capture or pcap file and inserts it into a database (iSniff_GPS.sqlite3 by default).
  • A Django web application provides a browser-based interface to
    view and analyse the data collected. This includes views of all detected
    devices and the SSIDs / BSSIDs each has probed for, a view by network,
    Google Maps views for visualising possible locations of a given BSSID or
    SSID, and a pie chart view showing a breakdown of the most popular
    device manufacturers based on client MAC address Ethernet OUIs.
  • wloc.py provides a QueryBSSID()
    function which looks up a given BSSID (AP MAC address) on Apple’s WiFi
    location service. It will return the coordinates of the MAC queried for
    and usually an additional 400 nearby BSSIDs and their coordinates.
  • wigle.py provides a getLocation()
    function for querying a given SSID on the wigle.net database and returns
    GPS coordinates. It must be configured with a valid wigle.net auth
    cookie. Please respect the wigle.net ToS in using this module.

CIP Cyber Staff

CIP Cyber Staff

CIP Cyber Staff comprises CIP cybersecurity experts committed to delivering comprehensive information on critical infrastructure protection. The content covers diverse topics, equipping professionals to defend organizations and communities in an ever-evolving cyber landscape.

Most popular

Industrial Cybersecurity

Want always be up to date?

Don't miss the latest news

By subscribing to our mailing list, you will be enrolled to receive our new trainings, latest blog posts, product news, and more.

CIP Training & Certifications

Transform your cybersecurity skills with CIP Cyber’s comprehensive training & course offerings

Related Articles

Best 5 Ways to Track an iPhone Remotely

In a world where almost everything revolves around smartphones, losing your iPhone is a big inconvenience. Besides the hefty price tag, there is huge data

How to Uninstall Annoying Apps on Mac?

The concern regarding uninstalling apps from a mac has remained an epicenter of discussion among multiple sectors. In this article you will get to learn

DEFCON: Jailbreaking Apple Watch

On April 24, 2015, Apple propelled themselves into the wearable category with the presentation of Apple Watch. This June, at Apple’s Worldwide Developer Conference, Apple

Want always be up to date?

Don't miss the latest news

By subscribing to our mailing list, you will be enrolled to receive our new trainings, latest blog posts, product news, and more.

CIP Training & Certifications

Transform your cybersecurity skills with CIP Cyber’s comprehensive training & course offerings