Herken de HEX checksum en data

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
Ha allen,

Ik heb een leuke tuin-irrigatie-schakelaar die werkt via Bluetooth. Nu heb ik er ook een "wifi-hub" bij gekocht zodat ik hem kan bedienen via Wifi. Heel leuk, maar om hem te bedienen moet je of hun app gebruiken of hun api. Oftewel, zodra de aanbieder bedenkt dat ze het product niet meer ondersteunen, zit ik met de gebakken peren. Dat wil ik voorkomen, dus wil ik de cloud dienst nabootsen en zo direct communiceren met de hub.

Nu blijkt hij te communiceren via HTTPS, wat het lastiger maakt, maar tegelijkertijd blijkt de hub elk willekeurig certificaat prima te vinden. 8)7 . Zodoende heb ik nu een simple node.js servertje gemaakt waar de hub verbinding mee maakt en die alle data vanaf de hub doorzet naar de echte server en andersom. Ik zie dus momenteel alle communicatie, en dat is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a31323a32372b30313a30304a00d12d
Client zegt: aa775a0f1f001219323032302d31312d31335430393a31323a32372b30303a30304a00d497
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a31343a32372b30313a30304a00ef26
Client zegt: aa775a0f1f001219323032302d31312d31335430393a31343a32372b30303a30304a00ea9c
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a31363a32372b30313a30304a000520
Client zegt: aa775a0f1f001219323032302d31312d31335430393a31363a32372b30303a30304a00009a
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a31383a32372b30313a30304a009330
Client zegt: aa775a0f1f001219323032302d31312d31335430393a31383a32372b30303a30304a00968a
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a32303a32372b30313a30304a009ee4
Client zegt: aa775a0f1f001219323032302d31312d31335430393a32303a32372b30303a30304a009b5e
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a32323a32372b30313a30304a0074e2
Client zegt: aa775a0f1f001219323032302d31312d31335430393a32323a32372b30303a30304a007158
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a32343a32372b30313a30304a004ae9
Client zegt: aa775a0f1f001219323032302d31312d31335430393a32343a32372b30303a30304a004f53
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a32363a32372b30313a30304a00a0ef
Client zegt: aa775a0f1f001219323032302d31312d31335430393a32363a32372b30303a30304a00a555
Server zegt: aa775a0f27000a0644675522069d1219323032302d31312d31335431303a32383a32372b30313a30304a0036ff
Client zegt: aa775a0f1f001219323032302d31312d31335430393a32383a32372b30303a30304a003345


(Server is hub -> mijn server -> echte server, client is: echte server -> mijn server -> hub)

Het verkeer wat je hier ziet zijn een soort ping berichtjes eens per 2 minuten. Een deel van deze data komt uit op een datum en tijd, bijv: 2020-11-13T07:54:26+01:00J. Maar er zit nog een boel data omheen die wisselt. Ik wil graag uitvinden wat dit betekent. Ik zou verwachten dat op het eind een soort checksum zit om het bericht te valideren, maar ik kan nog geen checksum genereren die overeenkomt met de data.

Met andere woorden: Heeft iemand een idee wat precies de samenstelling van de berichten zijn? Kan iemand helpen dit te ontcijferen?

Thanks :)

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 16:43

The Eagle

I wear my sunglasses at night

Leuke queste :)

Eerste deel van de string lijkt vrij sterk op een MAC adres. Kun je daar iets mee, dus adhv een mac adres de producent van de chips achterhalen?

En wat is het hardware vendor ID van die hub?

[ Voor 13% gewijzigd door The Eagle op 13-11-2020 10:42 ]

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
The Eagle schreef op vrijdag 13 november 2020 @ 10:40:
Leuke queste :)

Eerste deel van de string lijkt vrij sterk op een MAC adres. Kun je daar iets mee, dus adhv een mac adres de producent van de chips achterhalen?
Het wifi mac adres van de hub is: 44:67:55:22:06:9D (Het blijkt trouwens een Espressif ESP-32 wifi chip te zijn), zijn BT adres is (gek genoeg) hetzelfde. Hij profileert zich via bluetooth als een bhyve_22069D
BT mac adres van de schakelaar is: 44:67:55:13:64:D6, deze profileert zich als: bhyve_1364D6.

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
Ok, ik weet iets meer, maar nog niet heel veel:
code:
1
2
ID        CODE                        TIMESTAMP                                           BODY      CRC
aa775a0f  2700  0a0644675522069d1219  323032302d31312d31335431313a33303a32372b30313a3030  4a00      010f


Timestamp is een String, Body lijkt de daadwerkelijke data te zijn, in dit geval slechts 4a00, een soort ping/pong/hello achtige package. De laatste 4 bytes zijn altijd anders, tenzij hij toevallig eens 2 totaal identieke berichten stuurt (wat bijna nooit voorkomt, gezien hij meestal maar 1 bericht per seconde maximaal stuurt en de timestamp dus altijd anders is)..

Wat ik me vooral momenteel afvraag, die CRC, of wat voor checksum het ook is, hoe wordt die berekend? Met deze data kan ik nog geen checksum genereren die uitkomt op 010f, of 00010f, of 0f wat dat betreft... Iemand een tip?

