Reverse engineering v praci – kucháme firmware čínské kamery

S projektem Loxonu jsem se dostal před otázku, jak v zabezpečovačce při aktivaci dveřního čidla uložit snapshot z kamery. U kamer bývá zvykem, že existuje specifická URL adresa, na které jsou veřejně (nebo pod heslem) dostupné aktuální snapshoty. 
Seznam nejběžnějších URL adres je zde .

Pro ostatní nepopsané kamery je možnost, zkusit to louksnout svépomocí, přes reverse engineering firmwaru kamery.

V přvní řadě je potřeba získat tento firmware. U čínských kamer to nebývá většinou problém (Misecu), prodejce na požádání pošle 🙂

Pokud máme firmware, podíváme se do něj, co obsahuje. V binárním souboru (.bin), zkontrolujeme jeho hlavičku, kdyz máme štestí a výrobce není blb, tak se jedná o standardní kompresi LZMA (v hlavičce souboru začínáme PK ….). Stačí jej tedy rozbalit (přejmenovat koncovku .bin na .zip a Windowsy si s tím hravě poradí)

Po rozbalení máme k dispozici další soubory, většinou jde již o vlastní obrazy (img). Může jich být i více, pokud to výrobce rozdělil např. na operační system, uzivatelskou a aplikační část.

Zde si již s obyčejným průzkumníkem neporadíme, protože obrazy disku můžou být v různých formátech FS (ext4, squashfs, …). Pro rozbalení se mě osvětčilo použít nástroj binwalk, který detekuje použitý systém a dokáže i extrahovat soubory v něm uložené.

Nainstalujeme si tedy BinWalk (v linuxu je to hračka): sudo apt-get install binwalk

Použití binwalku je pak jednoduché : binwalk -e web-x.cramfs.img, kde parametr -e je příkaz k extrakci.

Po úspěšném rozbalení si můžeme prohlídnout výsledek.Zajímat nás budou soubory html, js, jsp,… kde se dozvíme, jak to celé vůbec pracuje.

V tomle případě byl nejzajímavější soubor mt.js, který se stará o vykreslování vlastních obrázků do iframu stránky. Bohužel to zde nepůjde napřímo 🙁 Zde jsou raw data posílána do pomocného pluginu v prohlížeči, který je zpracovává.

Pro zajimavost ale stojí zmínit soubor v /etc/passwd 🙂 

PS: pěkný článek jak se dostat do kamery přes RS232 – seriovou linku je zde.

Permanent link to this article: https://www.elvisek.cz/2018/10/reverse-engineering-v-praci-kuchame-firmware-cinske-kamery/

Loxone – projekt topení

Jako první a nejdůležitější projekt (vlastně hlavní věc, o kterou se měla RaspberryPi starat) je inteligentní topení v domě.

Jelikož zatím nemáme auto-regulovatelné hlavice na radiátorech (zde je prostor pro další upgrade), zvolil jsem možnost vytvořit si vlastní centrální termostat 🙂

Celý systém vychází z jednoduchého sledování a vyhodnocování vstupních dat (1-wire teplotní čidla DS18B20, jazíčkové relátka z Ali) a následné ovládání (zapnutí/vypnutí) kotle pomocí jednoho výstupního relé na Miniserveru 🙂

Pro zajímavost – teplotní čidla DS18B20 vpasované do konektoru RJ45 🙂

Loxone pro svůj systém dodává velmi intuitivní aplikaci Loxone Config, ve které se veškeré nastavení odehrává. Stačí definovat vstupní senzory, aktory a správně zapojit rozšiřovací extendery (1-wire, RS485, ModBus,…). Následně jednotlivé bloky zapojit do sebe, propojování je snadné, nemusí se řešit žádné převody jednotek nebo přetypování. Jen se propojují vstupy a výstupy mezi sebou.

Už se vůbec nemusí řešit nekompatibilita senzorů mezi sebou, diagnostika a ladění vlastního zapojení železa a všech zapojených prvků.

Proto jsem měl, za necelé 3 dny,  vše hotovo. Výsledek předčil očekávání jak mé, tak i rodiny, která nyní jedním tlačítkem dokáže ovládat topení v celém domě 🙂

V neposlední řadě je skvělá i následná vizualizace (podpora v klasických webových prohlížečích (HTML5) i mobilních aplikací pro iOS a Android), přes kterou se celý projekt ovládá.

Celé logické schéma „termostatu“ v 1.1 (20181015) 🙂  🙂

Permanent link to this article: https://www.elvisek.cz/2018/10/loxone-projekt-topeni/

Loxone – příprava rozvaděče

S novým projektem Loxonu bylo třeba připravit nový rozvaděč pro zapojení slaboproudu. Místo na stěně hned vedle IT racku vyšlo na jedničku.

Na vyvedení přívodů jsem použil Krone svorky, které jsou na tento typ práce jako dělané (spojovací krone, zemnící můstek, držák svorkovnice).

 

A jako další přišel konečně na řadu Loxone Miniserver, jeho extendery a 24V zdroj.

Nakonec zbylo místo i na původní RaspberryPi s SSD diskem, které bude sloužit jako sběrač logu a zobrazovač trendů (SysLog server a Grafana Server).

 

Permanent link to this article: https://www.elvisek.cz/2018/10/loxone-priprava-rozvadece/

Loxone – o trošku chytřejší dům

Po cca 5ti letech, neustálého koketování s automatizací domu pomocí udělátek typu RasPi, 1-wire sběrnic a senzorů, které víc nefungují než měří, OpenHabu, který je úžasný, ale musíte mít čas se s ním vyhrát. Nadešel čas do toho praštit a pořídit si něco, co fakt funguje ….

Miniserver je základní prvek pro centrální automatizaci a tím vytvoření chytrého domu. Ať už se jedná o načítání stavu z tlačítek, spínání zařízení, ovládání osvětlení, topení nebo řízení komplexních systémů jako je třeba fotovoltaika.

Miniserver je vybaven digitálními i analogovými vstupy a výstupy, jimiž lze ovládat a pracovat s velkým množstvím senzorů a zařízení.

  • 8 spínaných výstupů (relé)
  • 8 digitálních vstupů pro připojení tlačítek, dveřních a okenních kontaktů, …
  • 4 analogové vstupy pro připojení snímačů teploty, vlhkosti, …
  • 4 analogové výstupy pro připojení pohonů atp.
  • LAN rozhraní pro ovládání síťových zařízení, jako je TV atp.
  • KNX / EIB rozhraní.
  • Rozšíření až o 30 extensionů – Tree, Air, 1-wire, modbus, …

odkaz na stránky výrobce :  www.loxone.com

odkaz na podporu – dokumentaci

Rozšíření vstupů/výstupů např, přes Railduino, o tom podrobněji příště 🙂

Permanent link to this article: https://www.elvisek.cz/2018/10/loxone-o-trosku-chytrejsi-dum/