Skip to content

darkmentorllc/Blue2thprinting

Repository files navigation

Disclaimer!

The code in this repository is researchware. That means its purpose is primarily to prove that the results of past research are real, and to allow replication of results. This code is not yet meant to be used as a production tool, nor is it optimized for performance. It is only meant to be used by researchers looking to replicate, or expand, on this work.

OST2 Class Now Available!

The class "Bluetooth 2222: Bluetooth reconnaissance with Blue2thprinting" is now available on OpenSecurityTraining2 as part of the new Bluetooth Learning Path!

This class takes on average about 8.5h to complete, and is by far the best way to learn how to use this software. It provides you with a preconfigured VM and walks you through the 30+ Bluetooth data types which are exposed for your analysis. Afterwards you can come back and load Blue2thprinting on to whichever of the physical setups below works best for you.

💥Breaking changes💥

Sniffle host-side receiver is now a Rust binary. central_app_launcher.py spawns Sniffle/sniffle_receiver_rust (a compiled native binary, drop-in CLI-compatible with Sniffle/python_cli/sniff_receiver.py) instead of the Python sniff_receiver.py. The Rust receiver gives the Pi Zero W enough headroom to drive all 6 Sonoff dongles concurrently without the host-side CPU-starvation Ignoring message due to missing CRLF errors the Python version caused. setup_capture_helper_debian-based.sh now installs rustc+cargo from apt and builds the binary automatically; existing checkouts can just rerun the setup script, or ./setup_capture_helper_debian-based.sh --build-rust to only rebuild it. Source lives in Sniffle/sniffle_receiver_rust_src/ (the _src suffix keeps the cargo project dir distinct from the deployed binary at Sniffle/sniffle_receiver_rust) with build/usage docs in its own README.

If you have data from running Blue2thprinting before tag 2.2.0, you will need to execute the following commands to migrate the table names after tag 2.2.0 (commit ac416c8c2f78a93038be15ecdec6a62913d97ad9):

echo "rename tables"
mysql -u user -pa --database='bt2' --execute="RENAME TABLE LMP_NAME_RES TO LMP_NAME_RES_defragmented;"
mysql -u user -pa --database='bttest' --execute="RENAME TABLE LMP_NAME_RES TO LMP_NAME_RES_defragmented;"

echo "create new tables"
cd ~/Blue2thprinting/Analysis/one_time_initialization
./initialize_database.sh
./initialize_test_database.sh

Hardware Setup Guides

You should pick one of the below targets which best matches your goals.

Image Setup instructions
Any random x86-based laptop

Best for convenience.

tiny2th

Best for small size.

Blue2thprinting Pro Max Extreme Edition!

Best for capabilities.


Software Setup & Configuration

The repo can be cloned to any location. Scripts and binaries resolve their paths from their own filesystem location, so ~/Blue2thprinting, /opt/Blue2thprinting, or any other path will work. If you're upgrading from a version that required ~/Blue2thprinting and had already run the capture setup, delete Scripts/.cron_added and re-run setup_capture_helper_debian-based.sh so the root crontab gets rewritten with the new absolute path.

1️⃣ Try out analysis on BTIDALPOOL data first

2️⃣ Setup capture second

Copyright(c) © Dark Mentor LLC 2023-2026

About

Code associated with the talk "Blue2thprinting (blue-[tooth)-printing]: answering the question of 'WTF am I even looking at?!'"

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors