AES Hack -- HM-CFG-LAN

Hallo,

nach dem ich einiges mit Homegear und dem COC hinbekommen habe, möchte ich gerne nachvollziehen und testen wie der Hack mit dem HM-CFG-LAN funktioniert.

Unter Windows läuft bei mir der BidCosServices. Der HM-CFG-LAN ist verbunden und funktioniert mit anderen Geräten.
Gibt es irgendwo beschrieben wie ich den HM-CFG-LAN und der php Datei den Standard AES Schlüßel nutzen kann um Geräte Fremdzusteuern?

Wie im Vortrag:
media.ccc.de/browse/congress/201 … malli.html

Liebe Grüße
anox

Hallo,

nein, das ist nirgendwo beschrieben, ist aber ganz einfach. Was wir im Vortrag vergessen hatten zu erwähnen, ist wie die Zentralenadresse zu setzen ist: Die wird dezimal in die Datei “C:\ProgramData\Bidcos-Service\ids” eingetragen. Danach dann einfach, die BidCoS-Dienst-Vorlage wie im Vortrag anpassen (siehe Anhang), den BidCoS-Dienst starten und dann über XML-RPC ansprechen (im Vortrag haben wir PHP verwendet). Inzwischen ginge das Ganze im Prinzip auch mit Homegear direkt, allerdings lasse ich den Standardschlüssel aus Sicherheitsgründen nicht zu. Diese Sperre müsste man im Quelltext entfernen. Dann geht’s aber.

Liebe Grüße

Sathya
BidCoS Service Device Templates.zip (2.59 KB)

Hallo,

supi vielen Dank!

Ein kleines (großes :smiley: ) Problem hab ich noch.

Ich hab noch nie wirklich mit XML-RPC gearbeitet, könntest du vlt. das kleine php Skript zur Verfügungstellen :wink:
Wäre super :slight_smile:

Liebe Grüße
anox

Hey,

ist schon quasi auf der Downloadseite :wink: [1]. Das Script vom Vortrag habe ich nicht mehr.

Folge einfach den Anweisungen in der ReadMe. Du brauchst als RPC-Funktion nur setValue [2].

Liebe Grüße

Sathya

[1] homegear.eu/downloads/Homegear_P … Client.zip
[2] homegear.eu/index.php/SetValue

Hallo sathya,

vielen Dank für deine Hilfe!!! :slight_smile:

Hab alles bisher ausprobiert und macht für mich alles soweit Sinn.

Das Templatefile für ein Device hab ich kopiert und versucht auf mein Device, ein “HM-PB-2-WM55” anzupassen.

<device serial="LEQ0572203" type="HM-PB-2-WM55" address="0xXXXXXX" aes_key_index="0" firmware_version="2.5" bidcos_interface="YYYYYYYYYYYYYYY"> <config> <list index="0"> <chunk address="0x00" dev_dirty="0" used="0" data=""/> </list> </config> <channel index="0" type="MAINTENANCE"/> <channel index="1" type="HM-PB-2-WM55" aes="true"> <config> <list index="1"> <chunk address="0x00" dev_dirty="0" used="0" data=""/> </list> </config> </channel> <values/> </device>

address= und bidcos_interface= wird natürlich dementsprechend noch eingetragen aber das ganze hat wohl noch andere Fehler…

Was muss ich den beachten/ändern um den Funkwand Taster einzubinden. Bei der Überprüfung des Device bekomme ich den Fehler dass irgendwas mit dem Channel nicht stimmt.

<Error> Could not get channel description for type HM-PB-2-WM55
<Error> Could not add channel HM-PB-2-WM55
<Error> Error loading device file LEQ0572203.dev
<Error> Lan Interface LEQ0103093 is configured for encryption while we are not
<Info> Disconnected from Lan Interface LEQ0103093

Hast du eine Idee?

Liebe Grüße
anox

Hey,

warum willst du einen Sensor hinzufügen? Jedenfalls ist das hier der erste Fehler, der behoben werden sollte:

Deine BidCoS-Dienst-Konfiguration ist scheinbar falsch. Kannst du Geräte an den BidCoS-Dienst über den HM-CFG-LAN über den normalen Weg mit Hilfe der Konfigurationssoftware anlernen?

Liebe Grüße

Sathya

Hey,

mein Szenario sieht folgendermaßen aus:

Der Wandsender soll ein Funkschaltaktor An- bzw. Ausschalten. Der Wandsender sowie der Funkschaltaktor ist über die CCU2 Zentrale angelernt. Beide kommunizieren mit dem Standard AES Schlüßel der CCU2. Nun möchte ich mittels dem HM-CFG-LAN, dem BidCos Dienst und dem PHP Skript (via XML-RPC) den Funkschaltaktor “übernehmen”.