Oost west, 127.0.0.1 best!


Acties:
  • +3 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Laatst online: 10:58
Ik heb er hier de eerste drie geprobeerd, en in alle gevallen correspondeert de checksum met CRC-CCITT(XModem), wel gebyteswapt.

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
0a0644675522069d1219 is 20 bytes.
SHA1 is 40 en MD5 is 32, nog geen ingeving wat het dan wel is.
Het kan immers een hash zijn op basis van ontvangen data.

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 16:43

The Eagle

I wear my sunglasses at night

Andere invalshoek: wat voor protocol wordt er bijvoorbeeld bij Gardena gebruikt? Kan me niet voorstellen dat men in China of wherever het wiel opnieuw uitvindt qua protocol. De kans is groot dat dat bekend is en dan is er dus ook documentatie over :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • wolly_a
  • Registratie: September 2002
  • Niet online
Een checksum krijg ik er nog niet uit. Als ik dit stuk omzet naar ASCII:

219323032302d31312d31335431303a31323a32372b30313a3030

Krijg ik dit:

2020-11-13T10:12:27+01:00

Acties:
  • 0 Henk 'm!

  • sh4d0wman
  • Registratie: April 2002
  • Laatst online: 16:08

sh4d0wman

Attack | Exploit | Pwn

Ah blackbox altijd leuk :P

Is dit je device? Die kwam met een Google search boven: https://bhyve.orbitonline.com/

1. Heb je al in de app en api gekeken naar functionaliteit/commando's?
2. Kun je bij de ESP32 komen? Zo ja, prik er een kabel in en dump alle data.

Protocol RE attempt 0:
code:
1
2
3
4
5
6
7
8
9
DEVICE:     ID:         OPCODE:     LENGTH? DATA1       DATA2   DATA3   COMMAND:
Hub:        aa775a0f    2700        0a      0644675522  069d    1219    4a00 
Decoded:                '           L=10                                J   
    
Cloud:      aa775a0f    1f00                                    1219    4a00 
Decoded:                not-ascii                                       J   

Hub:        aa775a0f    2700        0a      0644675522  069d    1219    4a00                
Decoded:                '           L=10                                J

Onder elk bericht heb ik de decoded informatie geplaatst voor zover mogelijk. Tevens hub/cloud gemaakt om makkelijker de communicatie te volgen maar misschien moet het net andersom, snap je beschrijving namelijk niet helemaal hehe.

Heb je nog ander verkeer beschikbaar? Nu was alles hetzelfde zo te zien.Opcode en Commando zijn een gok. Met andere communicatie is het makkelijker vast te stellen wat commando's en wat wellicht flow control oid is.

Wat je verder zou kunnen proberen is om met de waardes van de OPCODE en COMMAND te spelen.
Nu stuurt men bijvoorbeeld telkes 4a00 = J heen en weer.
Kijk eens of je het kunt onderscheppen en verander het naar een andere letter:
A-Z
a-z
0-9

Wat gebeurd er als je als client een server opcode stuurt? Etc.

Verder kan ik je het boek Attacking Network Protocols aanraden 8)

[ Voor 6% gewijzigd door sh4d0wman op 14-11-2020 06:42 ]

This signature has been taken down by the Dutch police in the course of an international lawenforcement operation.


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
hcQd schreef op vrijdag 13 november 2020 @ 20:23:
Ik heb er hier de eerste drie geprobeerd, en in alle gevallen correspondeert de checksum met CRC-CCITT(XModem), wel gebyteswapt.
Wauw, dit lijkt idd te werken! Ik kom later even terug op de nodejs functie die ik hiervoor heb moeten maken om dit te berekenen, want helemaal kant en klare tools waren er niet om dit specifiek uit te kunnen rekenen.

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
sh4d0wman schreef op zaterdag 14 november 2020 @ 06:22:
Ah blackbox altijd leuk :P

Is dit je device? Die kwam met een Google search boven: https://bhyve.orbitonline.com/

1. Heb je al in de app en api gekeken naar functionaliteit/commando's?
2. Kun je bij de ESP32 komen? Zo ja, prik er een kabel in en dump alle data.

Protocol RE attempt 0:
code:
1
2
3
4
5
6
7
8
9
DEVICE:     ID:         OPCODE:     LENGTH? DATA1       DATA2   DATA3   COMMAND:
Hub:        aa775a0f    2700        0a      0644675522  069d    1219    4a00 
Decoded:                '           L=10                                J   
    
Cloud:      aa775a0f    1f00                                    1219    4a00 
Decoded:                not-ascii                                       J   

Hub:        aa775a0f    2700        0a      0644675522  069d    1219    4a00                
Decoded:                '           L=10                                J

Onder elk bericht heb ik de decoded informatie geplaatst voor zover mogelijk. Tevens hub/cloud gemaakt om makkelijker de communicatie te volgen maar misschien moet het net andersom, snap je beschrijving namelijk niet helemaal hehe.

