So einfach findet man den Pin eines Worx Landroid heraus

So einfach findet man den Pin eines Worx Landroid heraus

So einfach findet man den Pin eines Worx Landroid heraus!

Ein IT Sicherheitsmensch meinte einst zu mir „Ein sicheres Passwort ist eins, was ich mir nicht merken kann“. Frei nach diesem Motto habe ich meinem Worx Landroid L1500 eine willkürliche Zahlenkombination als Diebstahlschutz Pin verpasst und immer wenn er benötigt wurde, hab ich kurz auf den Zettel geschaut und gut ist.

Nun, wie sollte es auch anders kommen, ist der Zettel mit dem Pin nicht wieder aufzufinden und alle Versuche mit möglichen Pins wahren leider vergebens.

Alles klar, rufen wir halt bei Worx an, und fragen was uns denn ein Pin Reset des Mähers kosten wird. Ich wurde netterweise an RTS verwiesen, das Unternehmen wickelt Reparaturen für Worx ab. Einige E-Mails später stellte sich heraus, dass die Kosten für den Reset des Mähers den Zeitwert des Roboters aus dem Jahr 2012 doch etwas übersteigt. Ich will mir ja keinen neuen Roboter kaufen, mein alter tuts ja noch bestens.

Wie viele versuche, braucht man, um den Pin zu finden?

So viele Möglichkeiten gibt’s ja auch nicht, also einfach hinsetzten und nach und nach alle Möglichkeiten durchprobieren. Insgesamt sind 4^10=10000 Pins möglich. Mir war noch bekannt, das der Pin nicht mit 0, 3, 5-9 anfängt. Also konnten 7000 Pins per se ausgeschlossen werden. Die 3000 übrigen Pins erschienen wir anfangs noch realistisch, diese einfach selber durchzuprobieren.

Bereits nach dem vierten Pin hatte ich schon keine Lust mehr den Code selber händisch heraus zu finden. Der Roboter muss pro Fehlversuch aus und wieder eingeschaltet werden und nach Bestätigung der eingegebenen Pin, braucht er ca. 3 Sekunden Bedenkzeit, bis man den Roboter wieder ausschalten kann. Zudem ist es bestimmt auch nicht gesund für die Folientastatur, wenn man da jetzt 3000 und mehrmals auf Ihr rum drückt. Also müsste eine andere Möglichkeit her, an meinen Pin zu kommen.

Das Innenleben des Roboters

Gesagt getan wurde der Roboter erstmal aufgeschraubt und geschaut was er so alles in sich drin hat. Das erste, was mir auffiel, war die auf der Platine verbaute Speicherbatterie, vielleicht ist es ja möglich damit den Mäher auf seinen Auslieferungszustand zurückzusetzen. Einen Tag später kam die Ernüchterung, nach dem Einsetzen der Batterie war auch gleich der Pin wieder da. Die einfache Lösung sollte es dann doch nicht sein. Also weiter überlegen was es für Möglichkeiten gibt.

Bruteforce ist die Lösung

Mann müsste die Tastatureingaben simulieren und automatisieren, was womöglich am einfachsten mit einem Mikrocontroller auf Arduino Basis funktioniert, da hier ein extrem minimaler Aufwand benötigt wird bis zu einem lauffähigen System. Gesagt getan, habe ich mir einen Arduino Mega 2560 Nachbau geschnappt, welchen ich noch von meinem 3D Drucker Umbau übrig hatte, ein Paar 5v Relais aus einem alten Kfz Diagnosetester und ein Steckbrett um die Schaltung schnell zusammen zu schustern. Da die Tastatur des Mähroboters eine einfache Matrix Tastatur ist, konnte ich recht schnell die nötigen Pins heraussuchen, um alle Zahlen, die OK Taste und den Powerknopf mit den Relais nachzubauen.

Zu dem Thema Software auf dem Mikrocontroller gehe ich hier jetzt nicht genau ein. Sie ist wirklich so rudimentär, dass sich die Erörterung des Quelltextes nicht wirklich lohnt. Alles in allem habe vielleicht zwanzig Minuten für die Software gebraucht, bis zum lauffähigen Zustand.

Fazit

Was soll ich sagen, mein kleines Tool funktioniert, es hat genau 1,5 Stunden gebraucht, bis das Tool den Pin herausgefunden hat. Es ist bestimmt noch Verbesserung und Optimierungsbedürftig aber es ist doch schon sehr erschreckend, wie einfach es doch ist, einen Diebstahl Schutz zu umgehen. Zugegeben mein Mäher ist aus dem Jahr 2012, mittlerweile gibt es ja Cloud, WLAN und was noch alles in den Mähern, die vermeintlich mehr Schutz bieten, aber auch dafür hätte ich die eine oder andere Idee, die Schutzmechanismen zu umgehen. Wenn ich dann irgendwann mal ein neueres Modell mein eigen nennen kann, werde ich das auf jeden Fall ausprobieren.

