While I was sitting in my algorithms class I got a little distracted and started looking at the people who are also sitting in the class. I noticed that there were many people just looking at their smart phones. They were browsing instagram or any other app. The important points were they were often connected to the internet , the phones were always with them and often using wifi. In recent years human beings are also emitting radio waves daily. If you can smell radio waves, you can smell human beings that dwell in cities.
It gave me a wonderful idea. What if I listen to the wi-fi and gsm channels to track people who I came across most? Or what if I could get notified if someone that I was interested in is close by?
I also came up with the implementation of this idea, all I would have to do is listen 2.4ghz and 5.8ghz wifi channels for mac addresses and log them. I also should log the signal strengths. Also will filter out hotspots and other devices. I will log where and when I see the devices and how close they are to me.
Where: GPS + Access points
Who are near me: listen 2.4 and 5.8 for online clients and rank them with signal strength, label the manufacturer of the phones (manufacturer, brand is harder)
I need a dual band wifi adapter
a raspberrypi zero with power source that will allow it to go for a day. (Possibly lion 2s 3A)
Safe power up – power down procedure if the battery is low and such.
3D printed enclosing
The code will be in python3, I already have a simple draft with Scapy and “iw”, I just need to clean it up.
After getting some data, I should think about the user experience.
Then If I’m happy with the results, I will also add the GSM counterpart and if that also works I will be able to track a lot of human beings in vicinity.
After that maybe, maybe,…. I CAN RUN A ML algorithm to maybe do some predictions about who I will come across. But the thing is since I have classes with people, it does not require so much thought about who I am going to run into at 9am Monday at my physics class…. yeah… but still we can try!
Some packets can be decrypted (GSM and also some Wi-fi) but I believe it is not ethical nor legal (even though no one can know without looking in to your devices), I will not decrypt any packets.
Github Link: https://github.com/kaangoksal/wifi_device_stalker
Technical Write-Up (Just for fun and maybe for future reference)
Packets are captured with the scapy library, here are some examples of the packets that are flying around the library.
As it can be seen, they are bytes. nearly all the packets that I see are encrypted, WPA2 + usually https. However the important information that i’m interested in is Mac addresses rather than the contents of the packets! Every packet is a scapy.layers.dot11.RadioTap object. dot11 is a shorthand for IEEE 802.11 spesification, and as wikipedia states, IEEE 802.11 is “IEEE 802.11 is a set of media access control (MAC) and physical layer (PHY) specifications for implementing wireless local area network (WLAN) computer communication in the 900 MHz and 2.4, 3.6, 5, and 60 GHz frequency bands. ” -Wikipedia