Heb je nog ander verkeer beschikbaar? Nu was alles hetzelfde zo te zien.Opcode en Commando zijn een gok. Met andere communicatie is het makkelijker vast te stellen wat commando's en wat wellicht flow control oid is.

Wat je verder zou kunnen proberen is om met de waardes van de OPCODE en COMMAND te spelen.
Nu stuurt men bijvoorbeeld telkes 4a00 = J heen en weer.
Kijk eens of je het kunt onderscheppen en verander het naar een andere letter:
A-Z
a-z
0-9

Wat gebeurd er als je als client een server opcode stuurt? Etc.

Verder kan ik je het boek Attacking Network Protocols aanraden 8)
Bedankt voor de hulp, super! Ik kom er later wat dieper op terug naar het is idd een Orbit BHyve :)

Oost west, 127.0.0.1 best!


Acties:
  • +1 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Laatst online: 10:58
Er zitten volgens mij wat TLV-argumenten tussen:
code:
1
2
3
TYPE        LENGTH      VALUE
0a          06          44675522069d
12 (time)   19          323032302d31312d31335431303a31323a32372b30313a3030

Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
hcQd schreef op zaterdag 14 november 2020 @ 07:36:
Er zitten volgens mij wat TLV-argumenten tussen:
code:
1
2
3
TYPE        LENGTH      VALUE
0a          06          44675522069d
12 (time)   19          323032302d31312d31335431303a31323a32372b30313a3030
Jee ja daar zouden jullie wel gelijk in kunnen hebben. Zo heb ik de data nog niet bekeken. Even een andere proberen:
code:
1
2
ID        CODE  T   L   VALUE         T   L   VALUE                                   FOUT          ???                           CRC
aa775a0f  3300  0a  06  44675522069d  12  19  323032302d31312d31335431323a33383a3535  2b30313a3030  30d13c8201080801120208012800  624f

Het komt niet helemaal uit dus, althans, de timestamp is voor zover ik kan tellen meer dan 19 bytes. Althans, als je de +01:00 erbij meeneemt...

[ Voor 6% gewijzigd door geerttttt op 14-11-2020 08:14 ]

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
Hier nog wat testdata. Elke keer heb ik eerst het (nu dus nog zeer beperkte en niet volledig correcte) geparste bericht door mijn script, en (bij server berichten) de regel eronder is de rauwe hex data van hetzelfde bericht.

device gaat aan:
code:
1
2
3
4
5
6
server connected
Server zegt:2020-11-14T08:19:14 - 4600 - ba011e080012084248312d303030311a0430303330200028003000380040005803 CRC:0f5a
Server zegt RAW:aa775a0f46000a0644675522069d1219323032302d31312d31345430383a31393a31342b30313a3030ba011e080012084248312d303030311a04303033302000280030003800400058030f5a
Server zegt:2020-11-14T08:19:14 - 4d00 - 820125080112020801221d0a19313937302d30312d30315430303a30303a30302b30313a30301000 CRC:78d1
Server zegt RAW:aa775a0f4d000a0644675522069d1219323032302d31312d31345430383a31393a31342b30313a3030820125080112020801221d0a19313937302d30312d30315430303a30303a30302b30313a3030100078d1
Client zegt:2020-11-14T08:21:13 - 4300 - 92011b0a19323032302d31312d31345430383a32313a31332b30313a3030 CRC:1a05

