This repository contains all of my custom-made pwnagotchi plugins (the ones that were finished). You can set them up using the following guide(s) or if you know what to do, the setup is also included in each file. If you found any bugs or have an issue, you can report them here or on reddit. Also reach out to me if you have any suggestions or ideas for new plugins, I would love to hear them!
Add to /etc/pwnagotchi/config.toml
:
main.custom_plugin_repos = [
"https://github.com/evilsocket/pwnagotchi-plugins-contrib/archive/master.zip",
"https://github.com/xentrify/custom-pwnagotchi-plugins/archive/master.zip"
]
Next, sudo pwnagotchi plugins update
and sudo pwnagotchi plugins install <plugin>
.
Now you should be able to continue with configuring the plugins using the next section.
git clone https://github.com/xentrify/custom-pwnagotchi-plugins.git
.cd
in the folder.sudo cp <filename> /usr/local/share/pwnagotchi/custom-plugins/<filename>
.
Now you should be able to continue with configuring the plugins using the next section.Allows you to set up your own FTP Server and pwnagotchi client that cracks your handshakes automatically. You can follow the guide to set it up.
Windows
cd
into it.bin\openssl.exe req -new -x509 -days 365 -nodes -newkey rsa:2048 -out cert.pem -keyout key.pem
.Linux
openssl
and libssl-dev
using apt-get install openssl libssl-dev
.openssl req -new -x509 -days 365 -nodes -newkey rsa:2048 -out cert.pem -keyout key.pem
.Create a directory named remote_cracking
and copy the generated files cert.pem
and key.pem
to it.
Windows
pyftpdlib
and pyopenssl
using python -m pip install pyftpdlib pyopenssl
. Also install 7-Zip here.remote_cracking
directory (with the certificates).wordlists
and one named handshakes
.Linux
pyftpdlib
and pyopenssl
using python -m pip install pyftpdlib pyopenssl
.curl -O https://raw.githubusercontent.com/xentrify/custom-pwnagotchi-plugins/main/remote_cracking_server.py .
.sudo apt-get install hashcat
mv remote_cracking_server.py remote_cracking
.cd remote_cracking
.mkdir wordlists handshakes
. curl -O https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt wordlists
.Windows
python remote_cracking_server.py -d handshakes -c cert.pem -k key.pem -I hashcat-6.2.3/hashcat.exe -w wordlists -P yourpassword
Linux
sudo python remote_cracking_server.py -d handshakes -c cert.pem -k key.pem -I /usr/bin/hashcat -w wordlists -P yourpassword
Options (only for customization)
usage: server.py [-h] [-i INTERVAL] [-p PORT] [-U USER] -P PASSWORD -d DIRECTORY -c CERT -k KEY -I INTERPRETER -w WORDLISTS
options:
-h, --help show this help message and exit
-i INTERVAL, --interval INTERVAL
Interval between checking for new handshakes in seconds (default: 5)
Builtin FTP Server Settings:
-p PORT, --port PORT Port of the FTP server (default: port)
-U USER, --user USER Username of the FTP server (default: user)
-P PASSWORD, --password PASSWORD
Password of the FTP server (required due to safety)
-d DIRECTORY, --directory DIRECTORY
Directory of the FTP server
-c CERT, --cert-file CERT
Path to the cert file (required)
-k KEY, --key-file KEY
Path to the key file (required)
Cracking Settings:
-I INTERPRETER, --interpreter INTERPRETER
Interpreter of hashcat (required)
-w WORDLISTS, --wordlists WORDLISTS
Wordlist(s) used for cracking, can be one file or a directory (required)
Windows
Windows Defender
in your search bar and choose the option that ends in Advanced Security
. Inbound Rules
and New Rule
. Port
for type. TCP
and Specific local ports
. 49152-65534,8888
(Change this option if you've set a custom port).Allow the connection
and keep everything checked (Domain, Private and Public). Linux
Differs per distro. Alot of the times it is not needed.
Next up is setting up port forwarding in your router. This will allow it to be accessible outside your network.
To get started, look up your router's IP address. On Windows, open command prompt and run ipconfig
. Look for Default Gateway
.
For Linux, try running ip route show default
. Open the IP in your browser and log in. You can find the default login
online or on the back of your router. The next steps will only be the settings as configuring them will differ per router.
Just search for your router's manual and read the instructions. You will first have to set a static IP for your PC. After
this, forward 8888
(or your custom port) and the port range 49152-65534
.
Only continue if you have a dynamic IP.
1. Claim hostname
add domain
.2. Set up the updater
Windows
DuckSetup.exe
.Install Service
, wait until it's done and reboot.Linux
curl -fsSL get.docker.com | bash
docker run -d \
--name=duckdns \
-e SUBDOMAINS=<YOUR SUBDOMAIN> \
-e TOKEN=<YOUR TOKEN> \
--restart unless-stopped \
lscr.io/linuxserver/duckdns:latest
Other
Sometimes the FTP server is not accessible from the outside, you can use these tools to test it:
Required:
# INSTALLATION: https://github.com/PwnPeter/pwnagotchi-plugins#how-to-use
main.plugins.hashie-hcxpcapngtool.enabled = true
main.plugins.remote_cracking.enabled = true
main.plugins.remote_cracking.server = "123.456.789.123" # or somedomain.duckdns.org
main.plugins.remote_cracking.port = 8888
main.plugins.remote_cracking.user = "user"
main.plugins.remote_cracking.password = "Pwn4g0tchiL0L"
Optional:
main.plugins.remote_cracking.display_cracked = true # (default: true)
main.plugins.remote_cracking.potfile = "/root/remote_cracking.potfile" # (default: "/root/remote_cracking.potfile")
main.plugins.remote_cracking.orientation = "vertical" # (default: horizontal)
main.plugins.remote_cracking.position = "10,90"
Saves GPS coordinates whenever an handshake is captured. Uses your iPhone's GPS via website requests and Shortcuts.
For the location sending to work you will need a stable connection with your iPhone and pwnagotchi using bt-tether.
Required:
main.plugins.iphone_gps.enabled = true
Optional:
main.plugins.iphone_gps.use_last_loc = true # (default: false)
main.plugins.linespacing = 15 # (default: 10)
A plugin that handles everything after a handshake. AircrackOnly, Hashie, Quickdic, etc. All in one.
sudo apt-get -y install hcxtools
) (if hashie is enabled)sudo apt-get -y install aircrack-ng
)Required:
main.plugins.gps.enabled = true # GPSD can also be used, same for my iphone_gps plugin.
main.plugins.gps.device = "/dev/ttyUSB0"
main.plugins.gps.speed = 19200
main.plugins.aftershake.enabled = true
Optional:
main.plugins.aftershake.wordlist_folder = "/root/custom_folder/" # (default: "/root/wordlist_folder/")
main.plugins.aftershake.hashie = false # (default: true)
main.plugins.aftershake.face = "(>.O)" # (default: "(◕.◕)")
main.plugins.aftershake.orientation = "vertical" # (default: horizontal)
hashie-hcxpcapngtool
pluginquickdic
pluginaircrackonly
plugindisplay-password
pluginwpa-sec
pluginThis repository is licensed under the GPL 3 license.