From a35d55400792620582e71c6b81b69caa2eccec63 Mon Sep 17 00:00:00 2001 From: waxwing <katherine.snyder@socraticarts.com> Date: Sun, 6 Oct 2019 10:26:11 -0400 Subject: [PATCH 1/4] minor copyediting --- docs/configure.md | 56 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/docs/configure.md b/docs/configure.md index a7c251f..f85fd35 100644 --- a/docs/configure.md +++ b/docs/configure.md @@ -1,22 +1,26 @@ -# Connecting to your Pwnagotchi +# Configuration -Once you wrote the image file on the SD card, there're a few steps you'll have to follow in order to configure your unit properly. First, start with connecting the USB cable to the data port of the Raspberry Pi and the RPi to your computer. After a few seconds, the board will boot and you will see a new Ethernet interface on your host computer. +Once you've [written the image file onto the SD card](https://github.com/evilsocket/pwnagotchi/blob/master/docs/install.md#flashing-an-image), there're a few steps you'll have to follow in order to configure your new Pwnagotchi properly. -You'll need to configure it with a static IP address: +## Connect to your Pwnagotchi -- IP: `10.0.0.1` -- Netmask: `255.255.255.0` -- Gateway: `10.0.0.1` -- DNS (if required): `8.8.8.8` (or whatever) +1. First, start with connecting the USB cable to the data port of the Raspberry Pi and the RPi to your computer. +2. After a few seconds, the board will boot and you will see a new Ethernet interface on your host computer. +3. You'll need to configure it with a static IP address: -If everything's been configured properly, you will now be able to `ping` both `10.0.0.2` or `pwnagotchi.local` (if you haven't customized the hostname yet). + - IP: `10.0.0.1` + - Netmask: `255.255.255.0` + - Gateway: `10.0.0.1` + - DNS (if required): `8.8.8.8` (or whatever) -You can now connect to your unit using SSH: +4. If everything's been configured properly, you will now be able to `ping` both `10.0.0.2` or `pwnagotchi.local` (if you haven't customized the hostname yet—if you have named your unit already, this address will be *your unit's name* + `.local`). + +5. **Congratulations!** You can now connect to your unit using SSH: ```bash ssh pi@10.0.0.2 ``` - +##### About your SSH connection The default password is `raspberry`; you should change it as soon as you log in for the first time by issuing the `passwd` command and selecting a new and more complex passphrase. If you want to login directly without entering a password (recommended!), copy your SSH public key to the unit's authorized keys: @@ -25,13 +29,17 @@ If you want to login directly without entering a password (recommended!), copy y ssh-copy-id -i ~/.ssh/id_rsa.pub pi@10.0.0.2 ``` -## Configuration +## Give your Pwnagotchi a name -You can now set a new name for your unit by [changing the hostname](https://geek-university.com/raspberry-pi/change-raspberry-pis-hostname/). Create the `/root/custom.yml` file (either via SSH or by directly editing the SD card contents from a computer) that will override the [default configuration](https://github.com/evilsocket/pwnagotchi/blob/master/sdcard/rootfs/root/pwnagotchi/config.yml) with your custom values. +You can now set a new name for your unit by [changing the hostname](https://geek-university.com/raspberry-pi/change-raspberry-pis-hostname/)! -## Language Selection +Create the `/root/custom.yml` file (either via SSH or by directly editing the SD card contents from a computer) that will override the [default configuration](https://github.com/evilsocket/pwnagotchi/blob/master/sdcard/rootfs/root/pwnagotchi/config.yml) with your custom values. -Pwnagotchi displays its UI in English by default, but it can speak several other languages! You can change `main.lang` to one of the supported languages: +## Choose your Pwnagotchi's language + +Pwnagotchi displays its UI in English by default, but it can speak several other languages! If you're fine with English, you don't need to do anything special. + +But if you want, you can change `main.lang` to one of the supported languages: - **English** *(default)* - German @@ -45,14 +53,26 @@ Pwnagotchi displays its UI in English by default, but it can speak several other ## Display Selection -Set the type of display you want to use via `ui.display.type` (if your display does not work after changing this setting, you might need to completely remove power from the Raspberry and make a clean boot). +**Set the type of display you want to use via `ui.display.type`.** +If your display does not work after changing this setting, you might need to completely remove power from the Raspberry Pi and make a clean boot. -You can configure the refresh interval of the display via `ui.fps`. We recommend using a slow refresh rate to avoid shortening the lifetime of your e-ink display. The default value is `0`, which will *only* refresh when changes are made to the screen. +**You can configure the refresh interval of the display via `ui.fps`.** We recommend using a slow refresh rate to avoid shortening the lifetime of your e-ink display. The default value is `0`, which will *only* refresh when changes are made to the screen. ## Host Connection Share -If you connect to the unit via `usb0` (thus using the data port), you might want to use the `scripts/linux_connection_share.sh`, `scripts/macos_connection_share.sh` or `scripts/win_connection_share.ps1` script to bring the interface up on your end and share internet connectivity from another interface, so you can update the unit and generally download things from the internet on it. +Want to be able to update your Pwnagotchi and access things from the internet on it? *Sure you do!* + +1. Connect to the Pwnagotchi unit via `usb0` (A.K.A., using the data port). +2. Run the appropriate connection sharing script to bring the interface up on your end and share internet connectivity from another interface: + +OS | Script Location +------|--------------------------- +Linux | `scripts/linux_connection_share.sh` +Mac OS X | `scripts/macos_connection_share.sh` +Windows | `scripts/win_connection_share.ps1` ## Troubleshooting -If your network connection keeps flapping on your device connecting to your Pwnagotchi, check if `usb0` (or equivalent) device is being controlled by NetworkManager. You can check this via `nmcli dev status`. +##### If your network connection keeps flapping on your device connecting to your Pwnagotchi. +* Check if `usb0` (or equivalent) device is being controlled by NetworkManager. +* You can check this via `nmcli dev status`. From f9435a5ad2a45f4bb889c0ebbf8d3d284ab0c3cb Mon Sep 17 00:00:00 2001 From: waxwing <katherine.snyder@socraticarts.com> Date: Sun, 6 Oct 2019 10:31:34 -0400 Subject: [PATCH 2/4] minor copyediting --- docs/configure.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/configure.md b/docs/configure.md index f85fd35..b232e3e 100644 --- a/docs/configure.md +++ b/docs/configure.md @@ -7,13 +7,13 @@ Once you've [written the image file onto the SD card](https://github.com/evilsoc 1. First, start with connecting the USB cable to the data port of the Raspberry Pi and the RPi to your computer. 2. After a few seconds, the board will boot and you will see a new Ethernet interface on your host computer. 3. You'll need to configure it with a static IP address: + - IP: `10.0.0.1` + - Netmask: `255.255.255.0` + - Gateway: `10.0.0.1` + - DNS (if required): `8.8.8.8` (or whatever) - - IP: `10.0.0.1` - - Netmask: `255.255.255.0` - - Gateway: `10.0.0.1` - - DNS (if required): `8.8.8.8` (or whatever) - -4. If everything's been configured properly, you will now be able to `ping` both `10.0.0.2` or `pwnagotchi.local` (if you haven't customized the hostname yet—if you have named your unit already, this address will be *your unit's name* + `.local`). +4. If everything's been configured properly, you will now be able to `ping` both `10.0.0.2` or `pwnagotchi.local` + * If you have already customized the hostname of your Pwnagotchi, `pwnagotchi.local` won't work. Instead, try *your unit's hostname* + `.local`. 5. **Congratulations!** You can now connect to your unit using SSH: From 4dd7365cf58ba228d63757e77532411a8da29cd8 Mon Sep 17 00:00:00 2001 From: waxwing <katherine.snyder@socraticarts.com> Date: Sun, 6 Oct 2019 12:51:29 -0400 Subject: [PATCH 3/4] added UI diagram (will copyedit text later) --- docs/usage.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 8883cb7..fff0fb1 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -4,13 +4,16 @@ The UI is available either via display if installed, or via http://pwnagotchi.local:8080/ if you connect to the unit via `usb0` and set a static address on the network interface (change `pwnagotchi` with the hostname of your unit). - + * **CH**: Current channel the unit is operating on or `*` when hopping on all channels. * **APS**: Number of access points on the current channel and total visible access points. * **UP**: Time since the unit has been activated. * **PWND**: Number of handshakes captured in this session and number of unique networks we own at least one handshake of, from the beginning. -* **AUTO**: This indicates that the algorithm is running with AI disabled (or still loading), it disappears once the AI dependencies have been bootrapped and the neural network loaded. +* **MODE**: + * **AUTO:** This indicates that the Pwnagotchi algorithm is running in AUTOMATIC mode, with AI disabled (or still loading); it disappears once the AI dependencies have been bootstrapped and the neural network has finished loading. + * **MANU:** This appears when the unit is running in MANUAL mode. +* **FRIEND:** If another unit is nearby, its presence will be indicated here. If more than one unit is nearby, only one—whichever has the stronger signal strength—will be displayed. ## Training the AI From 5b1bf6dd4afe62354e8499048b09e4d8a88288a4 Mon Sep 17 00:00:00 2001 From: waxwing <katherine.snyder@socraticarts.com> Date: Sun, 6 Oct 2019 15:23:37 -0400 Subject: [PATCH 4/4] added UI anatomy diagram --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4fb4153..02b9506 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ [Pwnagotchi](https://twitter.com/pwnagotchi) is an [A2C](https://hackernoon.com/intuitive-rl-intro-to-advantage-actor-critic-a2c-4ff545978752)-based "AI" leveraging [bettercap](https://www.bettercap.org/) that learns from its surrounding WiFi environment in order to maximize the crackable WPA key material it captures (either passively, or by performing deauthentication and association attacks). This material is collected as PCAP files containing any form of handshake supported by [hashcat](https://hashcat.net/hashcat/), including [PMKIDs](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/), full and half WPA handshakes. - + Instead of merely playing [Super Mario or Atari games](https://becominghuman.ai/getting-mario-back-into-the-gym-setting-up-super-mario-bros-in-openais-gym-8e39a96c1e41?gi=c4b66c3d5ced) like most reinforcement learning based "AI" *(yawn)*, Pwnagotchi tunes [its own parameters](https://github.com/evilsocket/pwnagotchi/blob/master/sdcard/rootfs/root/pwnagotchi/config.yml#L54) over time to **get better at pwning WiFi things** in the environments you expose it to.