device gaat bewateren voor 12 minuten
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Client zegt:2020-11-14T07:21:31 - 3500 - 30d13c720b080212071a05080010d005 CRC:88fc
Server zegt:2020-11-14T08:21:38 - 4800 - 30d13c82011d0804120b080212071a05080010d005320c08021800200028cf0538d005 CRC:a960
Server zegt RAW:aa775a0f48000a0644675522069d1219323032302d31312d31345430383a32313a33382b30313a303030d13c82011d0804120b080212071a05080010d005320c08021800200028cf0538d005a960
Client zegt:2020-11-14T07:21:44 - 2e00 - 30d13c720408021200 CRC:3f72
Client zegt:2020-11-14T07:21:44 - 3000 - 30d13cca030508dc0b101e CRC:1f3a
Server zegt:2020-11-14T08:21:44 - 3300 - 30d13cf201080801200038074001 CRC:c1e0
Server zegt RAW:aa775a0f33000a0644675522069d1219323032302d31312d31345430383a32313a34342b30313a303030d13cf201080801200038074001c1e0
Client zegt:2020-11-14T07:21:45 - 4800 - 30d13cc2011d0a19323032302d31312d31335430303a30303a30302b30303a30301000 CRC:dc10
Server zegt:2020-11-14T08:21:45 - b901 - ca0190030a260a19323032302d31312d31335430383a31323a35382b30313a3030180020002810300040d13c0a260a19323032302d31312d31335431313a30383a34392b30313a303018002000283d300040d13c0a260a19323032302d31312d31335431313a33303a33322b30313a3030180020002803300040d13c0a260a19323032302d31312d31335431323a33383a35342b30313a303018002000280b300040d13c0a260a19323032302d31312d31335431323a34363a34362b30313a3030180020002806300040d13c0a260a19323032302d31312d31335431333a30323a34352b30313a303018002000282c300040d13c0a260a19323032302d31312d31335431333a31353a32362b30313a3030180020002804300040d13c0a260a19323032302d31312d31335431333a35343a35352b30313a3030180020002804300040d13c0a260a19323032302d31312d31335431343a30313a32352b30313a3030180020002804300040d13c0a260a19323032302d31312d31335431343a30323a35332b30313a3030180020002804300040d13c CRC:c30f
Server zegt RAW:aa775a0fb9010a0644675522069d1219323032302d31312d31345430383a32313a34352b30313a3030ca0190030a260a19323032302d31312d31335430383a31323a35382b30313a3030180020002810300040d13c0a260a19323032302d31312d31335431313a30383a34392b30313a303018002000283d300040d13c0a260a19323032302d31312d31335431313a33303a33322b30313a3030180020002803300040d13c0a260a19323032302d31312d31335431323a33383a35342b30313a303018002000280b300040d13c0a260a19323032302d31312d31335431323a34363a34362b30313a3030180020002806300040d13c0a260a19323032302d31312d31335431333a30323a34352b30313a303018002000282c300040d13c0a260a19323032302d31312d31335431333a31353a32362b30313a3030180020002804300040d13c0a260a19323032302d31312d31335431333a35343a35352b30313a3030180020002804300040d13c0a260a19323032302d31312d31335431343a30313a32352b30313a3030180020002804300040d13c0a260a19323032302d31312d31335431343a30323a35332b30313a3030180020002804300040d13cc30f
Server zegt:2020-11-14T08:21:45 - 6b01 - ca01c2020a260a19323032302d31312d31335431343a33313a32342b30313a3030180020002803300040d13c0a260a19323032302d31312d31335431343a33333a30302b30313a3030180020002810300040d13c0a260a19323032302d31312d31335431343a33363a30342b30313a3030180020002815300040d13c0a270a19323032302d31312d31335431343a34303a30382b30313a30301800200028b401300040d13c0a260a19323032302d31312d31335431353a33313a33352b30313a3030180020002810300040d13c0a270a19323032302d31312d31335431353a34353a31362b30313a30301800200028d804300040d13c0a260a19323032302d31312d31345430383a31393a30372b30313a3030180020002808300040d13c0a260a19323032302d31312d31345430383a32313a34342b30313a3030180020002807300040d13c CRC:26da
Server zegt RAW:aa775a0f6b010a0644675522069d1219323032302d31312d31345430383a32313a34352b30313a3030ca01c2020a260a19323032302d31312d31335431343a33313a32342b30313a3030180020002803300040d13c0a260a19323032302d31312d31335431343a33333a30302b30313a3030180020002810300040d13c0a260a19323032302d31312d31335431343a33363a30342b30313a3030180020002815300040d13c0a270a19323032302d31312d31335431343a34303a30382b30313a30301800200028b401300040d13c0a260a19323032302d31312d31335431353a33313a33352b30313a3030180020002810300040d13c0a270a19323032302d31312d31335431353a34353a31362b30313a30301800200028d804300040d13c0a260a19323032302d31312d31345430383a31393a30372b30313a3030180020002808300040d13c0a260a19323032302d31312d31345430383a32313a34342b30313a3030180020002807300040d13c26da
Server zegt:2020-11-14T08:21:45 - 3300 - 30d13c8201080801120208012800 CRC:0162
Server zegt RAW:aa775a0f33000a0644675522069d1219323032302d31312d31345430383a32313a34352b30313a303030d13c82010808011202080128000162
Server zegt:2020-11-14T08:21:46 - 3100 - 30d13cda0306080010001800 CRC:412f
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a34362b30313a303030d13cda0306080010001800412f
Server zegt:2020-11-14T08:21:48 - 3100 - 30d13cda0306080010001800 CRC:7f5b
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a34382b30313a303030d13cda03060800100018007f5b
Server zegt:2020-11-14T08:21:49 - 3100 - 30d13cda0306080010001800 CRC:6085
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a34392b30313a303030d13cda03060800100018006085
Server zegt:2020-11-14T08:21:51 - 3100 - 30d13cda0306080010001800 CRC:ed20
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a35312b30313a303030d13cda0306080010001800ed20
Server zegt:2020-11-14T08:21:52 - 3100 - 30d13cda0306080010001800 CRC:ed52
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a35322b30313a303030d13cda0306080010001800ed52
Server zegt:2020-11-14T08:21:54 - 3100 - 30d13cda0306080010001800 CRC:edb6
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a35342b30313a303030d13cda0306080010001800edb6
Server zegt:2020-11-14T08:21:55 - 3100 - 30d13cda0306080010001800 CRC:f268
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a35352b30313a303030d13cda0306080010001800f268
Server zegt:2020-11-14T08:21:57 - 3100 - 30d13cda0306080010001800 CRC:edc4
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a35372b30313a303030d13cda0306080010001800edc4
Server zegt:2020-11-14T08:21:58 - 3100 - 30d13cda0306080010001800 CRC:cc6e
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32313a35382b30313a303030d13cda0306080010001800cc6e
Server zegt:2020-11-14T08:22:00 - 3100 - 30d13cda0306080010001800 CRC:e5ab
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a30302b30313a303030d13cda0306080010001800e5ab
Server zegt:2020-11-14T08:22:02 - 3100 - 30d13cda0306080010001800 CRC:fa07
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a30322b30313a303030d13cda0306080010001800fa07
Server zegt:2020-11-14T08:22:03 - 3100 - 30d13cda0306080010001800 CRC:e5d9
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a30332b30313a303030d13cda0306080010001800e5d9
Server zegt:2020-11-14T08:22:04 - 3100 - 30d13cda0306080010001800 CRC:fae3
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a30342b30313a303030d13cda0306080010001800fae3
Server zegt:2020-11-14T08:22:06 - 3100 - 30d13cda0306080010001800 CRC:e54f
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a30362b30313a303030d13cda0306080010001800e54f
Server zegt:2020-11-14T08:22:08 - 3100 - 30d13cda0306080010001800 CRC:db3b
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a30382b30313a303030d13cda0306080010001800db3b
Server zegt:2020-11-14T08:22:10 - 3100 - 30d13cda0306080010001800 CRC:569e
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a31302b30313a303030d13cda0306080010001800569e
Server zegt:2020-11-14T08:22:10 - 3100 - 30d13cda0306080010001800 CRC:569e
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a31302b30313a303030d13cda0306080010001800569e
Server zegt:2020-11-14T08:22:12 - 3100 - 30d13cda0306080010001800 CRC:4932
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a31322b30313a303030d13cda03060800100018004932
Server zegt:2020-11-14T08:22:13 - 3100 - 30d13cda0306080010001800 CRC:56ec
Server zegt RAW:aa775a0f31000a0644675522069d1219323032302d31312d31345430383a32323a31332b30313a303030d13cda030608001000180056ec


