Skip to content
This repository has been archived by the owner on Aug 23, 2024. It is now read-only.

Commit

Permalink
Merge pull request #116 from Pwnagotchi-Unofficial/development
Browse files Browse the repository at this point in the history
md changes
  • Loading branch information
dj1ch authored May 22, 2024
2 parents 936e1b5 + d0a1826 commit 1331dd9
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 25 deletions.
15 changes: 10 additions & 5 deletions FACES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Faces

The Minigotchi has multiple faces, similar to that of the Pwnagotchi. I tried my best here to adhere to how emotions were handled with the Pwnagotchi. It doesn't exactly have an emotion set using a setting, rather having the emotion being shown to the user. It might be best to have the emotion set to a variable, although this will be done later.
The Minigotchi has multiple faces, similar to that of the Pwnagotchi. I tried my best here to adhere to how emotions were handled with the Pwnagotchi. It doesn't exactly have an emotion set using a setting, but rather having the emotion being shown to the user.

### (^-^) Happy

Expand All @@ -10,12 +10,17 @@ The Minigotchi has multiple faces, similar to that of the Pwnagotchi. I tried my
### (;-;) Sad

- can't find a Pwnagotchi
- can't find any AP's
- can't find any APs

### (X-X) Broken

- error while the program was running has occured
- usually an error will be provided, or it will literally tell you what the issue is
- An error while the program was running has occurred
- Usually, an error will be provided, or it will tell you what the issue is

```
(X-X) An error has occurred!
(X-X) <The actual error here>
```

### (>-<) Intense

Expand All @@ -25,7 +30,7 @@ The Minigotchi has multiple faces, similar to that of the Pwnagotchi. I tried my

### (0-o) (o-0) Looking around

- looking for a Pwnagotchi, scanning for AP's
- looking for a Pwnagotchi, scanning for APs

### ('-') Neutral

Expand Down
34 changes: 18 additions & 16 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Install guide

Here you can find out how to install minigotchi on the ESP8266. Installing on the Pico is not possible as the code is meant for the ESP8266.
Here you can find out how to install Minigotchi on the ESP8266. Installing on the Pico is not possible as the code is meant for the ESP8266.

