惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
C
Check Point Blog
I
InfoQ
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
月光博客
月光博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Y
Y Combinator Blog
博客园 - Franky
博客园_首页
罗磊的独立博客
量子位
美团技术团队
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏

evilsocket

Mongoose: Preauth RCE and mTLS Bypass on Millions of Devices TP-Link Tapo C200: Hardcoded Keys, Buffer Overflows and Privacy in the Era of AI Assisted Reverse Engineering How to Write an Agent Attacking UNIX Systems via CUPS, Part I Introducing Bettercap 2.4.0: CAN-Bus Hacking, WiFi Bruteforcing and Builtin Web UI Enumerate/Bruteforce/Attack All the Things! Presenting Legba Reverse Engineering the Apple MultiPeer Connectivity Framework Process Behaviour Anomaly Detection Using eBPF and Unsupervised-Learning Autoencoders Hide Your Servers in Plain Sight, Presenting ShieldWall Just Taking a Break :D Weaponizing and Gamifying AI for WiFi Hacking: Presenting Pwnagotchi 1.0.0 How to Create a Malware Detection System With Machine Learning Pwning WPA/WPA2 Networks With Bettercap and the PMKID Client-Less Attack Presenting Project Ergo: How to Build an Airplane Detector for Satellite Imagery With Deep Learning Project PITA: Build a Mini Mass Deauther Using Bettercap and a Raspberry Pi Zero W Go Is Amazing, So Here's What I Don't Like About It All Hail Bettercap 2.0, One Tool to Rule Them All. DIY Portable Secrets Manager With a Raspberry Pi Zero and ARC This Is Not a Post About BLE, Introducing BLEAH
Hacking a Herb Vaporizer to Set Its Temperature Limit Fro...
Simone Margaritelli · 2017-08-25 · via evilsocket

Tonight my brain decided, instead of sleeping (why even bother trying, right?), to start a new short adventure in the Bluetooth Low Energy world. I’m a happy Crafty vaporizer owner and as I discovered by chance, I can access it using my laptop.

ble_1

BTLE is conceptually easy, you’ve got “descriptors”, each one with an unique identifier and each one is arbitrarily used by the vendor for configuration purposes, control of the device, etc by read or write operations. So, first thing first, let’s reverse their mobile application in order to identify interesting descriptors!

ble_2

Here it is, we can read and write stuff with no authentication whatsoever … so, let’s get evil, shall we? :)

How about writing to:

public static final UUID characteristicTargetTemperatureUUID = UUID.fromString("00000021-4C45-4B43-4942-265A524F5453");

The target temperature ( 190 C in my case ) is multiplied by 10 (don’t ask as someone vigorously pointed out, that’s “pretty common when you don’t have/want floating-point arithmetic, or you want to represent exact values for a certain precision” … it doesn’t really matter for the scope of this blog post, but now we’re all happy) and stored as two bytes, so let’s try to overwrite it with the maximum! -put evil laugh here-

ble_temp

Which should be a limit of 6553.5 Celsius degrees.

pew pew

BOOM BABY!!! I have no idea what happens if I turn it on now … it’s the only Crafty I have, and it’s not cheap, I’m not going to try, but the options are:

  1. Hopefully some firmware security measure blocks the device from melting.
  2. Device melts in your hands.
  3. Battery just dies before it melts.

How likely is 1 given there’s no security at all at the BTLE layer? Maybe some hardware security device? If anyone has a spare Crafty to try, let me know …

Disclosure

I can hear people screaming and what about responsible disclosure ?! … I don’t know why people give responsible disclosure for granted to be honest … I do this stuff for fun, if I need to start searching for contacts and wait for replies it becomes a job and it’s not fun anymore … ¯\_(ツ)_/¯

Bonus Level

On the info screen of the app, if you tap 5 times on the serial number and put the correct password, it’ll unlock some nice diagnostic menu … this is SHA256(password) :)

ble_3

Diagnostic menu options (also controllable via BTLE):

ble_3