Ik heb de bewatering niet 12 minuten door laten lopen maar na enkele seconden weer gestopt. Wat bijzonder is is dat ik denk ik rond regel 4 op stop gedrukt heb, en dat daarna pas de hele waslijst met data vanaf de server komt. De info met het commando om te bewateren moet dus in de 1e paar regels zitten.

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Laatst online: 10:58
19 (hex) is 25, dat is volgens mij de lengte van de timestamp.

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 12-10 20:24
Ik denk dat het protocol buffers zijn. Als ik zo kijk naar de codering, dan klopt het in ieder geval.

code:
1
2
3
TYPE        LENGTH      VALUE
0a          06          44675522069d
12 (time)   19          323032302d31312d31335431303a31323a32372b30313a3030


0a = 0000 1010 -> 00001 010 = veldnummer 1, wiretype 2 (length delimited data)
06 = lengte (6)

12 = 0001 0010 -> 00010 010 = veldnummer 2, wiretype 2 (length delimited data)
19 = lengte (25)

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
hcQd schreef op zaterdag 14 november 2020 @ 08:32:
19 (hex) is 25, dat is volgens mij de lengte van de timestamp.
Och ja duh, ik vergeet het om te zetten! Tuurlijk..

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • sh4d0wman
  • Registratie: April 2002
  • Laatst online: 16:08

sh4d0wman

Attack | Exploit | Pwn

Het lijkt er op dat het veld wat ik COMMAND heb gelabeld (net voor de CRC) een Sequence functionaliteit implementeert:

Volg de client communicatie in de 12 minuten bewatering log:

Regel 1: volg d005 en je ziet de volgende stream:
Client zegt:2020-11-14T07:21:31 - 3500 - 30d13c720b080212071a05080010 d005 CRC:88fc
Server zegt:2020-11-14T08:21:38 - 4800 - 30d13c82011d0804120b080212071a05080010d005320c08021800200028cf0538 d005 CRC:a960
Server zegt RAW:aa775a0f48000a0644675522069d1219323032302d31312d31345430383a32313a33382b30313a303030d13c82011d0804120b080212071a05080010d005320c08021800200028cf0538 d005 a960

Regel 4: volg 1200 en je ziet de volgende stream:
Client zegt:2020-11-14T07:21:44 - 2e00 - 30d13c720408021200 CRC:3f72
Server zegt:2020-11-14T08:21:44 - 3300 - 30d13cf201080801200038074001 CRC:c1e0
Server zegt RAW:aa775a0f33000a0644675522069d1219323032302d31312d31345430383a32313a34342b30313a303030d13cf201080801200038074001c1e0

Regel 5: volg 101e, deze duikt niet meer op
Geen communicatie met de server (nodig)?

Regel 8: volg 1000 en je ziet het in elk volgend server bericht + device bootup.

Waarschijnlijk worden er voor je bewatering 3 of 4 functies uitgevoerd waarvan dus mogelijk 1 niet werkte (geen server reply) of geen server ack nodig had.


Er is ook code voor diverse smarthome controllers. Misschien valt daar nog wat van te leren:
https://github.com/KurtSanders/STOrbitBhyveController
en
https://github.com/billchurch/bhyve-mqtt

Men maakt daar onder meer melding van:
device_id
zone
tijd

