Pwnagotchi is an A2C-based “AI” leveraging bettercap that learns from its surrounding WiFi environment to maximize crackable WPA key material it captures (either passively, or by performing authentication and association attacks). This material is collected as PCAP files containing any form of handshake supported by hashcat, including PMKIDs, full and half WPA handshakes.
Instead of merely playing Super Mario or Atari games like most reinforcement learning-based “AI” (yawn), Pwnagotchi tunes its own parameters over time to get better at pwning WiFi things in the environments you expose it to.
How Pwnagotchi works to get Maximize Crackable WPA Key Material For Bettercap
To be more precise, Pwnagotchi is using an LSTM with MLP feature extractor as its policy network for the A2C agent. If you’re unfamiliar with A2C, here is a very good introductory explanation (in comic form!) of the basic principles behind how Pwnagotchi learns. Be sure to check out the Usage doc for more pragmatic details of how to help your Pwnagotchi learn as quickly as possible.
Unlike the usual reinforcement learning simulations, Pwnagotchi actually learns at a human timescale because it is interacting with a real-world environment instead of a well-defined virtual environment (like playing Super Mario). Time for a Pwnagotchi is measured in epochs; a single epoch can last anywhere from a few seconds to many minutes, depending on how many access points and client stations are visible.
Multiple units within close physical proximity can “talk” to each other, advertising their presence to each other by broadcasting custom information elements using a parasite protocol I’ve built on top of the existing dot11 standard. Over time, two or more units trained together will learn to cooperate upon detecting each other’s presence by dividing the available channels among them for optimal pwnage.
Required Hardware
- A Raspberry Pi Zero W (see here for more details on alternative bodies).
- A microSD card (8GB minimum recommended, preferably of good quality and speed).
- A decent quality micro-USB cord that allows data transfer (not just charging!)
- A portable power bank (see here for benchmarks with popular portable batteries).
- Optional: An hardware clock and one of the supported displays.