Build a homemade spying machine with a Raspberry-Pi, Firebase, AngularJS and some Python. via medium.com

My favorite characters in spy movies were always the gadget-making-mad-scientists building crazy little machines which help the spy-hero to pull off his amazing feats. Q has always been a much more appealing character than Bond to me, as was Donatello over Leonardo as my favorite Ninja-Turtle.

Cheap new hardware and the quickly-growing “maker” mindset give us a small opportunity to step into the shoes of such childhood heroes.

In this article, I will show you how to build a nifty little device that will allow you to monitor which wifi-enabled devices are present in your home, even when you’re away. We’ll be building a web-based app which we’ll use to view this data from anywhere we have an internet connection. This way you have your Bond-like little device in which you can check up devices which are close to anywhere where you can give it some electricity.

Disclaimer: this article is created for educational purposes, do not spy on your friends and family as it is unfriendly and immoral! (it may also be illegal)

As you may well know, your smartphone or tablet are constantly looking for known WiFi networks as they do so they send over radio waves unencrypted messages known as “Probe” messages to check if any of the wifi networks which they are already familiar with are around. Different devices behave differently, some probe for networks constantly in the background, while other do this only when you open the screen and try to use the internet. The thing that’s interesting to us in this project is that while your device probes for wifi networks it broadcasts it’s MAC-address (a uniqe number identifying itself). If we’re able to listen to these communications, we’ll be able to log who is physically around us, since most people constantly carry their smartphone with them.

Our setup

This is how we’re going to pull this off:

We will set up a Raspberry Pi B+ with a WiFi dongle

We will run airodump-ng on our Pi in the background to listen for probe messages

We will write a small python program to process the out from airodump and send it to a Firebase database

We will write a small web-client to read realtime data from Firebase and show us which devices are near our Pi or have been recently.