This signature has been taken down by the Dutch police in the course of an international lawenforcement operation.


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
Ik ben nu tot zover, ik probeer dus constant de bytes te zoeken die het type en lengte aangeven, en dat totdat ik het einde van het bericht gevonden heb. Ik weet alleen niet of dit is hoe men het bedoeld heeft, hieronder eerst het gepaste bericht, daarna de rauwe data

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server connected

Server zegt: 0a(len:6) - pos:4 - 44675522069d
Server zegt: 12(len:25) - pos:20 - 323032302d31312d31355431333a32393a34352b30313a3030                                                                                 
Server zegt: ba(len:1) - pos:74 - 1e
Server zegt: 08(len:0) - pos:80 -
Server zegt: 12(len:8) - pos:84 - 4248312d30303031                                 
Server zegt: 1a(len:4) - pos:104 - 30303330                                        
Server zegt: 20(len:0) - pos:116 -                                                 
Server zegt: 28(len:0) - pos:120 -
Server zegt: 30(len:0) - pos:124 -
Server zegt: 38(len:0) - pos:128 -                                                 
Server zegt: 40(len:0) - pos:132 -
Server zegt RAW:aa775a0f46000a0644675522069d1219323032302d31312d31355431333a32393a34352b30313a3030ba011e080012084248312d303030311a04303033302000280030003800400058037c89


Server zegt: 0a(len:6) - pos:4 - 44675522069d
Server zegt: 12(len:25) - pos:20 - 323032302d31312d31355431333a32393a34352b30313a3030                                                                                 
Server zegt: 82(len:1) - pos:74 - 25
Server zegt: 08(len:1) - pos:80 - 12
Server zegt: 02(len:8) - pos:86 - 01221d0a19313937                                 
Server zegt RAW:aa775a0f4d000a0644675522069d1219323032302d31312d31355431333a32393a34352b30313a3030820125080112020801221d0a19313937302d30312d30315430303a30303a30302b30313a30301000e8c3

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
Goed, ik ben best ver, ik heb nu het bericht door welke het commando geeft om te gaan bewateren, en heb hier verschillende varianten van opgeslagen waarbij ik via de app verschillende sproeiduren aangegeven heb:
code:
1
2
3
4
5
6
7
           ID       TYPE  ID                LEN   DATUM/TIJD                                         GEEN IDEE          SPROEIINFO      CRC
35 sec:    aa775a0f 3400  0a0644675522069d  1219  323032302d31312d31365431303a33353a31372b30303a3030 30d13c720a08021206 1a0408001023    26f4
01:05 min: aa775a0f 3400  0a0644675522069d  1219  323032302d31312d31365431303a33383a30352b30303a3030 30d13c720a08021206 1a0408001041    de48
240 sec:   aa775a0f 3500  0a0644675522069d  1219  323032302d31312d31365431303a33393a32372b30303a3030 30d13c720b08021207 1a05080010f001  5aac
30 min:    aa775a0f 3500  0a0644675522069d  1219  323032302d31312d31365431303a34313a31382b30303a3030 30d13c720b08021207 1a05080010880e  f4ef
5 min:     aa775a0f 3500  0a0644675522069d  1219  323032302d31312d31365431303a35303a30372b30303a3030 30d13c720b08021207 1a05080010ac02  7559
2,5 uur:   aa775a0f 3500  0a0644675522069d  1219  323032302d31312d31365431313a30303a34392b30303a3030 30d13c720b08021207 1a05080010a846  c5a7


Helemaal achteraan elk bericht zie je de sproeiduur, althans, ik kan de hex cijfers omzetten naar seconden tot 255 seconden, daarna is het in een formaat waar ik niks van snap, wie weet dit?

23 = 35 seconden
41 = 65 seconden
f001 = 240 seconden (waar het 01 op het eind voor nodig is snap ik niet..)
880e = 30 min (Ik kan geen manier bedenken hoe je met deze hex waarde op 30 minuten of 1800 sec uit moet komen..)
ac02 = 5 min (geen idee wederom, ac=172, 02 = 02. Geen idee hoe ik op 300 seconden uit kom)
a846 = 2,5 uur ( dit zou 9000 seconden moeten zijn... Wederom geen idee)

Iemand tips? :)

[ Voor 3% gewijzigd door geerttttt op 16-11-2020 16:23 ]

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Nu online
Kan het zijn dat bij grotere sproeitijden, de getallen onnauwkeuriger worden?
f001 = 240 en 1 - vermenigvuldigd = 240
880e = 136 en 14 - vermenigvuldigd = 1904, best in de buurt van 1800
ac02 = 172 en 2 - vermenigvuldigd = 344, best in de buurt van 300
a846 = 168 en 70 - vermenigvuldigd = 11760, enigszins in de buurt van 9000 seconden.

Acties:
  • +1 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Laatst online: 10:58
De codering lijkt me uleb128.

Bijvoorbeeld:
A8 46 -> (in binair)
10101000 01000110 -> (markeringen weghalen)
0101000 1000110 -> (byte swap)
1000110 0101000 -> (naar decimaal)
9000

Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
hcQd schreef op maandag 16 november 2020 @ 17:12:
De codering lijkt me uleb128.

