Version 1.10.16 - Release: Sword
About
Scenario
Requirements
Installation
Usage Examples
Privacy Mode
Silent Mode
Merge Script
License
Location-based service which observes and stores all the different wireless devices and their properties around. Should be used at different locations simultaneously to be effective
The application consists of three different parts: control script, scanengine and webinterface. This application is part of my master thesis.
- control script: Gives you different possibilities of how to use the program.
- scanengine: Scans for all wireless devices around and stores them into a database.
- webinterface: Can be used to analyze collected data.
- You can run the program using the run-script. To list all available commands use the "-h" option. If you run the program in offline mode it will not try to translate a address into GPS coordinates (It can be translated afterwards using the webinterface).
An attacker may create some small linux devices where this software is installed and configured. Then he places the devices at different locations and let them do their "work". After a while he collect the devices, migrates all database files to one and analyzes the data. Then he is able to reconstruct wifi client movements and behaviour.
example device (TP-Link TL-MR3020 with pivot root on USB flash drive and openWRT): ![alt tag](http://danielhaake.de/loki.jpg)
- Linux system
- Python 2.7
- Scapy
- sqlite3 module for python
- Before you first run the program you should execute the setup script (python setup.py)
- IMPORTANT: If you run this script under root user, you may have to edit CGIHTTPServer.py file: Just search for os.setuid(nobody) and overwrite it with os.setuid(0)
- HINT: You always have to use your wifi card in monitor mode! (use airmon-ng or the built in -m option of this tool)
- Start the scanengine in offline mode and using the address format: ./run.py [wireless_interface]
- Start the scanengine in offline mode and using the address format while privacy protection is activated: ./run.py [wireless_interface] -p
- Start the webinterface: ./run.py -web
- Create a silent mode string with address input: ./run.py [wireless_interface] -pc
- Create a silent mode string with GPS input: ./run.py [wireless_interface] -gps -pc
- Merge different database files: ./run.py -me
The privacy option takes care that every sniffed MAC address, ESSID and probe gets scrambled before it gets stored inside the database. The user input "signature" works as encryption key in the scrambling process. You can activate privacy by using the -p/--privacy option.
The two main aspects of the silent mode are that there is no console output generated and that all needed parameters are read in as command line parameters. You can run the program in this mode on your own or use it for crontab. The -pc/--print-crontab option helps you building the needed string and gives you instructions on how to make this program run automatically after startup.
If you have different database files (using the same signature) you can execute the run.py script with the merge option (-me/--merge) or use the web interface to migrate alle files to one. This may be necessary if you collected data simultaneously at different locations. Then you are able to evaluate everything with one file.
Copyright 2015 Daniel Haake
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .