How likely are low-cost BLE trackers to fall to passive eavesdropping or MITM?
Capturing pairing + sync traffic with an nRF sniffer under realistic conditions.
A final-year research project by Wiktor Knapik — intercepting BLE traffic, simulating MITM attacks, and reverse-engineering companion Android apps for four budget wearables bought on Temu, AliExpress and Shein.
┌──(kali㉿kali)-[~] └─$ lsusb | grep -i bluetooth Bus 001 Device 002: ID 1915:552a Nordic Semiconductor ASA nRF Sniffer for Bluetooth LE Bus 001 Device 004: ID 13d3:3617 IMC Networks Bluetooth Radio Bus 001 Device 022: ID 2357:0604 TP-Link TP-Link Bluetooth USB Adapter Bus 001 Device 023: ID 2357:0604 TP-Link TP-Link Bluetooth USB Adapter ┌──(kali㉿kali)-[~] └─$ sudo systemctl start bluetooth $ sudo hciconfig hci1 up $ sudo hciconfig hci2 up $ sudo python3 ~/evil_twin_tracker.py ================================= EVIL TWIN - Fake Device ================================= [ATTACK] EVIL TWIN TRACKER IS ADVERTISING! [ATTACK] Waiting for victim …▍
What the project investigates and why it matters.
Four very cheap fitness trackers — the kind you can add to your basket on Temu, AliExpress or Shein for a handful of euros — are put through a full BLE security pipeline. Everything runs from a persistent Kali Linux USB using Wireshark, an nRF52840 sniffer, nRF Connect, mitmproxy, Burp Suite and MobSF to capture BLE traffic, test MITM capabilities, and dissect each companion Android app.
These aren’t meant to be lab-perfect attacks. The goal is to show what a curious, motivated individual with a laptop, basic tooling and a handful of YouTube tutorials could realistically pull off — and whether paying a few euros for a tracker silently exposes your health data. Findings are mapped to the OWASP IoT and Mobile Top Ten, and the project closes with practical recommendations for both consumers and manufacturers.
Four questions driving the methodology.
Capturing pairing + sync traffic with an nRF sniffer under realistic conditions.
Building an Evil Twin using a laptop + TP-Link adapters and feeding the app fabricated health data.
Heart rate, steps, routines, notifications, identifiers — what leaks, and how loudly.
Static analysis of each APK — permissions, hardcoded keys, endpoints, BLE code paths.
An attacker within BLE range, low skill, off-the-shelf gear.
Everything the attacker carries in their bag.
Persistent bootable USB — keeps host OS untouched and preserves configs across sessions.
Capture and decode BLE frames via an nRF52840 USB dongle. Logs pairing and sync sessions; flags plaintext vs. encrypted payloads.
Scan BLE advertisements, enumerate GATT services & characteristics, monitor advertising packets.
Transparent HTTP/S interception for the companion app ↔ backend traffic.
Find insecure API calls and TLS misconfigurations on the companion app’s backend.
CLI for BLE relay, connection hijacking, and adapter management.
Static analysis of each companion APK — permissions, hardcoded values, risky manifest entries.
Primary sniffer + secondary BLE interface for when phone-based MITM doesn’t pan out.
The same eight steps, applied to every device.
Use nRF Connect + Wireshark to collect BLE advertisement packets from the tracker.
Record MAC address behaviour (static vs. rotating) and enumerate GATT services exposed by the device.
Capture pairing + sync traffic passively to observe the pairing method actually in use.
If the phone relay fails, pair the tracker directly to Kali via the TP-Link adapter and interact with GATT characteristics.
Using the Kali laptop and two TP-Link Nano adapters, advertise a clone of the real tracker — same name, same service UUIDs — from evil_twin_tracker.py. One adapter impersonates the watch to the phone, the other holds the link so the companion app believes it’s talking to the genuine device. Once the app latches onto the fake, the script pushes forged GATT notifications (heart rate, step count, battery) to see what the app trusts, stores and forwards to its backend.
Every capture is saved, tagged by device name, date/time and connection method for later comparison.
Run each companion APK through MobSF; inspect permissions, hardcoded endpoints and BLE-handling code paths.
Proxy the companion app’s HTTPS traffic with mitmproxy and Burp Suite to spot insecure API calls.
Four unbranded budget trackers bought from Temu, AliExpress and Shein.
Companion app · Da Fit
Companion app · FitPro
Companion app · H Band
Companion app · FitCloud Pro
Every device is scored against the same criteria.
Lower price ⇒ fewer engineering hours spent on BLE security. The cheaper trackers are expected to lean on Just Works pairing, skip encryption on non-standard GATT characteristics, and ship companion apps with over-broad permissions and hardcoded endpoints.
Downloadable deliverables — research, report and proposal.
Files will be attached here as each deliverable is finalised.