433 Mhz Brutforcer

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 433 Mhz Brutforcer (Jammer)


    Disclaimer:
    Das hier Gezeigte dient nur zur Verdeutlichung wie unsicher 433 Mhz Funksteckdosen sind. Das ist KEINE Aufforderung zum Nachmachen. Jeder handelt auf eigene Verantwortung.

    Vorwort:
    Da immer mehr Leute eine Hausautomation einsetzten, wollte ich einmal demonstrieren, wie unsicher einige 433Mhz Funksteckdosen sind.
    Zu erwähnen ist, dass einige Komplettsysteme verschlüsselt sind und einen Rolling-Key benutzen. Damit sind diese relativ sicher.
    Viele benutzen aber einfache und unverschlüsselte Steckdosen, wie in meinem letzen Post gezeigt. Das hier gezeigte Programm benötigt
    Raspberry-Remote. Wie dieses insatlliert wird, habe ich auch im letzten Post gezeigt.
    Hier geht es zu dem Post: Lampen Sprachsteuerung via Google Now

    Das Programm:
    Wie ihr auf dem nachfolgenden Bild sehen könnt, gibt es 128 Möglichkeiten um die Steckdose einzuschalten und nochmal 128 um sie auszuschalten. Diese 256 Möglichkeiten werden 10 mal durchlaufen. Dafür brauchen der Brutforcer knapp 21 Minuten.
    1e88f1-1487611182.jpg


    Hier der Quellcode:


    Oder einfach hier die .cpp runterladen:
    https://www.file-upload.net/download-12324022/bf433.cpp.html


    So sieht es aus, wenn das Programm läuft (via Putty):
    19d157-1487611613.jpg


    Schlusswort:
    Über den Sinn von diesem Brutfocer kann man natürlich streiten. Jedoch wäre das ganze Gebilde mit einer Powerbank mobil.
    Die Reichweite ist natürlich beschränkt, reicht jedoch um seine Nachbarn in den Wahnsinn zu treiben.
    Und es ist hauptsächlich ein Brutforcer und kein Jammer. Jedoch hatte ich Probleme mit der Fernbedienung durchzukommen, während das Programm läuft.

    Natürlich habe ich auch wieder ein Video zu diesem Thema gemacht:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    2 Mal editiert, zuletzt von hyle (27. April 2020 um 17:55) aus folgendem Grund: Codeblock aktualisiert

    • Offizieller Beitrag

    Das es gemeldet wurde. Ich persönlich hab da kein Problem mit. Das ist kein Hexenwerk, den Code sollten Programmieranfänger nachvollziehen können und als mahnendes Beispiel find ich ok. Besser als nur zu schreiben "benutzt ja nicht Funksteckdosen....UNSICHER!!!!!einself". wer ein Problem damit hat kann mich gern per PN anschreiben, bitte nicht in diesem Thread diskutieren

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (20. Februar 2017 um 19:42)

  • derbaertigebube: Bei meinen Intertechno-Steckdosen muß man noch nicht mal den Steckdosencode einzeln durchschalten. Die kann man auch alle auf einen Schlag (per 31) schalten, was z.B. das Schalten von Gruppen erlaubt. Damit käme man mit den 2^5 Schaltungen für den Systemcode aus. Aber da mögen die Hersteller unterschiedliche Implementierungen besitzen.

  • Finde ich gut das man sich über die Sicherheit Gedanken macht und aufzeigt wie unsicher manche Haushalte sind :thumbs1:

    Allerdings hat die Problematik nicht viel mit speziell dem Pi zu tun, denn Steckdosen schalten kann man über jedes System worüber solch ein 433MHz Sender betrieben werden kann also auch ein AVR oder ESP usw.


    Übrigens heißt es Bruteforce nicht Brutforce :fies:
    Wenn man nach "bruteforce 433" googled findet man auch einiges dazu...

  • da verweise ich noch mal auf:
    433 Hz Rolladen-Sender decodieren
    läuft seit einem Jahr zuverlässig, muss immer noch in eine Platine

    PS Intertechno, Gruppenbefehle gehen leider nicht bei Rolladenempfänger, k.A. warum dabei wäre das dort sinnvoll, so muss ich jedes Kommando einzeln raustickern und weil einige Empfänger weiter weg sind gestaffelt, 6x die am weitesten und dann runter bis 2x für die dem Sendernächsten Empfänger.

    das hier hatte ich nachgebaut

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    mit 4x Mignon Eneloop auf dem Steckbrett auch portabel um eine Runde um den "Block" zu drehen, mein Nachbar wunderte sich das sein Küchenlicht und sein Radio ein Eigenleben führten, ich habe ihn aber aufgeklärt, wir haben ein gutes Nachbarschaftsverhältnis.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (21. Februar 2017 um 09:53)

  • Ich kenne jetzt das genaue Protokoll nicht, falls es aber für den hier beschriebenen Angriff anfällig ist, geht das deutlich schneller:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Das Prinzip ist, die De-Bruijn Folge (https://de.wikipedia.org/wiki/De-Bruijn-Folge) zu senden statt der Einzelcodes.

  • @ChrisA: Interessant!!! Ich denke aber, daß das hier nicht geht, da die Telegramme aus Störsicherheitsgründen i.d.R. mit einem sehr langen Sync-Signal (Dauerträger) beginnen, auf den sich der Empfänger dann synchronisiert. Die Länge liegt bei round about 1/4 der gesamten Wortlänge und die Codierung selbst bringt wiederum Redundanz in die eigentliche Bitfolge der Information. Zudem muß ein gesamtes Datagramm bei manchen Steckdosen 3x hintereinander korrekt empfangen worden sein, damit der Empfänger die Schaltoperation auch ausführt (auch wieder aus Gründen des schlechten Übertragungsweges).
    Ist aber auch egal - De Bruijn - wieder was gelernt.


  • .....Zudem muß ein gesamtes Datagramm bei manchen Steckdosen 3x hintereinander korrekt empfangen worden sein, damit der Empfänger die Schaltoperation auch ausführt (auch wieder aus Gründen des schlechten Übertragungsweges).

    bei meiner LIB RCswitch für den Arduino nervt das aber, es wird ein Rolladen gestartet und manchmal gleich wieder gestoppt, entspricht 2 Tastendrücke auf der Handfernbedienung.

    Ich weiss es gibt eine Möglichkeit die Zahl der Wiederholungen einzustellen, dummerweise blicke ich bei cpp nicht durch wie das zu machen ist.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (22. Februar 2017 um 20:11)

  • ./brut: line 12: namespace: command not found


    ./brut: line 14: typedef: command not found


    ./brut: line 15: typedef: command not found


    ./brut: line 49: typedef: command not found


    ./brut: line 52: extern: command not found


    ./brut: line 72: union: command not found


    ./brut: line 89: syntax error near unexpected token `__wait_terminated'


    ./brut: line 89: ` } __wait_terminated;'

  • Du musst es erst kompilieren - das ist kein bash Script sondern C++

    g++ -o brute bf433.cpp

    Desweiteren ist in dem Programm leider hardcoded der Pfad steckdosen/raspberry-remote/send fest hinterlegt, das Programm muss also in einem Verzeichnis liegen wo es dann genau diese Verzeichnisstruktur gibt.

    Ist aber ehrlich gesagt auch etwas bescheiden: ein C++ Programm was über system() und sudo ein anderes C++ Programm ausführt... :dau2:

  • Hallo,

    ich wollte den Brutforcer auch gerne mal testen. Dafür habe ich die die Verzeichnisse „Steckdosen“ usw angelegt und die Datei bft433.cpp kompiliert.

    Allerdings wird die Datei „send“ irgendwie falsch aufgerufen.

    Muss ich vor dem kompilieren die Zeile string command = "sudo steckdosen/raspberry-remote/send " in der bft433.cpp noch anpassen?


    Raspberry pi 4, pi 3 Model B , Zero WH , NodeMCU

  • Siehe Beitrag#12


    ...ich krieg aber auch jedes mal aufs neue Kopfschmerzen bei sowohl Thread-Titel als auch dem Sourcecode... Nicht nur dass es Bruteforce heißt (erwähnte ich schon) sondern auch wie der Code an sich geschrieben ist, Benennung der Variablen usw... Unter einem Jammer versteht man ebenfalls etwas ganz anderes

    :elektro:

  • Sorry für die späte Antwort. Die kompilierte Datei muss aus dem Hauptverzeichnis gestartet werde und nicht so wie ich es versucht habe aus dem Verzeichnis steckdosen. Da hätte ich auch selber drauf kommen müssen. Danke!

    Bei dieser Aktion habe ich auch leider festgestellt das mein Sender wahrscheinlich kein Signal sendet, bzw. keiner meiner Empfänger auf ein Sendesignal reagiert. Jetzt suche ich eine Möglichkeit die Hardware auf Funktion zu testen.

    Raspberry pi 4, pi 3 Model B , Zero WH , NodeMCU

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!