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.