Explorar el Código

Merge evil_portal from https://github.com/xMasterX/all-the-plugins

Willy-JL hace 2 años
padre
commit
5823b04346

+ 21 - 0
evil_portal/LICENSE.txt

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 bigbrodude6119
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 194 - 0
evil_portal/README.md

@@ -0,0 +1,194 @@
+# Flipper Zero Evil Portal
+
+An evil captive portal Wi-Fi access point using the Flipper Zero and Wi-Fi dev board
+
+## About
+
+**This project is a work in progress.**
+
+This project will turn your Wi-Fi dev board into an open access point. When users try to connect to this access point they will be served a fake login screen. User credentials are sent to the Flipper and logged on the SD card.
+
+## Disclaimer
+
+I am not a C developer and I am using this project as a way to learn more about esp32, flipper zero and, C programming.
+
+This program is for educational purposes only.
+
+## Getting Started
+
+There are pre-built .fap files for the official FW (untested) as well as unleashed FW (tested).
+
+You will need to manually flash the Wi-Fi dev board.
+
+### Install pre-built app on the flipper
+
+Go to the releases section on this repo and download and extract either the `ofw-evil_portal.fap.zip` file or the `unleashed-evil_portal.fap.zip` file depending on if you are using the official firmware (ofw) or the unleashed firmware. These files will contain the `evil_portal.fap` file for your firmware.
+
+You will also need to download and extract the `evil_portal_sd_folder.zip` folder. This will contain necessary files for the app to run.
+
+Put the `evil_portal.fap` file into the `apps/GPIO/` folder on your Flipper SD card.
+
+Put the `evil_portal` folder into the `apps_data` folder.
+This is an example of your Flipper SD card if done correctly.
+
+```
+apps/
+  GPIO/
+    evil_portal.fap
+apps_data/
+  evil_portal/
+    ap.config.txt
+    index.html
+    logs/
+      <empty>
+```
+
+You should be able to see the `[ESP32] Evil Portal` app on your flipper zero now.
+
+If you want to create your own `index.html` file keep in mind that there is a limit of 4000 characters for the file. I plan to increase this later but I ran into some issues with larger files.
+
+## Installing/flashing the Wi-Fi dev board
+
+If you've already flashed your Wi-Fi dev board with the Marauder firmware or something else you will need to erase it before installing the new firmware here. Follow [the guide here](#erasing-firmware) for that.
+
+Follow the steps below to flash the Wi-Fi dev board with the evil portal firmware via Windows. The instructions below are for the Flipper Zero Wi-Fi Wrover Development Module (**ESP32-S2**), you may have to adjust the steps for your specific board:
+
+1. Download and install the Arduino IDE from [here][link-arduino].
+2. Download zip/clone dependency [AsyncTCP][link-asynctcp] to file.
+3. Download zip/clone dependency [ESPAsyncWebServer][link-espasyncwebserver] to file.
+4. Unzip both dependencies to your Arduino library folder.
+   - On Windows this is usually `C:\Users\<username>\Documents\Arduino\libraries`.
+5. Go to the releases section on this repo and download the `EvilPortal.ino` file, open it with Arduino IDE.
+6. Go to `File > Preferences` and paste the following two URL's into the `Additional Boards Manager URLs` field:
+   ```
+   https://dl.espressif.com/dl/package_esp32_index.json
+   https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
+   ```
+7. Go to `Tools > Board > Boards Manager...` and search for `esp32` and install `esp32 by Espressif Systems`.
+8. Go to `Tools > Board` and select `ESP32S2 Dev Module`.
+9. On your ESP32-S2 Wi-Fi module, hold the BOOT button.
+10. Connect your ESP32-S2 to your computer, keep holding the BOOT button (holding for just 3-5 seconds and releasing may be fine, continuously holding worked better for me).
+11. Go to `Tools > Port` and select the port that appeared when you connected your ESP32-S2.
+12. Click the "Upload" button in the top left corner of the Arduino IDE.
+13. On success, you will see:
+    ```
+    Hash of data verified.
+    Leaving...
+    WARNING: ESP32-S2 (revision v0.0) chip was placed into download mode...
+    ```
+14. Plug in the Wi-Fi Dev board to the flipper, press the reset button on the Wi-Fi dev board and you should now see a solid blue light.
+
+## Installing/flashing an ESP32 Wroom board
+
+Reddit user dellycem [compiled binaries](https://old.reddit.com/r/flipperzero/comments/14ni93r/i_made_a_evil_portal_app_for_the_fz_wifi_dev_board/jqd42fi/?context=3) for the ESP32 Wroom board if you would like to use that instead of the Wi-Fi devboard.
+
+1. Download the bin files from [this link](https://wetransfer.com/downloads/4d3dd914f2df43dc6c84efa452043f4220230702094742/33a478)
+2. Go to [ESPWebTool](https://esp.huhn.me/) and get your board connected.
+3. Add each of the bin files at the following locations
+   ```
+   EvilPortal.bootloader.bin - 0x1000
+   EvilPortal.partitions.bin - 0x8000
+   boot_app0.bin - 0xe000
+   EvilPortal.bin - 0x10000
+   ```
+4. Press the program button and wait while your board is flashed.
+5. Once complete, hook up the 3.3v, GND, RX0, and TX0 pins to the flipper zero. Remember that the RX/TX pins should go to the opposite pins on the flipper zero. RX -> TX, TX -> RX.
+
+## Usage
+
+Plug in the Wi-Fi Dev board to the flipper.
+
+Open the app on the Flipper and press `Start portal` on the main menu. After a few seconds you should start to see logs coming in from your Wi-Fi dev board and the AP will start and the LED will turn green.
+
+The AP will take the name that is in the `ap.config.txt` file located on your Flipper in the `apps_data/evil_portal/` folder.
+
+When you connect to the AP a web page will open after a few seconds. This web page contains the HTML located in the `index.html` file located on your Flipper in the `apps_data/evil_portal/` folder.
+
+You can stop the portal by pressing `Stop portal` on the main menu. The LED should turn blue.
+
+You can manually save logs using the `Save logs` command. Logs will be stored in the `logs` folder that is in your `apps_data/evil_portal/` folder.
+
+Logs will automatically be saved when exiting the app or when the current log reaches 4000 characters.
+
+## Building for different firmware
+
+If you are not using the official flipper zero firmware or the unleashed firmware you can build the .fap file yourself by following [these instructions](https://github.com/flipperdevices/flipperzero-firmware/blob/dev/documentation/AppsOnSDCard.md).
+
+Note that you will need to use the firmware repo that you wish to build for.
+
+You can also download builds for each firmware via [flipc](https://flipc.org/bigbrodude6119/flipper-zero-evil-portal?branch=main&root=flipper%2Fflipper-evil-portal).
+
+## Erasing firmware <a name="erasing-firmware"></a>
+
+Assuming you have the Flipper Zero Wi-Fi Wrover Development Module (**ESP32-S2**):
+
+1. Install [Python][link-python].
+2. Open a command terminal as an administrator:
+   - On Windows press ⊞Win+R, type "cmd", and press CTRL+SHIFT+ENTER.
+3. In the terminal type the following to install [esptool][link-esptool] via Python package manager:
+   ```
+   pip install esptool
+   ```
+4. Install [setuptools][link-setuptools] dependencies:
+   ```
+   pip install setuptools
+   ```
+5. Enter the following command into your terminal, do not run it yet:
+   ```
+   python -m esptool --chip esp32s2 erase_flash
+   ```
+6. On your ESP32-S2 Wi-Fi module, hold the BOOT button.
+7. Connect your ESP32-S2 to your computer, keep holding the BOOT button.
+8. In your terminal press enter to run the command from step 5.
+9. When successful you will get the message `Chip erase completed successfully in ___s` (time in seconds suffixed with "s").
+10. Unplug/reset your board.
+
+## Issues
+
+If you run into any issues make sure that you have the required files set up on the Flipper `apps_data` folder on the Flipper SD card.
+
+Logs will not be saved if there is no `logs` folder in `apps_data/evil_portal/`.
+
+If the AP won't start or you have other issues try pressing reset on the Wi-Fi dev board, waiting a few seconds, and pressing `Start portal` on the main menu.
+
+It is important to give the devboard some time to load the html files from the Flipper.
+
+If you have the Marauder firmware on your dev board you may need to enable `Erase All Flash Before Sketch Upload` before flashing.
+
+Some users are reporting that the captive portal login does not open on some Android phones.
+
+## Todo
+
+I plan on working on this in my free time. Here is my todo list.
+
+- Support for multiple portals
+- Enter AP name on the Flipper
+- Add a config file for general app settings
+- Create cleaner log files that are easier to read
+- Clean up code & implement best practices
+
+## License
+
+Distributed under the MIT License. See `LICENSE.txt` for more information.
+
+## Acknowledgments
+
+I was only able to create this using the following apps as examples
+
+- [flipperzero-wifi-marauder](https://github.com/0xchocolate/flipperzero-wifi-marauder)
+- [UART_Terminal](https://github.com/cool4uma/UART_Terminal)
+- [flipper-zero-fap-boilerplate](https://github.com/leedave/flipper-zero-fap-boilerplate)
+- [Create Captive Portal Using ESP32](https://iotespresso.com/create-captive-portal-using-esp32/)
+
+## Contact me
+
+You can message me on my reddit account bigbrodude6119
+
+<!-- LINKS -->
+
+[link-arduino]: https://www.arduino.cc/en/software
+[link-asynctcp]: https://github.com/me-no-dev/AsyncTCP
+[link-espasyncwebserver]: https://github.com/me-no-dev/ESPAsyncWebServer
+[link-esptool]: https://pypi.org/project/esptool/
+[link-python]: https://www.python.org/downloads/
+[link-setuptools]: https://pypi.org/project/setuptools/

+ 1 - 6
evil_portal/scenes/evil_portal_scene_select_html.c

@@ -39,12 +39,7 @@ void evil_portal_scene_select_html_on_enter(void* context) {
         evil_portal_show_loading_popup(app, false);
         evil_portal_show_loading_popup(app, false);
     }
     }
 
 
-    if(success) {
-        scene_manager_search_and_switch_to_previous_scene(
-            app->scene_manager, Evil_PortalSceneStart);
-    } else {
-        scene_manager_previous_scene(app->scene_manager);
-    }
+    scene_manager_search_and_switch_to_previous_scene(app->scene_manager, Evil_PortalSceneStart);
 }
 }
 
 
 bool evil_portal_scene_select_html_on_event(void* context, SceneManagerEvent event) {
 bool evil_portal_scene_select_html_on_event(void* context, SceneManagerEvent event) {