Ich kann den Funkwandtaster anlernen! :slight_smile:

Grüße anox

ok, aber dann reicht es doch den Schaltaktor hinzuzufügen? Dich mit dem BidCoS-Dienst gegenüber dem Schaltaktor als HM-PB-2-WM55 auszugeben ist nicht ganz so banal. Dafür musst du nicht den HM-PB-2-WM55 hinzufügen, sondern die XML-Datei des Schaltaktors anpassen. Den HM-PB-2-WM55 solltest du aber natürlich trotzdem hinzufügen können. Nimm dir am besten die Original-dev-Datei nach dem Anlernen und probier zunächst einmal, ob es nach dem Ablernen und Anlernen an die CCU2 damit klappt. Danach entferne nach und nach alle Informationen aus der Datei, die du als Angreifer nicht wissen kannst. Die entstandene Minimaldatei wird vermutlich Fehler im Log erzeugen, sollte aber trotzdem funktionieren.

Liebe Grüße

Sathya

Hallo sathya,

erstmal größte Hochachtung vor eurer Arbeit.
Ich habe mir gerade eure Session angeschaut und war fasziniert und buff gleichermaßen.

Hier erschleichen sich mir gleich zwei Fragen (sorry ich blute noch mit dem ganzen Thema, bin also noch nicht voll im Thema)
Das ändern des Default AES passiert doch seitens Homematic mit dem Systemschlüssel richtig ?

In wieweit (sorry ich kapiere es einfach nicht) spielt jetzt hierbei der RFKEy von Homegear eine Rolle ? :slight_smile:
Natürlich möchte ich es soweit ich kann absichern und bin deswegen an den Lösungsansätzen interessiert.

Gab es denn mittlerweile ein Statement von Homematic ?

Gruß
Thorsten

Hallo Thorsten,

von eQ-3 gab es bisher nur das Statement, dass die nicht sonderlich glücklich über unseren Vortrag waren (milde ausgedrückt). Sonst hätten wir dieses Jahr auch wieder einen Vortrag gehalten - wir sind nämlich Hackingtechnisch ein ganzes Stück weiter :wink:.

Wenn du rfKey gesetzt hast ist alles gut. Homegear lässt aus Sicherheitsgründen gar nicht zu, dass du den Standardschlüssel verwendest. rfKey sollte aber natürlich auch am besten nicht dem Standardwert der physicalinterfaces.conf entsprechen… Solange jetzt niemand einen Anlernvorgang sniffen kann, ist alles sicher.

Liebe Grüße

Sathya

Was empfiehlst du denn derzeit in Sachen AES? Standardmässig paire ich bei mir immer alle neuen Geräte und schalte danach sämtliche Kanäle auf “gesichert”, also mit AES über den Homematic-Konfigurator unter Windows um. Die Schaltverzögerung merkt man aber schon - das ist es mir aber wert, damit niemand von aussen kritische Geräte an-/ausschalten kann. Die Frage wäre nur, wie wahrscheinlich es ist das jemand mit dem Notebook draussen vor der Tür sitzend in relativ kurzer Zeit an die relevanten Informationen kommt? Du sagst, dass ihr Hackingtechnisch sogar schon ein Stück weiter seid, insofern können natürlich auch andere Personen bereits ähnliche Informationen haben. Wie sicherst du selbst deine Funkkomponenten in der Praxis ab?

Für alle kritischen Geräte würde ich AES auf jeden Fall einschalten. Unser aktueller Stand ist, dass solange niemand “Schlüsseländerungspakete” snifft, das System sicher ist. Diese Pakete werden nur beim Anlernen, beim Einschalten von AES für ein Gerät oder beim Ändern von “rfKey” übertragen. Mit Homegear lässt sich das Senden dieser Pakete nicht nachträglich triggern. Nach abgeschlossener Konfiguration ist also alles sicher.

Aktuell halte ich es allerdings für sehr unwahrscheinlich, dass jemand mit dem Notebook vor der Tür sitzt und versucht die HomeMatic-Kommunikation zu beeinflussen. Je mehr bestimmte Systeme allerdings im Einsatz sind, gerade auch für sicherheitsrelevante Aufgaben wie Alarmsysteme, desto wahrscheinlicher wird vermutlich auch ein Angriff. Ich hoffe daher mal, dass die nächste Generation von Automationsgeräten vollverschlüsselt kommuniziert.

Liebe Grüße

Sathya