Weiter zu Dji Spark – Ohne GPS Empfang

10 Gedanken zu „So einfach findet man den Pin eines Worx Landroid heraus

    1. Hallo, entschuldige die Späte Antwort, deine Nachricht ist zwischen den ganzen russischen Spams untergegangen.
      Ich muss heute Abend mal schauen, ob ich Fotos finde, wo man den Aufbau sieht. Es war eigentlich nur ein Arduino Mega 2560 mit LCD Display
      und einigen Relais, der die Tastatur simuliert. Das Programm dafür habe ich noch, den Aufbau leider nicht mehr.

  1. Hallo Jörn,
    Ich habe das gleiche Problem, dein Blog ist 1 Jahr alt, hoffe gibst mir noch eine Antwort 😉
    Kannst du mir ung. erklären wie du die Tastatur simuliert hast, wo was angehängt mit den Relays

    1. Hallo, entschuldige die Späte Antwort, deine Nachricht ist zwischen den ganzen russischen Spams untergegangen.
      Es war eigentlich nur ein Arduino Mega 2560 mit LCD Display und einigen Relais, der die Tastatur simuliert.
      Ich hab mir die Matrix der Tastatur mit einem Multimeter rausgemessen, um zu wissen, welche der Pins am Stecker gebrückt werden, wenn z.b die „0“ gedrückt wird.
      Das dann für alle Zahlen, die die „Bestätigen“ Taste und den „Power“ Knopf.
      Dann habe ich die Relais an den passenden Pins angeschlossen und in 4 Schleifen für die 4 Stellen des Codes die Relais entsprechend anziehen lassen.
      Als Beispiel: bei der Eingabe 4711 -> Relais „4“ -> Relais „7“ -> Relais „1“ -> Relais „1“ -> Relais „OK“ -> kurz warten -> Relais „Ein/Aus“ -> kurz warten -> Relais „Ein/Aus“
      Das Programm dafür habe ich noch, den Aufbau leider nicht mehr.

  2. Hallo Jörg,
    Danke für die Antwort 😉 … das mit den Zahlen habe verstanden 😉 … mich würde das Multimeter Ergebnis interessieren (Falls du sie noch weisst) , ich habe vom Keypad 10 Pins (Ausgang). Programm habe schon geschrieben 😉

  3. another job well done 😉 –> pin herausgefunden
    Ich habe einen WG756E Roboter aus dem Jahre 2016 und die Pinbelegung (diese zwei Pins muss man kurz schließen mit dem Relay):
    (Taste 1: Pin 2,8) (2:2,7) (3:2,6) (4:3,7) (5:3,6) (6:4,9) (7:4,6) (8:5,9) (9:5,8) (0:5,7) (Ok:4,8) (On/Off: 1,10)

  4. Super interessant. Mich würde interessieren, wie du erkennt hast, wann dein Programm fertig ist, resp. den richtigen Pin gefunden hat?

    Da dein Programm nach 3 Versuchen den Roboter wieder einschalten muss, würde es vermutlich, soblad es den richtigen Pin gefunden hat noch maximal ein oder zwei Pins probieren und dann den Roboter ausschalten. Danach würde es 3 pins versuchen und anschliessend den Roboter einschalten und dann wäre man wieder in der bruteforce Schleife…

    Beispiel:
    Versuche 0000 (pin falsch)
    Versuche 0001 (pin falsch)
    Versuche 0002 (pin falsch Roboter schaltet automatisch aus)
    Roboter einschalten
    Versuche 0003 (pin richtig)
    Versuche 0004 (passiert irgendetwas)
    Versuche 0005 (passiert irgendetwas)
    Roboter einschalten (führt vermutlich dazu, dass der Roboter ausgeschaltet wird)
    Versuche 0006 (passiert nichts, da Roboter ausgeschaltet ist)
    Versuche 0007 (passiert nichts, da Roboter ausgeschaltet ist)
    Versuche 0008 (passiert nichts, da Roboter ausgeschaltet ist)
    Roboter einschalten
    Versuche 0009 (pin falsch)

    1. Hi, in der Tat war das ein Problem, was ich anfangs nicht programmtechnisch lösen konnte, da ich auf der Platine nicht herausfinden konnte, was passiert, wenn der Pin richtig ist. Ich habe das dann so gelöst, das ich mit einer Kamera das Display über Nacht gefilmt habe, und dann in Zeitraffer geschaut habe ob der richtige Pin dabei war.

Schreibe einen Kommentar