Fitbit Aria Wi-Fi Smart Scale: Unterschied zwischen den Versionen

K (→‎Dumps: +body phatt)
K (→‎Dumps: +explain some foo)
Zeile 22: Zeile 22:
 
* HTTP POST an http://www.fitbit.com/scale/upload
 
* HTTP POST an http://www.fitbit.com/scale/upload
 
* Im Normalfall 62 Bytes Payload:
 
* Im Normalfall 62 Bytes Payload:
 +
* Little Endian
  
 
  +---+---+---+---+---+---+---+---+  +---+---+---+---+---+---+---+---+  
 
  +---+---+---+---+---+---+---+---+  +---+---+---+---+---+---+---+---+  
Zeile 36: Zeile 37:
 
  > 00  00| 00  00  00  00| 00  00      00  00| 00  00  00  00|         
 
  > 00  00| 00  00  00  00| 00  00      00  00| 00  00  00  00|         
 
  +---+---+---+---+---+---+---+---+  +---+---+---+---+---+---+
 
  +---+---+---+---+---+---+---+---+  +---+---+---+---+---+---+
 +
 +
* Timestamp 2: Ende der Messung
 +
* Timestamp 1: Beginn der Messung
 +
* Body fat 1 : Angezeigtes Körperfett in % * 1000
 +
* Body fat 2 : Vielleicht physikalischer Messwert (Widerstand)
 +
* Body fat 3 : Wert ähnlich Body fat 1
  
 
=== Erklärung ===
 
=== Erklärung ===

Version vom 7. November 2012, 02:32 Uhr

Crystal Clear action run.png
fitbit WLAN Waage

Status: beta

Fitbit cat img.jpg
Beschreibung fitbit WLAN Waage Reverse Engineering
Autor: architekt, krisha
PayPal Spenden für Fitbit Aria Wi-Fi Smart Scale

Beschreibung

Waage

Die WLAN Waage von fitbit.com misst Gewicht und Körperfett. Es können Accounts angelegt werden und die Daten über deren Webseite abgerufen werden. Die Daten werden nach jeder Messung über WLAN zu fitbit.com gesendet. Die Nutzer werden anhand von Gewicht und eventuell Körperfett identifiziert.

Der Plan

Wir wollen einen eigenen Server für die Waage bereit stellen, um so die Daten nach belieben auszuwerten und eventuelle Beschränkungen der Waage zu umgehen und zu erweitern. So können wir mehrere Benutzer erlauben und die Daten z.B. über eine eigenes Webinterface korrigieren (Nutzer-Zuordnung). Außerdem werden dann die persönlichen Daten nicht mehr ins Internet geschickt. Interesse bestand weiterhin an dem Analysieren der gesendeten Daten... :)

Analyse

Dumps

+---+---+---+---+---+---+---+---+   +---+---+---+---+---+---+---+---+ 
|     Ident     |      ???      |   |          MAC          |  ???  >
| 02  00  00  00| 5C  00  00  00|   | 00  1D  C9  XX  XX  XX| 1C  00>
+---+---+---+---+---+---+---+---+   +---+---+---+---+---+---+---+---+
>       |      ???      |    Timestamp 2    |      ???      |  ???  >
> 00  00| 21  00  00  00| 30  4D      90  50| 01  00  00  00| 02  00>
+---+---+---+---+---+---+---+---+   +---+---+---+---+---+---+---+---+
>       |      ???      |    Weight in g    |  Timestamp 1  | User  >
> 00  00| 00  00  00  00| 06  FE      00  00| 1C  4D  90  50| 00  00>
+---+---+---+---+---+---+---+---+   +---+---+---+---+---+---+---+---+
>  ID   |  Body fat 1   |    Body fat 2     |  Body fat 3   |        
> 00  00| 00  00  00  00| 00  00      00  00| 00  00  00  00|        
+---+---+---+---+---+---+---+---+   +---+---+---+---+---+---+
  • Timestamp 2: Ende der Messung
  • Timestamp 1: Beginn der Messung
  • Body fat 1 : Angezeigtes Körperfett in % * 1000
  • Body fat 2 : Vielleicht physikalischer Messwert (Widerstand)
  • Body fat 3 : Wert ähnlich Body fat 1

Erklärung

/* TODO */

Own tools

/* to be crafted */

Attacks

Fatify local target

Das geht relativ einfach: Mit tcpdump oder Wireshark die Daten eines Ziels nach der Messung mitschneiden. Da meistens WPA im WLAN zum Einsatz kommt, empfiehlt es sich hier am Router oder danach die Daten mitzusniffen. Anschließend einfach den Request klonen und ein eigenes Gewicht oder Körperfett einsetzen. Es kann sein, dass fitbit die Anzahl der Messungen beschränkt und das Gewicht der Person in einem gewissen Limit (Durschschnitt) liegen muss.

Fatify the world

In der Theorie ist es möglich alle fitbit User etwas schwerer zu machen. Die Waage authentifiziert sich mit der MAC Adresse, zusätzlich gibt es eine xx Bit Userkennung. Die MAC Adresse (Herstellerkennung + Wert) kann man per Brute-Force testen, die Benutzerkennung macht den Aufwand aufgrund der vielen Bits aber sehr langwierig. Da der fitbit Server allerdings auch auf Gäste antwortet und zwar mit der kompletten Userliste inkl. der Benutzerkennung, kann man einfach einen Request als Gast (Wert 0) absetzen. Als Antwort schickt der Server die Kennungen zurück und man kann sich seine eigenen Requests zusammensetzen - für alle fitbit User weltweit ;-)