Bijvoorbeeld:
A8 46 -> (in binair)
10101000 01000110 -> (markeringen weghalen)
0101000 1000110 -> (byte swap)
1000110 0101000 -> (naar decimaal)
9000
Misschien doe ik het verkeerd, voor de 2,5 uur klopt het, maar bij de 5 minuten krijg ik er 0x70 uit ipv 0xac02. Mis ik iets?

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Nu online
@hcQd , erg goed gevonden!
Voor 0xac02 klopt het ook:
code:
1
2
3
4
5
6
ac 02
10101100 00000010   ; nu bovenste bitten weg geeft:
 0101100 0000010   ; nu de woorden wisselen geeft:
 0000010 0101100   ; twee nullen er voor, aan elkaar plakken en twee bytes van maken geeft:
00000001 00101100   ; deze 16 bits naar decimaal omzetten geeft:
dec. 300


Edit: 240sec en 30min kloppen ook.

[ Voor 5% gewijzigd door vanaalten op 16-11-2020 20:04 ]


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 08:56
wolly_a schreef op vrijdag 13 november 2020 @ 22:50:
Een checksum krijg ik er nog niet uit. Als ik dit stuk omzet naar ASCII:

219323032302d31312d31335431303a31323a32372b30313a3030

Krijg ik dit:

2020-11-13T10:12:27+01:00
Ik lees weinig reactie op wat @wolly_a hier schrijft, maar dit staat volgens mij buiten kijf:

code:
1
2
3
4
5
6
7
8
9
323032302d31312d31335431303a31323a32372b30313a30304a = 2020-11-13T10:12:27+01:00J

323032302d31312d31335431303a31343a32372b30313a30304a = 2020-11-13T10:14:27+01:00J

323032302d31312d31335431303a31363a32372b30313a30304a = 2020-11-13T10:16:27+01:00J

323032302d31312d31335431303a31383a32372b30313a30304a = 2020-11-13T10:18:27+01:00J

323032302d31312d31335431303a32303a32372b30313a30304a = 2020-11-13T10:20:27+01:00J

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
vanaalten schreef op maandag 16 november 2020 @ 20:01:
@hcQd , erg goed gevonden!
Voor 0xac02 klopt het ook:
code:
1
2
3
4
5
6
ac 02
10101100 00000010   ; nu bovenste bitten weg geeft:
 0101100 0000010   ; nu de woorden wisselen geeft:
 0000010 0101100   ; twee nullen er voor, aan elkaar plakken en twee bytes van maken geeft:
00000001 00101100   ; deze 16 bits naar decimaal omzetten geeft:
dec. 300


Edit: 240sec en 30min kloppen ook.
zeker goed gevonden idd, ben erg blij met de hulp. Maar misschien doe ik iets verkeerd. Unsigned leb128 toch?

Oost west, 127.0.0.1 best!


Acties:
  • +1 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
CurlyMo schreef op maandag 16 november 2020 @ 20:04:
[...]

Ik lees weinig reactie op wat @wolly_a hier schrijft, maar dit staat volgens mij buiten kijf:

code:
1
2
3
4
5
6
7
8
9
323032302d31312d31335431303a31323a32372b30313a30304a = 2020-11-13T10:12:27+01:00J

323032302d31312d31335431303a31343a32372b30313a30304a = 2020-11-13T10:14:27+01:00J

323032302d31312d31335431303a31363a32372b30313a30304a = 2020-11-13T10:16:27+01:00J

323032302d31312d31335431303a31383a32372b30313a30304a = 2020-11-13T10:18:27+01:00J

323032302d31312d31335431303a32303a32372b30313a30304a = 2020-11-13T10:20:27+01:00J
Sorry, heb denk ik niet specifiek op hem gereageerd maar idd, dat is de datum in ASCII. De laatste byte hoort er echter niet bij, die J op het eind.

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • brokenp
  • Registratie: December 2001
  • Laatst online: 14:36
Je hebt in je berichtje nog staan
GEEN IDEE SPROEIINFO
30d13c720b08021207 1a05080010880e
Dit moet je anders parsen,
een of ander id?30d13c720b0802
T:12
L:07
V: 1a05080010880e (uleb128)

Acties:
  • 0 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Laatst online: 10:58
geerttttt schreef op maandag 16 november 2020 @ 20:07:
[...]
zeker goed gevonden idd, ben erg blij met de hulp. Maar misschien doe ik iets verkeerd. Unsigned leb128 toch?
Wiki heeft code samples, en anders is er vast wel een library voor nodejs.
Als je even nadenkt waar leb128 voor staat (little endian base 128) wordt het duidelijker hoe het werkt.

[ Voor 14% gewijzigd door hcQd op 16-11-2020 20:30 ]


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
hcQd schreef op maandag 16 november 2020 @ 20:27:
[...]

