These are the slightly customized plugins I use along with their configurations. Complete Pwnagotchi guide + some common troubleshooting steps included.
I'll keep updating this as much as possible, and you can share suggestions or potential corrections via opening up an Issue.
- On-device dictionary attacks automatically upon finding handshakes (against customized, smaller wordlists)
- Individual toggles for association and deauthentication attacks to choose 1 of 3 attack approaches:
- Fully aggressive (association + deauthentication attacks)
- Less aggressive (either association or deauthentication attack)
- Fully passive (no attacks, just passive handshake capture)
- Downloadable handshakes from web UI (fixed)
- UI elements tweaked AF (positions, sizes, fonts, etc.)
- Space added to "CH" value to accomodate 5GHz channels without overlap
- Plugin modifications (for cosmetic purposes, decluttering, and slightly improved functionality (maybe))
- Added information to the screen:
- Latest cracked handshake in plain-text (as per WPA-sec)
- Level & XP bar (collect handshakes to gain XP and level up)
- Enabled attacks (association, deauthentication, or both, or none)
- Hardware monitoring (current memory usage, CPU usage, CPU frequency, and temperature)
- Internet connection/sharing status
- Current interface's IP address (helps with connecting via SSH / web UI)
- More stuff I may be forgetting
- Copy the files from the ″Plugins″ directory of this GitHub repo to
/usr/local/share/pwnagotchi/custom-plugins/
- Copy the files from the ″Configurations″ directory of this GitHub repo to
/etc/pwnagotchi/
- Apply all changes by restarting your Pwnagotchi
changeme:changeme
Via web UI: Plugins > webcfg
Via /etc/pwnagotchi/config.toml
Then make the following additions / changes:
main.name
should be whatever you'd like to name your Pwnagotchi (example: Pwnag0dchi)main.whitelist.#0
&main.plugins.grid.exclude
should be the SSID of your home Wi-Fi network, so your Pwnagotchi does not attack it (example: Shuriken-WiFi_2.4GHz)main.plugins.wpa-sec.api_key
should be your WPA-sec API key (go here first and click on "Get key" to get your free API key e-mailed to youNOTE: When copy-pasting the API key to
main.plugins.wpa-sec.api_key
, make sure there are no spaces at the beginning or end of the API key- Restart the Pwnagotchi service to apply changes. On the web UI, this can be done by clicking ″Save and Restart″ at the top of webcfg. Via SSH, this can be done using
sudo systemctl restart pwnagotchi.service
- Waveshare 2.13 inch e-Ink display
- Versions 3 & 4 work best. This is denoted by a small circular sticker on the board (like this)
- Ignore the "Rev2.1" that's printed on the board; that has nothing to do with the version
- Do NOT get the tri-color variant with black/white/red (variant "B"). Get only the black/white version. Both look pretty much identical and cost the same, so it's easy to purchase the wrong one
-
Raspberry Pi Zero W (soldering required)
-
OR Raspberry Pi Zero WH (no soldering required)
- This is the same board with pre-soldered pins (The
H
inWH
is for "Headers") - The
WH
variant may be a little more difficult to find thanW
- This is the same board with pre-soldered pins (The
-
Micro-SD card — 16GBs best, must be "UHS-I"
- Attach the Waveshare display to the Pi Zero (hardware part done!)
- Download a Pwnagotchi image file of your choice (jayofelony, etc.)
- Download / Install Balena Etcher
- Insert your Pwnagotchi's micro-SD into a card-reader, and into your computer
- Open Balena Etcher
- Select the downloaded Pwnagotchi image file
- Also carefully select the inserted micro-SD card
- Flash!
- After flashing completes, insert the micro-SD card into your Pwnagotchi and power it on
- On the first boot, your Pwangotchi will need some time to initialize (anywhere from 2 to even 30 minutes). During this initialization period, do not panic if you see nothing on the display or a
"Generating keys, do not turn off..."
message. Once this process is complete, your Pwangotchi will restart by itself and be ready to useNOTE: This only applies to the first boot. You will not have to wait for more than ~2-3 minutes for any future boot-ups
- IT'S ALIIIIIVE!
Tutorial: https://youtu.be/7nj5Euo5Bng?t=135
NOTE: Follow only from 2:15 to 4:31
NOTE: If you need to install RNDIS drivers manually, download it from this GitHub repo ("RNDIS Driver" directory)
ssh pi@10.0.0.2
or ssh pi@10.002
for short (password = raspberry
)
To FTP into your Pwnagotchi as a root user, you'll first need to initialize the root user account and also enable root FTP logins:
- SSH into your Pwny as the pi user (as usual)
sudo passwd root
- Enter pi user's password (raspberry)
- Enter a new password for root user
- Save and exit. You'll now have a root user. Time to enable root FTP logins
sudo nano /etc/ssh/sshd_config
NOTE:
sshd_config
, notssh_config
- Change the
PermitRootLogin prohibit-password
line toPermitRootLogin yes
and uncomment the line if it's commented (remove the#
from the start of the line) - Save and exit
service ssh restart
Tutorial: https://youtube.com/watch?v=6f7PB3bgaxQ
- Connect your Pwnagotchi (data port, not power)
- Download
win_connection_share.ps1
from this GitHub repo ("Internet Sharing" directory) - Open PowerShell as an administrator (right-click > "Run as administrator")
cd .\Downloads\
.\win_connection_share.ps1 -SetPwnagotchiSubnet
- Reboot Windows machine
.\win_connection_share.ps1 -EnableInternetConnectionSharing
- Start > type "network" > "View network connections"
- Right-click your Pwnagotchi's RNDIS > Properties > IPv4 configuration > re-add static IP manually (10.0.0.1, 255.255.255.0, 10.0.0.1, 8.8.8.8)
- Right-click your main ethernet > Properties > "Sharing" tab > check both boxes + select sharing for your Pwnagotchi's RNDIS > OK
- Reconnect Pwnagotchi (data port, not power)
- Command Prompt >
ssh pi@10.0.0.2
(password =raspberry
) - Confirm Internet connectivity after Pwnagotchi initializes completely using
ping google.com
https://docs.google.com/spreadsheets/d/1os8TRM3Pc9Tpkqzwu548QsDFHNXGuRBiRDYEsF3-w_A
The better_quickdic
plugin is responsible for this. Just add your small custom wordlists to /home/pi/wordlists/
, and a dictionary attack will be performed using all the wordlists in this directory as soon as a valid handshake is captured
NOTE: Disable / Remove the
aircrackonly
&hashie
/hashieclean
plugins for this to be most effective. I've found in some of my testing that these plugins sometimes get rid of even valid handshakes beforebetter_quickdic
could start cracking themNOTE: If a handshake is cracked using this plugin, it will NOT show on the Pwnagotchi screen (even with
display-password
enabled). You'll have to manually check the/home/pi/handshakes
directory for any files that end in.pcap.cracked
. If you have tons of handshakes there, you can usels /home/pi/handshakes/ | grep crack
to quickly filter out only the ones cracked
Tutorial: https://www.youtube.com/watch?v=cnmrKCBzDRU
You can attach an external Wi-Fi adapter to the Pwnagotchi for a significant increase in range, or for 5GHz support, or both.
NOTE: This would completely depend on your external adapter's chipset. Many chipsets are readily supported by the underlying Linux OS, but others would require you to install the chipset's driver manually via SSH.
TIP: First, try the below steps and see if your adapter works with the Pwnagotchi (don't forget to reboot). If not, install the drivers manually.
sudo nano /boot/config.txt
- uncomment
dtoverlay=disable-wifi
(remove the#
from the start of the line) - comment out
dtoverlay=dwc2
(add a#
at the start of the line) - Reboot Pwnagotchi with Wi-Fi adapter connected (data port, not power)
sudo nano /boot/config.txt
- comment out
dtoverlay=disable-wifi
(add a#
at the start of the line) - uncomment
dtoverlay=dwc2
(remove the#
from the start of the line) - Reboot Pwnagotchi with Wi-Fi adapter disconnected (data port, not power)
- Connect Pwnagotchi (data port, not power)
- Start > type "network" > "View network connections"
- Right-click your primary ethernet (Internet) > Properties > "Sharing" tab > uncheck both boxes > OK
- Right-click your Pwnagotchi's RNDIS > Properties > IPv4 configuration > re-add static IP manually (10.0.0.1, 255.255.255.0, 10.0.0.1, 8.8.8.8) > OK
- Right-click your main ethernet > Properties > "Sharing" tab > check both boxes + select sharing for your Pwnagotchi's RNDIS > OK
- Reconnect Pwnagotchi (data port, not power)
- Test Internet connectivity after Pwnagotchi initializes completely with
ping google.com
This usually happens with new sessions; the 'gotchi just seems to "forget" what the enable/disable state was when you power it off. Simple fix:
- Web UI > Plugins
- Enable and then disable "enable_deauth". This will immediately disable deauth, and the plugin's toggle will now work effectively (at least for the current session)
This usually happens with new sessions; the 'gotchi just seems to "forget" what the enable/disable state was when you power it off. Simple fix:
- Web UI > Plugins
- Enable and then disable "enable_assoc". This will immediately disable association, and the plugin's toggle will now work effectively (at least for the current session)
- First of all — told you so
- Connect Pwnagotchi (data port, not power)
- Web UI > Plugins > web-cfg
- Look for
ui.fps
, and change the value to1
or2
- Scroll to the top, hit "Save and restart"
- Screen should work relatively much better now