Skip to content

Commit 49d3ca1

Browse files
committed
Squashed 'evil_portal/' changes from 4d88320..1edaa67
1edaa67 do not reset 5v if it was enabled in gpio e3a8fd8 Update evil portal 479e7eb More updates REVERT: 4d88320 Added Selector for HTML Portals REVERT: 42b7ba9 Finished Rename feature REVERT: 5feacfb corrections REVERT: 4affc9f Unfinished, AP Rename feature REVERT: 7337adc removed whitespace REVERT: 8579a75 Revert "added dialogue for selecting a portal (#41)" (#42) REVERT: 790a75e added dialogue for selecting a portal (#41) REVERT: 51eaaa9 converted strcat to furi_string_cat() to allow compilation on officia… (#10) (#15) REVERT: a3d0ee1 Fix: continue logging when not in portal start scene (#8) REVERT: 4fb5f48 scroll to bottom of server output REVERT: 8faff60 formatting REVERT: 44c88a2 Updated missing HTML file error REVERT: 58f7840 Help screen formatting REVERT: 575ec38 changed spacing REVERT: 9799c6b added version to help command REVERT: 8d737c5 Updated html read error message REVERT: cd4f624 wipe logs once saved. don't log reset output. REVERT: 8e2487b free logs once written. Check length of logs. REVERT: 9c46c56 auto-create logs folder if not created REVERT: f431a06 added failsafe REVERT: 3ad4ae9 added readme REVERT: a8af822 added examples REVERT: 6988b2c clean up REVERT: de9e8d0 changed message REVERT: 20f4b6a added some const values REVERT: 2b618e2 removed var REVERT: e45e6b4 removed files REVERT: feccb92 removed files REVERT: 457fbb7 removed files REVERT: d6eb1e1 include fap git-subtree-dir: evil_portal git-subtree-split: 1edaa67
1 parent 4d88320 commit 49d3ca1

15 files changed

+916
-758
lines changed

LICENSE.txt

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

README.md

+194
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# Flipper Zero Evil Portal
2+
3+
An evil captive portal Wi-Fi access point using the Flipper Zero and Wi-Fi dev board
4+
5+
## About
6+
7+
**This project is a work in progress.**
8+
9+
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.
10+
11+
## Disclaimer
12+
13+
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.
14+
15+
This program is for educational purposes only.
16+
17+
## Getting Started
18+
19+
There are pre-built .fap files for the official FW (untested) as well as unleashed FW (tested).
20+
21+
You will need to manually flash the Wi-Fi dev board.
22+
23+
### Install pre-built app on the flipper
24+
25+
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.
26+
27+
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.
28+
29+
Put the `evil_portal.fap` file into the `apps/GPIO/` folder on your Flipper SD card.
30+
31+
Put the `evil_portal` folder into the `apps_data` folder.
32+
This is an example of your Flipper SD card if done correctly.
33+
34+
```
35+
apps/
36+
GPIO/
37+
evil_portal.fap
38+
apps_data/
39+
evil_portal/
40+
ap.config.txt
41+
index.html
42+
logs/
43+
<empty>
44+
```
45+
46+
You should be able to see the `[ESP32] Evil Portal` app on your flipper zero now.
47+
48+
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.
49+
50+
## Installing/flashing the Wi-Fi dev board
51+
52+
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.
53+
54+
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:
55+
56+
1. Download and install the Arduino IDE from [here][link-arduino].
57+
2. Download zip/clone dependency [AsyncTCP][link-asynctcp] to file.
58+
3. Download zip/clone dependency [ESPAsyncWebServer][link-espasyncwebserver] to file.
59+
4. Unzip both dependencies to your Arduino library folder.
60+
- On Windows this is usually `C:\Users\<username>\Documents\Arduino\libraries`.
61+
5. Go to the releases section on this repo and download the `EvilPortal.ino` file, open it with Arduino IDE.
62+
6. Go to `File > Preferences` and paste the following two URL's into the `Additional Boards Manager URLs` field:
63+
```
64+
https://dl.espressif.com/dl/package_esp32_index.json
65+
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
66+
```
67+
7. Go to `Tools > Board > Boards Manager...` and search for `esp32` and install `esp32 by Espressif Systems`.
68+
8. Go to `Tools > Board` and select `ESP32S2 Dev Module`.
69+
9. On your ESP32-S2 Wi-Fi module, hold the BOOT button.
70+
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).
71+
11. Go to `Tools > Port` and select the port that appeared when you connected your ESP32-S2.
72+
12. Click the "Upload" button in the top left corner of the Arduino IDE.
73+
13. On success, you will see:
74+
```
75+
Hash of data verified.
76+
Leaving...
77+
WARNING: ESP32-S2 (revision v0.0) chip was placed into download mode...
78+
```
79+
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.
80+
81+
## Installing/flashing an ESP32 Wroom board
82+
83+
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.
84+
85+
1. Download the bin files from [this link](https://wetransfer.com/downloads/4d3dd914f2df43dc6c84efa452043f4220230702094742/33a478)
86+
2. Go to [ESPWebTool](https://esp.huhn.me/) and get your board connected.
87+
3. Add each of the bin files at the following locations
88+
```
89+
EvilPortal.bootloader.bin - 0x1000
90+
EvilPortal.partitions.bin - 0x8000
91+
boot_app0.bin - 0xe000
92+
EvilPortal.bin - 0x10000
93+
```
94+
4. Press the program button and wait while your board is flashed.
95+
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.
96+
97+
## Usage
98+
99+
Plug in the Wi-Fi Dev board to the flipper.
100+
101+
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.
102+
103+
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.
104+
105+
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.
106+
107+
You can stop the portal by pressing `Stop portal` on the main menu. The LED should turn blue.
108+
109+
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.
110+
111+
Logs will automatically be saved when exiting the app or when the current log reaches 4000 characters.
112+
113+
## Building for different firmware
114+
115+
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).
116+
117+
Note that you will need to use the firmware repo that you wish to build for.
118+
119+
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).
120+
121+
## Erasing firmware <a name="erasing-firmware"></a>
122+
123+
Assuming you have the Flipper Zero Wi-Fi Wrover Development Module (**ESP32-S2**):
124+
125+
1. Install [Python][link-python].
126+
2. Open a command terminal as an administrator:
127+
- On Windows press ⊞Win+R, type "cmd", and press CTRL+SHIFT+ENTER.
128+
3. In the terminal type the following to install [esptool][link-esptool] via Python package manager:
129+
```
130+
pip install esptool
131+
```
132+
4. Install [setuptools][link-setuptools] dependencies:
133+
```
134+
pip install setuptools
135+
```
136+
5. Enter the following command into your terminal, do not run it yet:
137+
```
138+
python -m esptool --chip esp32s2 erase_flash
139+
```
140+
6. On your ESP32-S2 Wi-Fi module, hold the BOOT button.
141+
7. Connect your ESP32-S2 to your computer, keep holding the BOOT button.
142+
8. In your terminal press enter to run the command from step 5.
143+
9. When successful you will get the message `Chip erase completed successfully in ___s` (time in seconds suffixed with "s").
144+
10. Unplug/reset your board.
145+
146+
## Issues
147+
148+
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.
149+
150+
Logs will not be saved if there is no `logs` folder in `apps_data/evil_portal/`.
151+
152+
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.
153+
154+
It is important to give the devboard some time to load the html files from the Flipper.
155+
156+
If you have the Marauder firmware on your dev board you may need to enable `Erase All Flash Before Sketch Upload` before flashing.
157+
158+
Some users are reporting that the captive portal login does not open on some Android phones.
159+
160+
## Todo
161+
162+
I plan on working on this in my free time. Here is my todo list.
163+
164+
- Support for multiple portals
165+
- Enter AP name on the Flipper
166+
- Add a config file for general app settings
167+
- Create cleaner log files that are easier to read
168+
- Clean up code & implement best practices
169+
170+
## License
171+
172+
Distributed under the MIT License. See `LICENSE.txt` for more information.
173+
174+
## Acknowledgments
175+
176+
I was only able to create this using the following apps as examples
177+
178+
- [flipperzero-wifi-marauder](https://github.com/0xchocolate/flipperzero-wifi-marauder)
179+
- [UART_Terminal](https://github.com/cool4uma/UART_Terminal)
180+
- [flipper-zero-fap-boilerplate](https://github.com/leedave/flipper-zero-fap-boilerplate)
181+
- [Create Captive Portal Using ESP32](https://iotespresso.com/create-captive-portal-using-esp32/)
182+
183+
## Contact me
184+
185+
You can message me on my reddit account bigbrodude6119
186+
187+
<!-- LINKS -->
188+
189+
[link-arduino]: https://www.arduino.cc/en/software
190+
[link-asynctcp]: https://github.com/me-no-dev/AsyncTCP
191+
[link-espasyncwebserver]: https://github.com/me-no-dev/ESPAsyncWebServer
192+
[link-esptool]: https://pypi.org/project/esptool/
193+
[link-python]: https://www.python.org/downloads/
194+
[link-setuptools]: https://pypi.org/project/setuptools/

0 commit comments

Comments
 (0)