Fitbit Aria Wi-Fi Smart Scale: Unterschied zwischen den Versionen
K (→Dumps) |
K (→Dumps: +body phatt) |
||
Zeile 20: | Zeile 20: | ||
== Analyse == | == Analyse == | ||
=== Dumps === | === Dumps === | ||
− | HTTP | + | * HTTP POST an http://www.fitbit.com/scale/upload |
+ | * Im Normalfall 62 Bytes Payload: | ||
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ | ||
− | | Ident | ??? | | MAC | ??? | + | | Ident | ??? | | MAC | ??? > |
− | | 02 00 00 00| 5C 00 00 00| | 00 1D C9 XX XX XX| 1C 00 | + | | 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 1 | + | > ID | Body fat 1 | Body fat 2 | Body fat 3 | |
> 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| | ||
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+ |
Version vom 7. November 2012, 02:23 Uhr
fitbit WLAN Waage Status: beta | |
---|---|
Beschreibung | fitbit WLAN Waage Reverse Engineering |
Autor: | architekt, krisha |
PayPal |
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
- HTTP POST an http://www.fitbit.com/scale/upload
- Im Normalfall 62 Bytes Payload:
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ | 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| +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+
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 ;-)