Blog Post
Johnathon Rohweder
Published: 11/09/2024
This is a big one! I've been working on this project for a while and have been fascinated by cybersecurity for quite some time, exploring almost every avenue. What caught my eye the most was network security and vulnerabilities. I set out to create a tool that makes Wi-Fi pen testing both easy and fun.
Over the last month, I've developed what I call Neptune. This device uses simple components: a Raspberry Pi Zero 2 W and a generic Wi-Fi adapter with monitoring and injection capabilities. While using a Raspberry Pi for Wi-Fi hacking isn't a revolutionary idea—see Pwnagotchi and Pi Wardriving—I wanted to understand the tools I use rather than just downloading random scripts and running them blindly. I also aimed for a discrete and engaging UI that would be simple for beginners and completely unique. That's why I decided to create my own device and design my own UI.
I started by designing the device's interface using Figma, a user-friendly and powerful tool for creating interfaces. I wanted something sleek and futuristic, reminiscent of Watch Dogs. Here's what I came up with:
The design features three main sections, with most of the space dedicated to buttons for various hacks and tools. For scripts that require a MAC Address, like the Wi-Fi Deauth script, clicking the button triggers a JavaScript alert asking for the needed information. This keeps the UI clean and straightforward. I also turned the website into a PWA (Progressive Web App), allowing it to function like an app and removing unnecessary elements like the search bar.
This is where most of the troubleshooting and research happened. I wanted a UI on my mobile device, but how would I manage this while traveling and using the scripts? Initially, I thought about using a cable to connect the device to my iPhone, but iPhones aren't known for their compatibility with third-party devices, and the cable would look suspicious. After some research, I discovered Bluetooth Tethering. This feature allows my Raspberry Pi to create a Bluetooth network that my iPhone can connect to, creating a personal network linking the two devices. This setup lets me host a Python Flask app on the Raspberry Pi through a system service, providing a wireless way to connect and trigger scripts from my iPhone.
The project is quite simple. The Bluetooth tethering component can be a bit tricky, but Kali offers an easy-to-download operating system for Bluetooth tethering called Pi Tail. The web server is an additional feature but not required; you can also SSH into the device from the connected phone. I just wanted to provide a user-friendly interface.
With the limited testing I've done, the device can monitor Wi-Fi access points and annotate their clients using some custom Python scripts. It can also scan Bluetooth devices and relay all gathered information. Of course, all of this is done legally and with proper consent when necessary.
I have more tests to run and some case upgrades to make. Specifically, I've 3D-printed a custom case I designed to fit all the components and need to ensure everything works together properly. Overall, it's been a fun project, and I plan to create even bigger and better devices in the future!