Wiki heeft code samples, en anders is er vast wel een library voor nodejs.
Als je even nadenkt waar leb128 voor staat (little endian base 128) wordt het duidelijker hoe het werkt.
Ik gebruik idd een lib voor nodejs, maar daar krijg ik idd andere resultaten, ik duik er nog even in, blijkbaar klopt de uitkomst van de functie niet.

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 12-10 20:24
Wat je gemarkeerd hebt als 'TYPE' is in ieder geval de totale lengte van het bericht. 3400 = 0x0034 = 52. Het bericht wat erna komt is ook 52 bytes lang, inclusief de CRC.

En ik denk nog steeds dat protocol buffers de sleutel zijn, aangezien die ook gebruik maken van LEB128 voor unsigned ints. De noemen het daar 'Base 128 Varints'.

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
Jaap-Jan schreef op maandag 16 november 2020 @ 21:48:
Wat je gemarkeerd hebt als 'TYPE' is in ieder geval de totale lengte van het bericht. 3400 = 0x0034 = 52. Het bericht wat erna komt is ook 52 bytes lang, inclusief de CRC.
Ah ja dus toch! Ik begon hier al wat achter te komen toen ik zag dat het bewateren met korte tijd een bericht gaf met 'type' 3400 en met lange tijd was het ineens '3500'. Dus dat is dus wederom een lengte :) Mooi zo, ga ik dat verwerken.
En ik denk nog steeds dat protocol buffers de sleutel zijn, aangezien die ook gebruik maken van LEB128 voor unsigned ints. De noemen het daar 'Base 128 Varints'.
Ik moet daar nog verder in duiken denk ik. Het hele protocol buffers is mij volledig onbekend.

Wat ik ondertussen wel heb is dat ik succesvol een bericht kan injecteren richting mijn hub waarin ik dus aangeef dat hij moet gaan bewateren. Dit kan ik initieren via een simpel webservertje wat ik via hetzelfde node script draai en dat werkt goed :) Dus ik kan in ieder geval al doen wat ik minimaal wilde, dat is op commando via mijn eigen systeem hem laten bewateren. :D

De volgende stap is de hele originele server er tussenuit halen zodat alles blijft werken ondanks updates of end of life van het product. Daarvoor zullen die protocol buffers dan nodig zijn denk ik idd :)

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Nu online
Mooi dat je het zover al werkend hebt. :)
Misschien een idee om je bevindingen en code ergens openbaar neer te zetten, zodat anderen er wellicht ook mee aan de slag kunnen?

Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
vanaalten schreef op dinsdag 17 november 2020 @ 15:53:
Mooi dat je het zover al werkend hebt. :)
Misschien een idee om je bevindingen en code ergens openbaar neer te zetten, zodat anderen er wellicht ook mee aan de slag kunnen?
Ja goed plan, kan mijn script later wel ff op pastebin oid gooien. Het is geen mooi script maar wel een werkende poc. In principe voor iedereen met een Orbit BHyve toepasbaar.

Kan nu dus in ieder geval een sproeisessie initiëren via een simpele http request. Wil nog even liggen zodra ik info terug krijg over batterijniveau en dat hij klaar is, en dan heb ik wel voldoende opzich. Verder log ik alle data naar een file zodat ik genoeg historische data heb om evt in de toekomst een eigen server na te bouwen als ze de stekker eruit trekken. :)

Iedereen hier met tips tot zover super bedankt. :D Zonder hulp was ik denk ik nooit tot een werkend geheel gekomen. Dat die lui niet gewoon Jason strings heen en weer sturen maar wazige Hex strings blijft me een raadsel. Het is immers een esp32 die in de hub zit ..

[ Voor 13% gewijzigd door geerttttt op 17-11-2020 18:58 ]

Oost west, 127.0.0.1 best!


Acties:
  • 0 Henk 'm!

  • hcQd
  • Registratie: September 2009
  • Laatst online: 10:58
code:
1
0a0644675522069d

Is 44:67:55:22:06:9D het MAC-adres van je apparaat? Volgens de OUI-database zou deze aan Orbit Irrigation toebehoren.

Acties:
  • 0 Henk 'm!

  • Santford
  • Registratie: Juli 2004
  • Nu online

Santford

FP PowerMod
hcQd schreef op dinsdag 17 november 2020 @ 23:55:
code:
1
0a0644675522069d

Is 44:67:55:22:06:9D het MAC-adres van je apparaat? Volgens de OUI-database zou deze aan Orbit Irrigation toebehoren.
Dat is het MAC-adres van de hub, zie deze post.

Acties:
  • 0 Henk 'm!

  • geerttttt
  • Registratie: Oktober 2006
  • Laatst online: 10-10 17:48

geerttttt

Manisch positief

Topicstarter
hcQd schreef op dinsdag 17 november 2020 @ 23:55:
code:
1
0a0644675522069d

Is 44:67:55:22:06:9D het MAC-adres van je apparaat? Volgens de OUI-database zou deze aan Orbit Irrigation toebehoren.
Dat klopt inderdaad, van de Hub. wat stom dat ik dat zelf nog niet gezien heb. Had hem al wel allang afgeschreven als soort device-id en daardoor maar genegeerd omdat die altijd in het bericht zat, maar dat is hem idd!

Oost west, 127.0.0.1 best!

Pagina: 1