From 929cd50113b6bef79be0f611de642f4ae5b066a4 Mon Sep 17 00:00:00 2001 From: MAY Date: Wed, 18 Jan 2023 09:22:40 +0100 Subject: [PATCH] Moving onto GIT --- Linux/VSI.sh | 26 ++++ Mac/VSI.sh | 3 + Python/README.md | 281 +++++++++++++++++++++++++++++++++++++++++ Win/VSI.ps1 | 1 + Win/WinWifi/README.txt | 2 + Win/WinWifi/wifi.exe | Bin 0 -> 107898 bytes 6 files changed, 313 insertions(+) create mode 100644 Linux/VSI.sh create mode 100644 Mac/VSI.sh create mode 100644 Python/README.md create mode 100644 Win/VSI.ps1 create mode 100644 Win/WinWifi/README.txt create mode 100644 Win/WinWifi/wifi.exe diff --git a/Linux/VSI.sh b/Linux/VSI.sh new file mode 100644 index 0000000..3aabf81 --- /dev/null +++ b/Linux/VSI.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +requirements=1 + +# check for the requirements first +if ! command -v nmcli &> /dev/null +then + echo "- nmcli is missing: please make sure you have NetworkManager installed" + requirements=0 +fi + +if ! command -v xxhsum &> /dev/null +then + echo "- xxhsum is missing: please install xxhash OR change the code to use another hashing algo (crc32?)" + requirements=0 +fi + +if [ $requirements -ne 1 ] +then + echo "\nPlease install the missing packages." + exit +fi + + + +salt=$(cat /etc/machine-id)$(whoami) && for a in $(nmcli -f BSSID,SIGNAL device wifi list --rescan yes | awk -v s=$salt '{print $1 s "\n" $2 s}'); do xxhsum -H0 <(echo $a); done | cut -d ' ' -f 1 | tail -n +2 | head -n 10 | xargs echo | sed 's/ //g' diff --git a/Mac/VSI.sh b/Mac/VSI.sh new file mode 100644 index 0000000..8ff0372 --- /dev/null +++ b/Mac/VSI.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +salt=$(ioreg -d2 -c IOPlatformExpertDevice | awk -F\" \'/IOPlatformUUID/{print $(NF-1)}\')$(whoami) && for a in $(sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s | perl -nle 'm/(?<=\s)[0-9a-f]{2}(:[0-9a-f]{2}){5}\s+-?[[:digit:]]{2}/ and print "$&"' | sed '1!G;h;$!d' | awk -v s=$salt '{print $1 s "\n" $2 s}'); do xxhsum -H0 <(echo $a); done | cut -d ' ' -f 1 | tail -n +2 | head -n 10 | xargs echo | sed 's/ //g' diff --git a/Python/README.md b/Python/README.md new file mode 100644 index 0000000..d1019e7 --- /dev/null +++ b/Python/README.md @@ -0,0 +1,281 @@ +# Virtual surrounding impression tool + +This tool generates VSI hashes on the client computers + +*** Please read before using! *** +*** Developers can skip chapter 4 and check chapter 5! *** + +This folder contains sample code for "virtual surrounding impression" generator +as a Python script (VSI.py) + + +# CONTENTS + + 1. License + 2. Introduction + 3. Principles of operation + 4. Security, privacy concerns + 5. How to use the provided code + 5.1 Supported enviromnents and requirements + 5.2 Use on Linux clients + 5.3 Use on Windows clients + 5.4 Use on MacOS clients + 6. How to implement your own solution (<-- programmers read this) + 7. Authors + + +# 1. LICENSE + + + While this is clearly only a rough proof-of-concept demo code, you can use + it freely under the GNU GPL v3 license. + + 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 . + + + +## 2. INTRODUCTION + + This is sample app that generates virtual surrounding impression and works + in all three major computer operating systems. + + It doesn't require any parameters and it returns a clean text output that + can be directly piped into other computer programs. + + If you have limited developer resources, you can call this script from + within your survey software and save the returned text as a string variable. + + If you have any programming means, please read chapter 5. It's not much work + to implement it in your solution. + + If you choose to use this script, you can use PyInstaller to compile it into + an executable program that doesn't need python installed on clients. + + Please read more about the actual principles of operation in the included + "How_VSI_works.pdf" PDF file. + + **************************************************************************** + + +# 3. PRINCIPLES OF OPERATION + + For more details, refer to the included "How_VSI_works.pdf". + + In essence, the script: + + a) scans surrounding wifi APs and retrieve their BSSIDs and signal + strengths + b) sorts them in descending order based on signal strength + c) takes first five AP BSSIDs and their strengths, e.g.: + 12:34:56:78:90:ab 80% + 23:34:45:56:56:67 79% + + d) salts each and every BSSID and strength separately with machine UUID + and username. When less than five APs are visible, DO NOT SALT EMPTY + BSSIDs. + + e) makes 8 characters long hash of each salted BSSID and signal strength + SEPARATELY. + + 5 APs with two data points (BSSID, power) generate 5*2=10 data 8-char + long hashes. 10*8 = 80, hence the 80-characters long VSI code. + + **************************************************************************** + + +# 4. SECURITY, PRIVACY + + Each computer salts differently for each user, so it should be safe from + reverse lookups using rainbow tables: 128 bit UUID plus username. + + This script uses xhash and CRC32, but you can use anything else, e.g. + xxhsum -H0; fletcher-32; adler32, or make a SHA-1 and take out 8 chars. + + In practice, nobody is going to alter wifi names to fake different locations + as it is much easier to simply turn the WiFi off. + + Collisions are possible, but not critical for the given usage. Please refer + to included "How_VSI_works.pdf" for more; you can also read a word or two + about the collisions here: + https://preshing.com/20110504/hash-collision-probabilities/ + + + **************************************************************************** + +# 5. HOW TO USE THE PROVIDED CODE + + Your survey software should call this procedure three times during a survey; + we suggest implementing it as a hidden string variable at a fixed location + in the survey (e.g. after 1st block, middle block, last block). + + We suggest doing it in a parallel thread, as scanning networks can take a + couple of seconds. If that is not possible, we suggest scheduling this + script to run every 10 minutes and store the results in a temporary text + file, idealy on a volatile memory (RAM) so the contents get removed upon + reboot or shut down. + + Then, simply read text file contents from the survey. + + Scheduling command on Linux on Mac: + `python3 SampleLocator.py > /tmp/VSI.txt` + + Scheduling command on Windows: + `python3 SampleLocator.py > %tmp%\VSI.txt` + + ** NOTE: when using temporary files, do NOT store hashes permanently on a + nonvolatile memory. Do not store more than a single (last) hash. + + Reading the text into a survey (if the software supports system commands as + a variable input): + + Linux, Mac: + `cat /tmp/VSI.txt` + + Windows: + `type %tmp%\VSI.txt` + + + ---------------------------------------------------------------------------- + + +## 5.1 SUPPORTED ENVIRONMENTS AND REQUIREMENTS + + This script works on: + Windows (7+) + Linux (nmcli) + MacOS, OS X (2010+) + + Required software: + + If you don't compile it into a binary for the target platform (by using + PyInstaller), you must install Python 3 to interpret the script. + + + ---------------------------------------------------------------------------- + +## 5.2 USE ON LINUX CLIENTS + + 1. Make sure you have Python3 installed + 2. Run the script + + Hint: you can produce the same without python and this this script by simply + running this one-liner (install xxlhash to make such hashes in CLI): + + `salt=$(cat /etc/machine-id)$(whoami) && for a in $(nmcli -f BSSID,SIGNAL device wifi list --rescan yes | awk -v s=$salt '{print $1 s \"\\n\" $2 s}'); do xxhsum -H0 <(echo $a); done | cut -d ' ' -f 1 | tail -n +2 | head -n 10 | xargs echo | sed 's/ //g'` + + ---------------------------------------------------------------------------- + + +## 5.3 USE ON MAC CLIENTS + + 1. install Python3 from the AppStore + 2. allow the user to run airport -s (use sudo) + 2. Run the script + + Hint: you can produce the same without python and this this script by simply + running this one-liner (install xxlhash to make hashes in CLI): + + `salt=$(ioreg -d2 -c IOPlatformExpertDevice | awk -F\" \'/IOPlatformUUID/{print $(NF-1)}\')$(whoami) && for a in $(sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s | perl -nle 'm/(?<=\s)[0-9a-f]{2}(:[0-9a-f]{2}){5}\s+-?[[:digit:]]{2}/ and print "$&"' | sed '1!G;h;$!d' | awk -v s=$salt '{print $1 s \"\\n\" $2 s}'); do xxhsum -H0 <(echo $a); done | cut -d ' ' -f 1 | tail -n +2 | head -n 10 | xargs echo | sed 's/ //g'` + + + ---------------------------------------------------------------------------- +## 5.4 USE ON WINDOWS CLIENTS + + Install python 3 from MS store (search for python, select version 3.x) + + Windows cannot rescan wifi without admin privileges (by turning wifi off + and on) from command line thereby making list of networks unreliable. + + Additionally, cmd doesn't have a sudo :-) + + To resolve this, you can find precompiled "wifi.exe" from + https://github.com/changyuheng/winwifi in "Windows tools" subdirectory. + + If it doesn't work for some reason, get it via pipx: + + open command line (WIN+R, type "cmd.exe") and execute a-c: + a) `"python -m pip install --user pipx"` + b) `"python -m pipx install winwifi"` + c) `"python -m pipx ensurepath"` + + Then you're ready to go. Instead of ensuring path (e), you can just copy + "wifi.exe" to this script directory. + + ---------------------------------------------------------------------------- + +## 5.5 TOUBLESHOOTING + + PERMISSION DENIED on Linux or Mac + + Allow user to run "airport" (Mac) or "nmcli" (Linux) via sudo. + + + XXHSUM COMMAND NOT FOUND ERROR on Linux or Mac + + Install xxhash or use a different algorythm (e.g. crc32) + + + WINDOWS: string are always short, but there are definitely quite a few Aps + visible?! + + Have you installed winwifi? + + **************************************************************************** + +# 6. HOW TO IMPLEMENT YOUR OWN SOLUTION + + We suggest using existing command line tools to save time (e.g. nmcli, + airport or netsh). Please note that netsh *DOES NOT* rescan the network and + often displays just a single, currently used network. + + Nevetheless, here's the procedure that works on all platforms: + + + a) obtain unique machine id and username or user id + You'll use this as a salt. + + b) scan wifi and obtain BSSID + POWER + + Make sure you have privileges to do so + + c) take (up to) first 5 access points and their corresponding power levels + + d) salt + hash each data point (each BSSID and strength) separately + Do NOT salt+hash empty (nonexistent) networks + + e) combine all (up to) 10 hashes + Or empty strings for nonexisting Aps + + Additional hint: + + Don't wait for the scanning to end withing the survey; read ch. 4 about + the details on how to workaround this (crontab). + + +# 7. AUTHORS + + Developed as a part of work package 8 of the European Social Survey 2021-23 + Work Programme. + + Members: + + - May Doušak (UL) + - Joost Kappelhof (SCP), + - Roberto Briceno-Rosas (GESIS), + + Programming, technical contact: + + - May Doušak may.dousak@fdv.uni-lj.si + + diff --git a/Win/VSI.ps1 b/Win/VSI.ps1 new file mode 100644 index 0000000..b27cd60 --- /dev/null +++ b/Win/VSI.ps1 @@ -0,0 +1 @@ +WinWIFI\wifi scan | for /f \"tokens=1,* delims=:\" %a in ('findstr \"BSSID Signal\"') do @echo %b diff --git a/Win/WinWifi/README.txt b/Win/WinWifi/README.txt new file mode 100644 index 0000000..b308075 --- /dev/null +++ b/Win/WinWifi/README.txt @@ -0,0 +1,2 @@ +App by changyuheng provided under MPL 2 +Source code and information is here: https://github.com/changyuheng/winwifi diff --git a/Win/WinWifi/wifi.exe b/Win/WinWifi/wifi.exe new file mode 100644 index 0000000000000000000000000000000000000000..aa699d5663825f139509ff7776355b2e8de1d378 GIT binary patch literal 107898 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