AI prompts
base on A simple and easy way to find Flipper Zero Devices and Bluetooth Low Energy Based Attacks <p align="center">
<img src="https://github.com/K3YOMI/Wall-of-Flippers/assets/54733885/b524372d-17ef-4e2a-b6fb-ab4fccaaa643" alt="Wall of Flippers"></a>
</p>
<h1 style='font-size: 65px'; align="center">Wall of Flippers</h1>
<div align="center">
<p align = "center">🐬 A simple and easy way to find Flipper Zero Devices and Bluetooth Low Energy Based Attacks 🐬</p>
<p align = "center">🐬 Documentation written by @k3yomi 🐬</p>
<div align="center" style="border: none;">
<table align="center" style="border-collapse: collapse; margin: 0 auto;">
<tr align="center">
<td align="center">
<a href="https://ko-fi.com/k3yomi" style="text-decoration: none;">
<img align="center" src='https://avatars.githubusercontent.com/u/54733885?s=55&v=4' width="55" height="55">
<img align="center" src='https://ko-fi.com/img/githubbutton_sm.svg'>
</a>
<h3 align="center">k3yomi (Project Maintainer)</h3>
</td>
<td align="center">
<a href="https://ko-fi.com/jbohack" style="text-decoration: none;">
<img align="center" src='https://github.com/user-attachments/assets/f5f0ea5e-0a72-484b-a4b5-300cecafd14d' width="55" height="55", style="border-radius: 50%;">
<img align="center" src='https://ko-fi.com/img/githubbutton_sm.svg'>
</a>
<h3 align="center">Jbohack (Contributor)</h3>
</td>
</tr>
</table>
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/K3YOMI/Wall-of-Flippers">
<img alt="GitHub forks" src="https://img.shields.io/github/forks/K3YOMI/Wall-of-Flippers">
<img alt="GitHub issues" src="https://img.shields.io/github/issues/K3YOMI/Wall-of-Flippers">
<img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/K3YOMI/Wall-of-Flippers">
<a href="https://discord.gg/Bg2fvmjQvg" style="text-decoration: none;">
<img src="https://discord.com/api/guilds/1190160512953094235/widget.png?style=shield" alt="Discord Shield"/>
</a>
</div>
</div>
---
<h1>🐬 Table of Contents</h1>
<div>
<img align="right" height="490vh" src="https://github.com/user-attachments/assets/c4d3225b-15de-4983-8343-39adef19b0b2">
<img align="right" height="490vh" src="https://upload.wikimedia.org/wikipedia/commons/3/3d/1_120_transparent.png">
</div>
- [Introduction](#doc_introduction)
- [Features](#doc_features)
- [Videos](#doc_videos)
- [Install Guide](#doc_install)
- [How to install](#install_guides)
- [Debian Linux Install](#debian_install)
- [Fedora Install](#fedora_install)
- [Arch Linux Install (SOON)](#arch_install)
- [Windows Install](#windows_install)
- [Headless Usage](#headless_usage)
- [Issues and Fixes](#doc_issues_and_fixes)
- [Common Errors and Fixes](#doc_c_and_e)
- [Related Projects](#doc_related)
- [Notice](#doc_statement)
<br><br>
# 🐬 Wall of Flippers? <a name = "doc_introduction"></a>
> Wall of Flippers (WoF) is a python based project involving the discovery of the Flipper Zero device and the identification of potential Bluetooth advertisement attacks. Please keep in mind that these two types of detections may **not** be related. Feel free to submit pull requests if you would like to contribute!
# 🐬 Current features and future updates <a name = "doc_features"></a>
- [x] Discover Flipper Zero Devices (Bluetooth must be enabled)
- [X] Flipper Name Discovery
- [X] Flipper Address Discovery
- [X] Flipper "Identifier" Discovery ( Transparent, White, & Black Flipper Detection)
- [ ] Spoof Detection (Coming Soon)
- [x] Ability to archive past flipper zero devices discovered
- [x] Auto-install functionality for Debian Linux and Windows
- [x] Ability to identify potential Bluetooth Advertisement attacks
- [x] Suspected Advertisement Attacks
- [x] ~iOS Crash Advertisement Attack~
- [x] iOS Popup Advertisement Attacks
- [x] Samsung and Android BLE Advertisement Attacks
- [x] Windows Swift Pair Advertisement Attacks
- [x] LoveSpouse Advertisement Attacks (Denial of Pleasure)
- [x] BT Settings Flood
- [x] Bluetooth Remote Detection
- [x] BLE Advertiser (Detect other WoF Instances)
- [x] Custom Name Implementation
- [x] BLE Chat
- [x] Badge Mode (Less fancy stats)
- [x] BLE External / Internal Adapter Support
- [x] Linux Supported
- [ ] Windows Supported
- [x] Ratelimiting (New Connections)
- [x] Linux Supported
- [x] Windows Supported (Limited)
- [ ] Chromium Web Bluetooth Support
- [ ] iOS/Android Detection (Pairing)
- [ ] Animations (Looking for ascii artists)
# 🐬 Articles <a name = "doc_videos"></a>
<table align="center" style="border-collapse: collapse; margin: 0 auto;">
<tr align="center">
<td align="center">
<a href="https://www.youtube.com/watch?v=Pnw-uqd0GFM" style="text-decoration: none;">
<img align="center" src='https://i.ytimg.com/vi/Pnw-uqd0GFM/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDEjuLtwBo0n-zRWhAKep7Raon5_Q' width="225" height="155">
</a>
<h3 align="center">Talking Sasquach - Wall of Flippers Busts Flipper Zero BLE Spammers Red Handed!</h3>
</td>
<!---
Secret funny message: DD91Ongfy3xfw2sswX55y3FfATopOnonOn5ewX55y3FfySokynxfyT9h
Idk, I heard this was base64 but with a twist :3
Now go on a scavenger hunt and you'll find the hidden message
This will not only help you understand the details, but it will provide you a lot of context. Idk what im saying. lol
--->
<td align="center">
<a href="https://www.bleepingcomputer.com/news/security/wall-of-flippers-detects-flipper-zero-bluetooth-spam-attacks/" style="text-decoration: none;">
<img align="center" src='https://www.bleepstatic.com/content/hl-images/2023/01/03/flipper-zero.jpg' width="225" height="155", style="border-radius: 50%;">
</a>
<h3 align="center">BleepingComputer - ‘Wall of Flippers’ detects Flipper Zero Bluetooth spam attacks</h3>
</td>
</tr>
</table>
# 🐬 Installing and Requirements <a name = "doc_install"></a>
> A few things are required to properly run Wall of Flippers. We Recommend a Raspberry Pi as it's compact and portable! It's also required to have a `chipset` or a USB `adapter` that supports Bluetooth Low Energy. At this current time, there is `limited` support for Wall of Flippers on Windows. Hence we recommend using a linux based operating system as that has been used for testing and development. For BLE advertising, I recommened an external USB adapter as the internal ble on the Raspberry Pi is not powerful enough to send BLE advertisements long range.
## How to install <a name = "install_guides"></a>
</details>
<details>
<summary> Debian Linux Install Guide </summary>
### Debian Linux Install Guide <a name = "debian_install"></a>
> Wall of Flippers on debian linux is currently one of the best ways to run Wall of Flippers. Mostly due to it being stable and having a lot of support for BTLE. To start off, is is highly recommened to follow all instructions we provide unless you know what you are doing. To get started, we need to set up the directory and install the required packages.
### Step 1 (One): Full system upgrade / update
> Before we continue with the installation, we need to make sure our system is up to date. To do this update through the command line.
sudo apt-get update && sudo apt-get upgrade -y
### Step 2 (Two): Git Clone and Git Installiation
> To start off, we need to clone the repository and install the required packages. To do this, we need to run the following commands in the terminal. However, if you do not have git installed, you can simply install it by running this command (apt package manager only):
sudo apt-get install git
git clone https://www.github.com/K3YOMI/Wall-of-Flippers
cd ./Wall-of-Flippers
### Step 3 (Three): Installing python (python3)
> Installing python3 is required to run wall of flippers and installs it's dependencies. The command below will install python3 for you.
sudo apt-get install python3
sudo apt-get install python3-dev
### Step 4 (Four): Setting up and Installing the required packages (Multiple Ways)
> Installing the required packets and dependencies can be done in three ways with this install. You can choose to use the terminal with the commands below, use requirements.txt, or you use the easy install script within Wall of Flippers. The choice is up to you depending on your preference. To get started with the terminal way. We will use these commands below.
sudo apt-get install libglib2.0-dev
sudo apt-get install python3-bluez
python3 -m venv .venv
source .venv/bin/activate
################## PACKAGES ########################
# requirement.txt method
python3 -m pip install -r requirements.txt
# command method
python3 -m pip install bluepy
python3 -m pip install git+https://github.com/pybluez/pybluez.git#egg=pybluez
################## PACKAGES ########################
deactivate
> If you would like to use the easy install script, you can use the following commands below.
bash wof.sh
# You should get a prompt upon startup, about setting up a managed environment, feel free to let it do for you. Then once an environemnet is complete run `wof.sh` again
and use the auto install option to install the dependencies.
### Step 5 (Five): Running Wall of Flippers
> Once you have finished with all the dependencies and requirements, you can now run Wall of Flippers. To do this, you can run the following command below.
bash wof.sh
> Please keep note that running Wall of Flippers requires elevated privileges. Hence the `sudo` command. If you do not want to run Wall of Flippers with elevated privileges, you can run the following command below.
sudo chmod +x WallofFlippers.py
./WallofFlippers.py
</details>
<details>
<summary> Fedora Linux Install Guide </summary>
### Fedora Install Guide <a name = "fedora_install"></a>
> To start off, is is highly recommened to follow all instructions we provide unless you know what you are doing. To get started, we need to set up the directory and install the required packages.
### Step 1 (One): Full system upgrade / update
> Before we continue with the installation, we need to make sure our system is up to date. To do this update through the command line.
sudo dnf update && sudo dnf upgrade -y
### Step 2 (Two): Git Clone and Git Installiation
> To start off, we need to clone the repository and install the required packages. To do this, we need to run the following commands in the terminal. However, if you do not have git installed, you can simply install it by running this command (apt package manager only):
sudo dnf install git
git clone https://www.github.com/K3YOMI/Wall-of-Flippers
cd ./Wall-of-Flippers
### Step 3 (Three): Installing python (python3)
> Installing python3 is required to run wall of flippers and installs it's dependencies. The command below will install python3 for you.
sudo dnf install python3
sudo dnf install python3-dev
### Step 4 (Four): Setting up and Installing the required packages (Multiple Ways)
> Installing the required packets and dependencies can be done in three ways with this install. You can choose to use the terminal with the commands below, use requirements.txt, or you use the easy install script within Wall of Flippers. The choice is up to you depending on your preference. To get started with the terminal way. We will use these commands below.
sudo dnf install glib2-devel
sudo dnf install python3-bluez
python3 -m venv .venv
source .venv/bin/activate
################## PACKAGES ########################
# requirement.txt method
python3 -m pip install -r requirements.txt
# command method
python3 -m pip install bluepy
python3 -m pip install git+https://github.com/pybluez/pybluez.git#egg=pybluez
################## PACKAGES ########################
deactivate
> If you would like to use the easy install script, you can use the following commands below.
bash wof.sh
# You should get a prompt upon startup, about setting up a managed environment, feel free to let it do for you. Then once an environemnet is complete run `wof.sh` again
and use the auto install option to install the dependencies.
### Step 5 (Five): Running Wall of Flippers
> Once you have finished with all the dependencies and requirements, you can now run Wall of Flippers. To do this, you can run the following command below.
bash wof.sh
> Please keep note that running Wall of Flippers requires elevated privileges. Hence the `sudo` command. If you do not want to run Wall of Flippers with elevated privileges, you can run the following command below.
sudo chmod +x WallofFlippers.py
./WallofFlippers.py
</details>
<details>
<summary> Windows Install Guide </summary>
## Windows Install Guide <a name = "windows_install"></a>
> Windows is currently not fully supported. However, you can still run Wall of Flippers on Windows. A few missing features like the ability to detect advertisement attacks and ability to send advertisements. You also miss out on validation features to ensure that you won't have spoofed flipper data. However the detection of the Flipper Zero device is still supported. To get started, we will need to clone the repository and install the required packages. To do this, we need to run the following commands in the command prompt. However, if you do not have git installed, you can simply install it by downloading it from the official website.
### Step 1 (One): Git Clone and Git Installiation
Download Link: https://git-scm.com/downloads
> Once you have downloaded git, you can now run the following commands below.
git clone https://www.github.com/K3YOMI/Wall-of-Flippers
cd ./Wall-of-Flippers
### Step 2 (Two): Installing python and pip (python / pip)
> This step is quite straightforward as we will be installing python and pip. To do this, we will need to download the latest version of python from the official website. Once you have downloaded the installer, you can run it and install python. Please make sure to check the box that says `Add Python to PATH`. This will allow you to run python from the command prompt. Once you have installed python, you can now install the required packages.
Download Link: https://www.python.org/downloads/
> Once you have installed python, you can now install the required packages. To do this, we will need to run the following commands below.
pip install bleak
> Alternatively, you can use the requirements.txt file to install the required packages. To do this, we will need to run the following commands below.
pip install -r requirements.txt
> If you would like to use the easy install script, you can use the following commands below.
python WallofFlippers.py
# You should get a prompt upon startup, use the auto install option to install the dependencies. for the easy install and follow the directions and prompts for the install.
> If you are having issues with pip being not recognized as a command, please refer to this question below:\
https://stackoverflow.com/questions/23708898/pip-is-not-recognized-as-an-internal-or-external-command
### Step 3 (Three): Running Wall of Flippers
> Once you have finished with all the dependencies and requirements, you can now run Wall of Flippers. To do this, you can run the following command below.
python WallofFlippers.py
> Please keep note that this is a watered down version of Wall of Flippers. Hence the lack of features. If you would like to run the full version of Wall of Flippers, please refer to the Linux Install Guide above.
</details>
# Headless Usage <a name = "headless_usage"></a>
> Wall of Flippers now supports the use of a command only interface. Thanks to @cyberartemio for the recommendation. The commands below can be used to automate the use the Wall of Flippers. Whether that be for systemd or just basic general automation. (If you are running/using a virtual environment, make sure to source to be able to use WallofFlippers.py)
usage: WalloFlippers.py [-h] [-w] [i] [-d DEVICE]
options:
-h, --help Help Message
-w, --wall Wall of Flippers
-i, --install Install Dependencies
-b, --badgemode Toggle Badge Mode
-a, --advertise Advertise WoF Exsistance (OFF=Default)
-d DEVICE, --device DEVICE A bluetooth device (External/Internal)
# Issues and Fixes <a name = "doc_issues_and_fixes"></a>
> If you encounter any issues or bugs, please report them to us on our github page. We will try our best to fix them as soon as possible. If you would like to contribute to the project, please feel free to make a pull request. We will review it and merge it if it is a good addition to the project. We will be starting a discord server soon for support and development. Please keep an eye out for that. Thank you for your support and we hope you enjoy this project! <3
# Common Errors and Fixes <a name = "doc_c_and_e"></a>
### No such file or directory /sys/class/bluetooth
> If the `/sys/class/bluetooth` directory is not present on your system, it may indicate that the Bluetooth subsystem is not properly detected or enabled. To check if you have the right hardware, please run
sudo service bluetooth status
> If the status is `dead` you may not have a valid bluetooth chipset or adapter present. If `inactive`, you can enable the service using this command
sudo service bluetooth restart
### pybluez failing to properly install
> If you're experiencing issues while installing `pybluez`, make sure to install the python-dev package. For further documentation (https://pybluez.readthedocs.io/en/latest/install.html)
# Related Projects <a name = "doc_related"></a>
> A list of repositories that have integrated Wall of Flippers (WoF) into their projects.
**Pwnagotchi plugin**\
*Written by: cyberartemio*\
https://github.com/cyberartemio/wof-pwnagotchi-plugin
**Evil-M5Core2**\
*Written by: 7h30th3r0n3*\
https://github.com/7h30th3r0n3/Evil-M5Core2
# Notice <a name = "doc_statement"></a>
> This project isn't the solution to combat the Flipper Zero device or any form of btle attacks. **THIS DOES NOT MITIGATE OR STOP ANYTHING**!!! However, the flipper zero device is a great tool for learning and understanding the inctracies of the cyberworld. Now for the detections for this project, we heavily rely on the advertisements that the Flipper Zero sends out for detection. While a user can do many things to avoid being detected by Wall of Flippers. (Depending if the Identifier method gets worked around) We highly advise using this project for an end all solution. While not all bluetooth attacks are sent from only the flipper, it's a good start to understand the world of bluetooth and the attacks that can be accomplished with simple devices. We hope you enjoy this project and we hope you take the time to learn and build off of this. We are always looking for contributions and new ideas. Thank you for looking at this project and we hope you enjoy it! -k3yomi
", Assign "at most 3 tags" to the expected json: {"id":"6225","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"