All Projects โ†’ schollz โ†’ Find Lf

schollz / Find Lf

Licence: agpl-3.0
Track the location of every Wi-Fi device (๐Ÿ“ฑ) in your house using Raspberry Pis and FIND

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Find Lf

Rainbow-Wifi-Hack-Utility-Android
The program implements brute Wi-Fi network method on platform Android
Stars: โœญ 39 (-95.63%)
Mutual labels:  wifi, smartphone
tuyapower
Python module to read status and energy monitoring data from Tuya based WiFi smart devices. This includes state (on/off), current (mA), voltage (V), and power (wattage).
Stars: โœญ 101 (-88.69%)
Mutual labels:  smarthome, wifi
PhoneVR
Use Steam VR-enabled applications with your phone as HMD (Head-mounted display). The only Open-Source solution to similar commercial packages like VRidge, iVRy, Trinus etc etc.
Stars: โœญ 178 (-80.07%)
Mutual labels:  wifi, smartphone
unifi2mqtt
Connect Ubiquiti UniFi controller to MQTT ๐Ÿ“ก
Stars: โœญ 66 (-92.61%)
Mutual labels:  smarthome, wifi
Qr Filetransfer
Transfer files over WiFi between your computer and your smartphone from the terminal
Stars: โœญ 738 (-17.36%)
Mutual labels:  smartphone, wifi
Peanuts
Peanuts is a free and open source wifi tracking tool. Based on the SensePosts Snoopy-NG project that is now closed.
Stars: โœญ 34 (-96.19%)
Mutual labels:  tracking, wifi
Homepoint
Espressif ESP32 Based Smarthome screen for MQTT
Stars: โœญ 391 (-56.22%)
Mutual labels:  smarthome, wifi
Android
An Open-Source Android application that allows you to send and receive files over available connections, and offers unique features like sharing over HTTP, pausing and resuming transfers
Stars: โœญ 695 (-22.17%)
Mutual labels:  wifi
Howmanypeoplearearound
Count the number of people around you ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ by monitoring wifi signals ๐Ÿ“ก
Stars: โœญ 6,525 (+630.68%)
Mutual labels:  wifi
Haswitchplate
LCD touchscreen for Home Automation
Stars: โœญ 666 (-25.42%)
Mutual labels:  smarthome
Vpp
Video++, a C++14 high performance video and image processing library.
Stars: โœญ 655 (-26.65%)
Mutual labels:  tracking
Rotki
A portfolio tracking, analytics, accounting and tax reporting application that protects your privacy
Stars: โœญ 689 (-22.84%)
Mutual labels:  tracking
Pi Pwnbox Rogueap
Homemade Pwnbox ๐Ÿš€ / Rogue AP ๐Ÿ“ก based on Raspberry Pi โ€” WiFi Hacking Cheatsheets + MindMap ๐Ÿ’ก
Stars: โœญ 798 (-10.64%)
Mutual labels:  wifi
Smartir
Integration for Home Assistant to control climate, TV and fan devices via IR/RF controllers (Broadlink, Xiaomi, MQTT, LOOKin, ESPHome)
Stars: โœญ 677 (-24.19%)
Mutual labels:  smarthome
Mailtrackerblocker
Email tracker, read receipt and spy pixel blocker plugin for macOS Apple Mail
Stars: โœญ 821 (-8.06%)
Mutual labels:  tracking
Map Matching
The map matching functionality is now located in the main repository https://github.com/graphhopper/graphhopper#map-matching
Stars: โœญ 665 (-25.53%)
Mutual labels:  tracking
Jeelizweboji
JavaScript/WebGL real-time face tracking and expression detection library. Build your own emoticons animated in real time in the browser! SVG and THREE.js integration demos are provided.
Stars: โœญ 835 (-6.49%)
Mutual labels:  tracking
Wireless Usb Adapter Clover
Visit BLOG : https://com-chris1111.github.io
Stars: โœญ 808 (-9.52%)
Mutual labels:  wifi
Trape
People tracker on the Internet: OSINT analysis and research tool by Jose Pino
Stars: โœญ 6,753 (+656.22%)
Mutual labels:  tracking
Boopsuite
A Suite of Tools written in Python for wireless auditing and security testing.
Stars: โœญ 807 (-9.63%)
Mutual labels:  wifi

find-lf

This is a extension of FIND, the Framework for Internal Navigation and Discovery, which is based on the idea of Lucius Fox's sonar system in The Dark Knight that is used to track cellphones.

