/Wall-of-Flippers

A simple and easy way to find Flipper Zero Devices and Bluetooth Low Energy Based Attacks

Primary LanguagePythonMIT LicenseMIT

Wall of Flippers

Wall of Flippers

🐬 A simple and easy way to find Flipper Zero Devices and Bluetooth Low Energy Based Attacks 🐬

🐬 Documentation written by @k3yomi 🐬

k3yomi (Project Maintainer)

Emilia (Head Contributor)

GitHub Repo stars GitHub forks GitHub issues GitHub pull requests Discord Shield

🐬 Table of Contents



🐬 Wall of Flippers?

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. Also the code is quite messy and not up to my standards. Will be updating and cleaning up some code in the future. Feel free to submit pull requests if you would like to contribute!

🐬 Current features and future updates

  • Discover Flipper Zero Devices (Bluetooth must be enabled)
  • Flipper Name Discovery
  • Flipper Address Discovery
  • Flipper "Identifier" Discovery ( Transparent, White, & Black Flipper Detection)
    • Spoof Detection (Coming Soon)
  • Ability to archive past flipper zero devices discovered
  • Auto-install functionality for Debian Linux and Windows
  • Ability to identify potential Bluetooth Advertisement attacks
    • Suspected Advertisement Attacks
    • iOS Crash Advertisement Attack
    • iOS Popup Advertisement Attacks
    • Samsung and Android BLE Advertisement Attacks
    • Windows Swift Pair Advertisement Attacks
    • LoveSpouse Advertisement Attacks (Denial of Pleasure)
    • BT Settings Flood
    • Bluetooth Remote Detection
  • BLE Advertiser (Detect other WoF Instances)
    • Custom Name Implementation
    • BLE Chat
  • Badge Mode (Less fancy stats)
  • BLE External / Internal Adapter Support
    • Linux Supported
    • Windows Supported
  • Ratelimiting (New Connections)
    • Linux Supported
    • Windows Supported (Limited)
  • Chromium Web Bluetooth Support
  • iOS/Android Detection (Pairing)
  • Animations (Looking for ascii artists)

🐬 Videos and Articles

Talking Sasquach - Wall of Flippers Busts Flipper Zero BLE Spammers Red Handed!

BleepingComputer - ‘Wall of Flippers’ detects Flipper Zero Bluetooth spam attacks

🐬 Installing and Requirements

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

Debian Linux Install Guide

Debian Linux Install Guide

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
Fedora Linux Install Guide

Fedora Install Guide

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
Windows Install Guide

Windows Install Guide

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.

Headless Usage

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

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

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 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

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