Ankündigung

Einklappen
Keine Ankündigung bisher.

Projekt-Passwort vergessen? ETS5 Password Recovery Tool

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    ETS Projekt-Passwort vergessen? ETS5 Password Recovery Tool

    Gerade auf github entdeckt: https://github.com/robertguetzkow/et...sword-recovery
    Da die ETS einen fest-eingebauten Key benutzt, lassen sich verlorengegangene Projekt-Passwörter aushebeln.

    #2
    Wenn sich das bewahrheitet (wovon ich ausgehe), ist das eine unterirdisch schlechte Implementierung mit Auswirkungen auf KNX secure.
    Danke für dasTeilen!
    Gruß Bernhard

    Kommentar


      #3
      Ich sage es mal so "na wie gut das die ETS5 jetzt fertig ist und bald die ETS6 kommt."

      The KNX Association plans to address the issue in the ETS6 which has not been publicly released at the time of writing. According to Joost Demarest, CTO and CFO of the KNX Association, ETS5 will not receive any patches as development for that version has already been concluded. He permitted immediate publication of the issue on 2021-07-12, forgoing the offered 90 days delay for the disclosure.
      Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

      Kommentar


        #4
        Ivan Medveded-Gedächtnis-Passwort wie geil

        Kommentar


          #5
          Das klappt nur im lokalen Projektspeicher, nicht mit exportieren Projekten und nicht im Projektarchiv.

          Kommentar


            #6
            Ah nettes Detail. Schade, ich hatte schon gehofft mit fremden Projekten.
            Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

            Kommentar


              #7
              Zitat von Klaus Gütter Beitrag anzeigen
              Das klappt nur im lokalen Projektspeicher, nicht mit exportieren Projekten und nicht im Projektarchiv.
              Darf ich fragen warum?
              Gruß Bernhard

              Kommentar


                #8
                Warum das in Projektspeicher nur verschleiert ist oder warum das in exportierten Projekten verschlüsselt ist?

                Kommentar


                  #9
                  Ich meinte, warum die Verschlüsselung in exportierten Projekten davon nicht betroffen und sicher ist.
                  Gruß Bernhard

                  Kommentar


                    #10
                    Weil da wirklich mit dem Projektpasswort verschlüsselt wird. Nicht

                    Kommentar


                      #11
                      Was wurde fuer ein Aufwand betrieben um das Image vom unisicheren KNX loszuwerden!
                      Und dann werden hier ein paar Zeilen Code gespart.
                      Das ging nur so lange gut, weil keiner geschaut hat.
                      Super Arbeit @ Robert Gützkow!

                      Ich habe den Code mal etwas komprimiert um deutlich zu machen wie einfach das ist (wenn man die Luecke erstmal gefunden hat).
                      (Python 3, nur Projektpasswort, Rest analog.)

                      Code:
                      # ALL CREDIT TO: https://github.com/robertguetzkow/ets5-password-recovery
                      
                      import base64
                      import pyaes
                      import glob
                      import os
                      import xml.etree.ElementTree as ET
                      
                      PROJECT_STORE = "C:/ProgramData/KNX/ETS5/ProjectStore/P-????"
                      
                      KEY = base64.b64decode("Ir0WzbuWsOGOl3uz/vrdiIbn44ovim/Z0vL1ZjrCA3E=")
                      IV = base64.b64decode("jpd7s/763Yjmrmy+rj58rw==")
                      
                      
                      def decode(cipher_b64):
                        cipher_text = base64.b64decode(cipher_b64)
                      
                        aes = pyaes.AESModeOfOperationCBC(KEY, iv=IV)
                        decrypted = aes.decrypt(cipher_text)
                      
                        return decrypted.decode("utf-16")
                      
                      
                      def decode_project(file):
                        with open(file, encoding="u8") as f:
                          root = ET.fromstring(f.read())
                      
                        info = root.find(".//ProjInfo")
                        pwd = info.attrib.get("ProjectPassword")
                      
                        if pwd:
                          decoded = decode(pwd)
                        else:
                          decoded = "(no password set)"
                      
                        return info.attrib["Name"], decoded
                      
                      
                      def main():
                        for path in glob.glob(PROJECT_STORE):
                          project_name, decoded_password = decode_project(os.path.join(path, "P"))
                          print(project_name, "---", decoded_password)
                      
                      
                      if __name__ == "__main__":
                        main()

                      Kommentar


                        #12
                        Zitat von Klaus Gütter Beitrag anzeigen
                        Weil da wirklich mit dem Projektpasswort verschlüsselt wird.
                        Es wird aber nur der P-xxxx Ordner mit ZipCrypto verschluesselt.

                        Da wir wissen, dass beide Dateien darin anfangen mit

                        Code:
                        <?xml version="1.0" encoding="utf-8"?>
                          <KNX
                              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                              CreatedBy="ETS5"
                        Gibt es evtl einen einfachen Angriff auf die Verschluesselung.

                        Kommentar


                          #13
                          Das klingt alles sehr vielversprechend.

                          Zitat von Zepp Beitrag anzeigen
                          einen einfachen Angriff auf die Verschluesselung.
                          Habe vorhin einen interessanten Ansatz gefunden: bkcrack
                          Wenn man die Attacke auf die Datei project.xml richten würde (die eh nur 1KB groß ist) und mit knapp 100 Bytes plaintext kennt, könnte das sogar recht schnell gehen.
                          Im Beispiel hat er für eine 1,2KB Datei mit 13 Byte plaintext es in 6 Minuten geschafft.

                          Werde das die Tage mal ausprobieren ob und wie gut das klappt.
                          OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                          Kommentar


                            #14
                            Zitat von proggerKA Beitrag anzeigen
                            Das klingt alles sehr vielversprechend.
                            Ja, so kann man es auch nehmen. Mir kommt da eher "erschreckend" in den Sinn.

                            Von project.xml ist mehr bekannt als unbekannt. Sollte sich aushebeln lassen. Viel Spass!

                            Kommentar


                              #15
                              Vll hätte ich auch eher Interessant schreiben sollen.

                              Ich hab das mal unter die Lupe genommen und es funktioniert nicht so einfach.
                              Die Dateien sind komprimiert und somit findet man "<? xml version='1.0'[...]" nicht in der Datei.

                              Wenn man den Namen des Projekts in der XML ändert hat man keine 12 Bytes mehr am Anfang die überall gleich ist.
                              OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                              Kommentar

                              Lädt...
                              X