The system uses a network of Raspberry Pis which sniff the WiFi probe requests from WiFi-enabled devices and sends these parcels to a central server which compiles and forwards the fingerprint to the FIND server which then uses machine learning to classify the location based on the unique WiFi fingerprints.

This system does not require being logged into a particular WiFi - it will track any phone/device with WiFi enabled! (Caveat: for iOS devices it will only track if Wi-Fi is associated with a network - any network, though - because of MAC spoofing it uses for security). This system also does not require installing any apps on a phone. Tracking occurs anytime a WiFi chip makes a probe request (which is every minute or so). For this to work, it requires a one-time setup to populate the system with known fingerprints of known locations before it can pinpoint locations (see #3 below).

Note: It may be illegal to monitor networks for MAC addresses, especially on networks that you do not own. Please check your country's laws (for US Section 18 U.S. Code ยง 2511) - discussion.

How does it work?

You can setup Raspberry Pis around a house in a way that they will see different signal strengths from various WiFi devices. Each WiFi-enabled device see requests from the various Raspberry Pis with different strengths (see colored bars in Figure below). These graphs are a fingerprint which can be used to uniquely classify the location.

The Raspberry Pi cluster gets probe requests to various WiFi devices, and compiles these and forwards them to a FIND-LF server. This FIND-LF server then sends a compiled fingerprint to a main server. This system uses WiFi probe requests, which occur on any WiFi enabled device, as long as WiFi is enabled. These probe requests generally occur when a scan takes place, which is every few minutes when the phone is being used.

Once sent to the FIND server, the location can be directly determined. For more information about this, see the FIND README.

Requirements

You will need a Raspberry Pi. Ones with built-in Wifi work best:

You will need a monitor-mode enabled wifi USB adapter. There are a number of possible USB WiFi adapters that support monitor mode. Here's a list that are popular:

Namely you want to find a USB adapter with one of the following chipsets: Atheros AR9271, Ralink RT3070, Ralink RT3572, or Ralink RT5572.

Setup

1. Initialize Pis

Install Raspbian lite onto a Pi. If you don't use the pi user, make sure to give the user sudo acess. Then initialize the Raspberry Pi with the following script

sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/schollz/find-lf/master/node/initialize.sh)"

Alternatively, you can do this using my script for PiBakery.

Also edit /etc/network/interfaces and remove the wpa-conf line for wlan1.

Do this for several Pis and then plug in the WiFi adapter that has "monitor" mode.

2. Start Pi cluster

First make sure you have SSH installed and nmap.

sudo apt-get install openssh-client openssh-server nmap

Its useful to add your SSH key to each Pi, which you can do just using:

ssh-keygen                                               # do this once
cat ~/.ssh/id_rsa.pub | ssh [email protected] \
  "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"     # do for every Pi

Then download cluster.py for accessing the cluster

wget https://raw.githubusercontent.com/schollz/find-lf/master/tools/cluster.py

Then, to initialize, just run

python3 cluster.py initialize

to which you'll be asked for the information about your cluster. Choose any group that you want, but remember it, as you will need it to login to the FIND server. For the lf address, you can use the default (a public server) or set it to your own. See find-lf/server/README.md for more information.

To easily find which hostnames/IPs are on your network, use

python3 cluster.py list

Startup the Pi cluster using python3.py cluster start. You can check the status with python3 cluster.py status

3. Classify locations using Pi cluster

After the cluster is up in running, you need to do learning. Take a smart phone and identify its mac address, something like AA:BB:CC:DD:EE:FF. Take your phone to a location. Then activate the find-lf server to do learning either by switching on the find-lf website or running python3 cluster.py -u AA:BB:CC:DD:EE:FF -l location learn.

This is important! Before moving to a new location, make sure to turn off learning by switching to tracking. Activate this on the find-lf server using the the find-lf website or use python3 cluster.py track.

Repeat these steps for as many locations as you want.

4. Track all the cellphones!

Now just go to https://ml.internalpositioning.com and login using your group name to see tracking of all the phones!

You can also track a single phone using https://ml.internalpositioning.com/GROUP/dashboard?user=AA:BB:CC:DD:EE:FF.

License

Copyright 2015-2017 Zack Scholl ([email protected], @zack_118). All rights reserved. Use of this source code is governed by a AGPL license that can be found in the LICENSE file.

Todo

  • [ ] Determine the wlan0/1 of the Wi-Fi adapter automatically (currently it defaults to wlan1, which is right most of the time)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].