**For building on an ESP32, see [this](https://github.com/Pwnagotchi-Unofficial/minigotchi-ESP32/blob/development/INSTALL.md). Don't use this repository for the ESP32.**

Expand All @@ -25,14 +25,14 @@ bool Config::advertise = true;

From here, you can turn off deauthing or advertising. Since this is the main feature of the minigotchi, I highly recommend you don't turn either of these off.

- After that, there should be a line that states the buad rate.
- After that, there should be a line that states the baud rate.

```cpp
// baud rate
int Config::baud = 115200;
```

Here, you can adjust the baud rate, which is of course optional. Make sure your serial terminal is running at the same buad rate as the minigotchi.
Here, you can adjust the baud rate, which is of course optional. Make sure your serial terminal is running at the same baud rate as the Minigotchi.

- Here, we can adjust the BSSID we listen on, and the channel we start on.

Expand All @@ -42,9 +42,9 @@ std::string Config::bssid = "fo:od:ba:be:fo:od"; // note: this used to be const*
int Config::channel = 1;
```

Replace the `"fo:od:ba:be:fo:od"` with your actual BSSID(in the quotations), and the `1` with the channel you prefer(not in quotations). Note that the WiFi network you're listening on should be on a specific WiFi channel anyway, each AP is on a specific one. The BSSID in question should be one of your own, assuming the pwnagotchi is in your home it should be able to associate to your home WiFi network.
Replace the `"fo:od:ba:be:fo:od"` with your actual BSSID(in the quotations), and the `1` with the channel you prefer(not in quotations). Note that the WiFi network you're listening on should be on a specific WiFi channel anyway, each AP is on a specific one. The BSSID in question should be one of your own, assuming the Pwnagotchi is in your home it should be able to associate with your home WiFi network.

- After this, we can configure our screen (Not in 3.0.1)
- After this, we can configure our screen (Not in any version `> 3.0.1`)

```cpp
// screen configuration
Expand All @@ -58,16 +58,18 @@ There are two different screen types available:

- `WEMOS_OLED_SHIELD`

Set `bool Config::display = false;` to true, and `std::string Config::screen = "<YOUR_SCREEN_TYPE>";` to one of those screen types if your screen is supported.
Set `bool Config::display = false;` to true, and `std::string Config::screen = "<YOUR_SCREEN_TYPE>";` to one of those screen types if your screen is supported.

**Keep in mind when you do enable a screen you are at a higher risk of your Minigotchi crashing...**

- There should also be a line that says:

```cpp
// define whitelist
std::string Config::whitelist[] = {"fo:od:ba:be:fo:od", "fo:od:ba:be:fo:od", "fo:od:ba:be:fo:od"};
std::string Config::whitelist[] = {"SSID", "SSID", "SSID"};
```
This defines our whitelist. The minigotchi will not deauth these access points. We can have up to ten values here. Three were added as an example, you can remove those.
This defines our whitelist. The Minigotchi will not deauth these access points/any networks corresponding to that access point name. We can have up to ten values here. Three were added as an example, you can remove those.
- Here, we set the channels we hop from time to time.
Expand All @@ -76,21 +78,21 @@ This defines our whitelist. The minigotchi will not deauth these access points.
int Config::channels[13] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
```

Usually this shouldn't be changed as these are the best channels for IOT boards such as an ESP8266.
Usually, this shouldn't be changed as these are the only channels we can access on the ESP8266.

- Save and exit the file when you have configured everything to your liking. Note you cannot change this after this is flashed onto the board.
- Save and exit the file when you have configured everything to your liking. Note you cannot change this after it is flashed onto the board.

### Step 2: Building and flashing

- Download the [Arduino IDE](https://https://www.arduino.cc/en/software), preferably the latest version.

- In the IDE, go to `File` > `Preferences`, then in the `Additional board manager URLS`, paste the link `https://arduino.esp8266.com/stable/package_esp8266com_index.json` to add the ESP8266 board(s) to the board manager

- Click `Ok` and plug the board into your computer. It should blink, make sure it is receiving the correct amount of voltage, too much will burn it(I learned that the hard way)
- Click `Ok` and plug the board into your computer. It should blink, and make sure it is receiving the correct amount of voltage, too much will burn it(I learned that the hard way)

- Open up the minigotchi folder through the IDE by pushing `Ctrl+O`, or by going to `File` > `Open`, then selecting the folder the .ino is in. If other tabs don't show up, along with `minigotchi.ino`, make sure to copy and paste the files into the same directory/folder as that lone `.ino` file. It won't be able to compile if that happens.
- Open up the Minigotchi folder through the IDE by pushing `Ctrl+O`, or by going to `File` > `Open`, then selecting the folder the .ino is in. If other tabs don't show up, along with `minigotchi.ino`, make sure to copy and paste the files into the same directory/folder as that lone `.ino` file. It won't be able to compile if that happens.

- Install the following dependancies with the library manager: `ArduinoJson`, `Adafruit GFX`, `Adafruit SSD1306 Wemos Mini OLED`, etc with all with their dependancies (Please install all of them for them to work correctly).
- Install the following dependencies with the library manager: `ArduinoJson`, `Adafruit GFX`, `Adafruit SSD1306 Wemos Mini OLED`, etc with all their dependencies (Please install all of them for them to work correctly).

- Select the board as `ESP8266 WEMOS(LOLIN) D1 mini Lite`, and select the port it is plugged into(if you haven't already, plug in the board)
- Click on the upload button(arrow pointing to the left).
Expand All @@ -99,17 +101,17 @@ Usually this shouldn't be changed as these are the best channels for IOT boards

- Go to `Sketch` > `Export Compiled Binary` to generate a `.bin` file to flash to the board, which also works. This can also be done with `Alt+Ctrl+S`.

**Note: if you get any errors, let me know ASAP with a github issue, sending me a discord message, or perhaps even messaging me through my portfolio site.**
**Note: if you get any errors, let me know ASAP with a GitHub issue, sending me a discord message, or perhaps even messaging me through my portfolio site.**

### Step 3: Post Install

- You can click on the *Serial Monitor* button on the top bar to see the serial monitor output. Make sure the baud rate is `115200`. You can also use https://serial.huhn.me/ as a serial monitor, I also recommend using this!
- You can click the *Serial Monitor* button on the top bar to see the serial monitor output. Make sure the baud rate is `115200`. You can also use https://serial.huhn.me/ as a serial monitor, I also recommend using this!

- I also highly recommend doing the following:

1. Disabling AI on your Pwnagotchi so you can change your settings without AI changing them.

2. Setting `personality.channels[]` to the channels `1`, `6`, `11` so that your Minigotchi has a higher chance of finding your Pwnagotchi.
2. Setting `personality.channels[]` in your Pwnagotchi's `/etc/pwnagotchi/config.toml` to match your `Config::channels[13]` so that your Minigotchi has a higher chance of finding your Pwnagotchi.

- Happy hacking!

Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@

### Intro

This is a project meant to showcase the use of low-level Wi-Fi frame manipulation in a *Pwnagotchi-like* matter with an ESP8266/ESP32. It can detect *Pwnagotchis*, and send "advertisements" for another *Pwnagotchi* to detect, along with deauthenticating devices connected to an AP. Originally meant to just befriend a local Pwnagotchi, I plan to improve it and extend its purpose, merely with an ESP8266 with 4 MB of memory.
This is a project meant to showcase the use of low-level Wi-Fi frame manipulation in a *Pwnagotchi-like* matter with an ESP8266/ESP32. This firmware is designed with simplicity just as much as similarity to the Pwnagotchi, promoting configuration reusability, low(er) memory usage, and a *little bit* of mischief.

The Minigotchi can detect *Pwnagotchis*, and send "advertisements" for another *Pwnagotchi* to detect, along with deauthenticating devices connected to an AP. Originally meant to just befriend a local Pwnagotchi, I plan to improve it and extend its purpose, merely with an ESP8266 with 4 MB of memory.

### Install guide

Expand Down Expand Up @@ -69,9 +71,9 @@ See the [wiki](https://github.com/Pwnagotchi-Unofficial/minigotchi/wiki/Communic

- [Arduino](https://github.com/esp8266/Arduino), mostly just the repository containing libraries for the project so I can build this code. Many libraries were used in this core repository.

- [80211Raw](https://github.com/tht/80211Raw) allows raw arbritary frames to be received and sent through an ESP8266 or ESP32 using C and C++ in an interesting and useful POC. This was used to send the *Pwnagotchi-like* frames. Most of the previous releases used this library, but now not anymore.
- [80211Raw](https://github.com/tht/80211Raw) allows raw arbitrary frames to be received and sent through an ESP8266 or ESP32 using C and C++ in an interesting and useful POC. This was used to send the *Pwnagotchi-like* frames. Most of the previous releases used this library, but now not anymore.

- [ESP8266 Deauther](https://github.com/SpacehuhnTech/esp8266_deauther/), the POC that shows that an ESP8266 can deauth and attack local access points. Deauthing is based on this project and is done in a very similar fashion. Not only that, but it can also send probes and create fake AP's.
- [ESP8266 Deauther](https://github.com/SpacehuhnTech/esp8266_deauther/), the POC that shows that an ESP8266 can deauth and attack local access points. Deauthing is based on this project and is done in a very similar fashion. Not only that, but it can also send probes and create fake APs.

- [ESP32 Marauder](https://github.com/justcallmekoko/ESP32Marauder), similar to the ESP8266 Deauther, although packed with more features and support for Flipper Zero's ESP32 WiFi Card Module. It has wardriving capabilities, BLE, Pwnagotchi Scanning, and Deauthing available. This is a very cool project, I highly recommend checking this out if you have an ESP32.

Expand Down
5 changes: 4 additions & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

When it comes to installing any version of the project, I highly recommend you install the latest version available. Anything version under or equal to `1.1.1-beta` is going to have some sort of issue whether it be compile errors or not functioning as expected. Keep in mind configuration is different between x.0.0 releases!

Proper C/C++ practices are implemented more often in higher releases, with better performance and speed, and a lower chance of memory issues upon encountering something unexpected.

| Version | Supported |
| ------- | ------------------ |
| < 2.0.0-beta | :white_check_mark: Works |
| < 3.0.0-beta | :white_check_mark: Recommended! |
| < 2.0.0-beta | :white_check_mark: Works... |
| 1.3.0-beta | :white_check_mark: Not recommended! |
| 1.2.0-beta | :white_check_mark: Not recommended! |
| =< 1.1.1-beta | :x: Broken... |
Expand Down

0 comments on commit 1331dd9

Please sign in to comment.