Dzień dobry!
Poniżej przedstawię pokrótce opis techniczny samego urządzenia oraz kroki w celu uwolnienia od chmury producenta bez zmiany firmware.
Kamerę kupiłem na znanym portalu aukcyjnym, kosztowała wtedy 75 zł, obecnie 85 zł.
OPIS TECHNICZNY
Dane techniczne wg sprzedawcy:
Do instalacji kamery służy odpowiednia aplikacja (Aview) dostępna na urządzenia mobline.
Przy jej pomocy możemy dołączyć ją do domowej sieci WiFi (STA) lub używać w trybie AP (łączymy się do jej hotspota).
Aby móc łączyć się z kamerą zdalnie musimy zalogować ją do chmury Alibaby (CN) i wszystko co się z nią dzieje przechodzi przez ich serwery(!).
To rodzi ogromne niebezpieczeństwo bo mamy w naszym LAN obce urządzenie z pełnym dostępem do sieci, a nie muszę tłumaczyć co można nabroić w takiej konfiguracji..
Urządzenie łatwo się rozbiera, 3 śruby spajają kule z kamerą a całość zawieszona na uszach mechanizmu obrotowego (1 śruba).
Rozebrać musiałem, ze względu na wymianę kabla zasilającego - oryginalny to 15 cm przewodu z wtyczką, wymieniłem na dłuższy.
Nie chcę wnikać w szczegóły budowy - jedna uwaga, mechanizmy obrotowe nie posiadają informacji o pozycji, wszystko opiera się na ilości kroków obrotu,
przy uruchomieniu musi nastąpić pełnozakresowa kalibracja w obu osiach.
Poniżej kilka zdjęć wnętrza.
Płytka główna:
Moduł WiFi:
Sterowanie silnikami i ich wygląd:
PODSŁUCHIWANIE PROTOKOŁU
Kamera jak większość posiada obsługę protokołu RTSP, umożliwiającego transfer obrazu, dzwięku i nie tylko (duplex).
Nie znalazłem w sieci żadnego opisu konkretnej adresacji tego urządzenia, ale po skanowaniu jej dostępnych portów ten najbardziej interesujący,
554 okazał się otwarty - jednak żadna z kombinacji popularnych adresów nie działała.
Postanowiłem podsłuchać jej komunikację za pomocą PCAPdroid (na telefonie) ale komunikacja z zewnętrzną chmurą była od razu zabezpieczona TLS więc nie wiele się dowiedziałem.
Przykłady ramek:
Z pomocą przyszła zmiana trybu połączenia na AP, zresetowałem do fabryki i podłączyłem się bezpośrednio.
Okazało się ze aplikacja bez problemu używa jedynie RTSP do komunikacji i w dodatku bez szyfrowania.
Zapisałem próbki pakietów z telefonu podczas pracy i poddałem analizie.
STREAM OBRAZU
Po wstępnej analizie użyłem prostego skryptu python w celu przechwycenia strumienia video.
Wystarczy użyć gotowca w postaci openCV (potrafi natywnie dekodować ten stream):
Powyższy przykład pobiera ramki z obrazem, skaluje do i wyświetla podgląd na ekranie.
Tak przygotowane możemy dowolnie używać, zapisywać jako bitmapę bądź w locie kleić film.
W moim przypadku trafiają one do rpi w którym AI analizuje dane i tworzone są nagrania (NVR).
STEROWANIE MECHANIZMAMI KAMERY
Kamera posiada mechanizm obrotowy. Dostęp do niego również odkryłem w logach transmisji RTSP.
Okazuje się, że kamera ma możliwość odczytu i reakcji na komunikaty zwrotne. Podczas prac udało mi się wywołać listę jej parametrów:
Aby móc zarządzać tymi ustawieniami należy wysłać odpowiednią ramkę z komendą.
Komendy sterujące o dziwo uruchamiają się bez logowania!
obrót jest 2 etapowy, najpierw start:
następnie zatrzymanie obrotu:
Parametr -cmd wskazuje na rodzaj akcji (zgodnie z listą powyżej)
Czas pomiędzy wysyłką pakietów to kąt zależny również od parametru -data2 55 (prędkość).
Kolejny przykład, ustawienie daty i godziny:
Poniżej prezentuje przykładową klasę do obsługi obrotu (góra - dół), którą napisałem po zrozumieniu struktury komend, sukcesywnie dodaje kolejne.
Jak wspominałem powyżej, kamerą można obracać sterując czasem i prędkością obrotu, zaś z powodu braku informacji o położeniu, za każdą zmiana położenia trzeba zapamiętywać ich ilość.
Z pewnością sama zapisuje ostatnie, bo po restarcie je ustawia.
ODŁĄCZENIE OD CHMURY PRODUCENTA
Mając możliwość dowolnego sterowania kamerą, pozostawiłem ją podłączoną do mojej sieci LAN, jednak na routerze zablokowałem jej dostęp do internetu. Aplikacja producenta w tej sytuacji nie widzi kamery, uznaje jej stan jako offline, żadne dane nie są przesyłane.
To jednak powoduje, że nie ma dostępu z zewnątrz.
W moim przypadku nie ma to znaczenia, kamerą steruje rpi, do niego trafia obraz, ja mam zapewniony inny sposób poglądu - restream przez moją wewnętrzną www.
Dodatkowo posiadam publiczne IP, do tego własny serwer openVPN, a moje urządzenia (tel, komp, inne) są zazwyczaj połączone gdy jestem na zewnątrz, więc zachowują się jak w LAN.
WNIOSKI
Kamera generuje całkiem niezły obraz zarówno w dzień i w nocy, dodatkowo posiada doświetlenie LED (białe i IR).
Mam do niej praktycznie pełny dostęp z możliwością sterowania jej parametrami.
Obecnie obraz z niej trafia do rpi, na którym jest poddawany analizie przez AI. Kamera obserwuje drogę przed domem. Rozpoznaje ruch, jego kierunek, poruszające się obiekty (człowiek, samochód), pracuje nad śledzeniem i podążaniem za obiektem itp.
Prawdopodobnie większość tego typu tanich kamer IP da się używać bez oryginalnego i NIEBEZPIECZNEGO oprogramowania producenta, lecz niezbędne jest wtedy własne, dodatkowe oprogramowanie.
p.
Poniżej przedstawię pokrótce opis techniczny samego urządzenia oraz kroki w celu uwolnienia od chmury producenta bez zmiany firmware.
Kamerę kupiłem na znanym portalu aukcyjnym, kosztowała wtedy 75 zł, obecnie 85 zł.
OPIS TECHNICZNY
Dane techniczne wg sprzedawcy:
Cytat:
Wodoszczelność: IP65 - kamera jest odporna na deszcz, śnieg i inne trudne warunki atmosferyczne.
Rodzaj łącza: WiFi - bezprzewodowe połączenie kamery z domową siecią internetową, zapewniając łatwy dostęp i zdalne sterowanie.
Rozdzielczość nagrań: 1080p (Full HD) - zapewnia wysokiej jakości, szczegółowy obraz wideo.
Funkcja zoom: cyfrowy 4x
Antena: 5dBi - zapewnia silny i stabilny sygnał WiFi, zwiększając zasięg i niezawodność połączenia bezprzewodowego.
Standard WiFi: 2,4GHz - jest kompatybilny z większością domowych routerów, oferując łatwą konfigurację i stabilne połączenie.
Program do kamery: Ease Life - intuicyjna aplikacja mobilna, która umożliwia łatwe zarządzanie kamerą.
Zasilanie: DC 5V/2A
Diody podczerwieni: 21x IR LED - pozwalają na wyraźny podgląd w całkowitej ciemności, również w nocy.
Funkcja nagrywania: karta microSD / chmura - oferuje elastyczne opcje zapisu nagrań, zarówno lokalnie na karcie microSD, jak i zdalnie w chmurze.
Obsługiwane karty: microSD do 128GB
Funkcja robienia zdjęć: tak
Do instalacji kamery służy odpowiednia aplikacja (Aview) dostępna na urządzenia mobline.
Przy jej pomocy możemy dołączyć ją do domowej sieci WiFi (STA) lub używać w trybie AP (łączymy się do jej hotspota).
Aby móc łączyć się z kamerą zdalnie musimy zalogować ją do chmury Alibaby (CN) i wszystko co się z nią dzieje przechodzi przez ich serwery(!).
To rodzi ogromne niebezpieczeństwo bo mamy w naszym LAN obce urządzenie z pełnym dostępem do sieci, a nie muszę tłumaczyć co można nabroić w takiej konfiguracji..
Urządzenie łatwo się rozbiera, 3 śruby spajają kule z kamerą a całość zawieszona na uszach mechanizmu obrotowego (1 śruba).
Rozebrać musiałem, ze względu na wymianę kabla zasilającego - oryginalny to 15 cm przewodu z wtyczką, wymieniłem na dłuższy.
Nie chcę wnikać w szczegóły budowy - jedna uwaga, mechanizmy obrotowe nie posiadają informacji o pozycji, wszystko opiera się na ilości kroków obrotu,
przy uruchomieniu musi nastąpić pełnozakresowa kalibracja w obu osiach.
Poniżej kilka zdjęć wnętrza.
Płytka główna:
Moduł WiFi:
Sterowanie silnikami i ich wygląd:
PODSŁUCHIWANIE PROTOKOŁU
Kamera jak większość posiada obsługę protokołu RTSP, umożliwiającego transfer obrazu, dzwięku i nie tylko (duplex).
Nie znalazłem w sieci żadnego opisu konkretnej adresacji tego urządzenia, ale po skanowaniu jej dostępnych portów ten najbardziej interesujący,
554 okazał się otwarty - jednak żadna z kombinacji popularnych adresów nie działała.
Postanowiłem podsłuchać jej komunikację za pomocą PCAPdroid (na telefonie) ale komunikacja z zewnętrzną chmurą była od razu zabezpieczona TLS więc nie wiele się dowiedziałem.
Przykłady ramek:
Z pomocą przyszła zmiana trybu połączenia na AP, zresetowałem do fabryki i podłączyłem się bezpośrednio.
Okazało się ze aplikacja bez problemu używa jedynie RTSP do komunikacji i w dodatku bez szyfrowania.
Zapisałem próbki pakietów z telefonu podczas pracy i poddałem analizie.
STREAM OBRAZU
Po wstępnej analizie użyłem prostego skryptu python w celu przechwycenia strumienia video.
Wystarczy użyć gotowca w postaci openCV (potrafi natywnie dekodować ten stream):
Kod: Python
Powyższy przykład pobiera ramki z obrazem, skaluje do i wyświetla podgląd na ekranie.
Tak przygotowane możemy dowolnie używać, zapisywać jako bitmapę bądź w locie kleić film.
W moim przypadku trafiają one do rpi w którym AI analizuje dane i tworzone są nagrania (NVR).
STEROWANIE MECHANIZMAMI KAMERY
Kamera posiada mechanizm obrotowy. Dostęp do niego również odkryłem w logach transmisji RTSP.
Okazuje się, że kamera ma możliwość odczytu i reakcji na komunikaty zwrotne. Podczas prac udało mi się wywołać listę jej parametrów:
Cytat:
1 Up_Start
2 Down_Start
3 Left_Start
4 Right_Start
5 Right_Up_Start
6 Right_Down_Start
7 Left_Up_Start
8 Left_Down_Start
9 PT_Stop
10 Zoom_Tele - max zoom 12
11 Zoom_Wide - min zoom 1
12 Zoom_Stop
13 Focus_Near
14 Focus_Far
15 Focus_Stop
17 IRIS_CLOSE
18 IRIS_Stop
Aby móc zarządzać tymi ustawieniami należy wysłać odpowiednią ramkę z komendą.
Komendy sterujące o dziwo uruchamiają się bez logowania!
obrót jest 2 etapowy, najpierw start:
Kod: Bash
następnie zatrzymanie obrotu:
Kod: Bash
Parametr -cmd wskazuje na rodzaj akcji (zgodnie z listą powyżej)
Czas pomiędzy wysyłką pakietów to kąt zależny również od parametru -data2 55 (prędkość).
Kolejny przykład, ustawienie daty i godziny:
Kod: Bash
Poniżej prezentuje przykładową klasę do obsługi obrotu (góra - dół), którą napisałem po zrozumieniu struktury komend, sukcesywnie dodaje kolejne.
Kod: Python
Jak wspominałem powyżej, kamerą można obracać sterując czasem i prędkością obrotu, zaś z powodu braku informacji o położeniu, za każdą zmiana położenia trzeba zapamiętywać ich ilość.
Z pewnością sama zapisuje ostatnie, bo po restarcie je ustawia.
ODŁĄCZENIE OD CHMURY PRODUCENTA
Mając możliwość dowolnego sterowania kamerą, pozostawiłem ją podłączoną do mojej sieci LAN, jednak na routerze zablokowałem jej dostęp do internetu. Aplikacja producenta w tej sytuacji nie widzi kamery, uznaje jej stan jako offline, żadne dane nie są przesyłane.
To jednak powoduje, że nie ma dostępu z zewnątrz.
W moim przypadku nie ma to znaczenia, kamerą steruje rpi, do niego trafia obraz, ja mam zapewniony inny sposób poglądu - restream przez moją wewnętrzną www.
Dodatkowo posiadam publiczne IP, do tego własny serwer openVPN, a moje urządzenia (tel, komp, inne) są zazwyczaj połączone gdy jestem na zewnątrz, więc zachowują się jak w LAN.
WNIOSKI
Kamera generuje całkiem niezły obraz zarówno w dzień i w nocy, dodatkowo posiada doświetlenie LED (białe i IR).
Mam do niej praktycznie pełny dostęp z możliwością sterowania jej parametrami.
Obecnie obraz z niej trafia do rpi, na którym jest poddawany analizie przez AI. Kamera obserwuje drogę przed domem. Rozpoznaje ruch, jego kierunek, poruszające się obiekty (człowiek, samochód), pracuje nad śledzeniem i podążaniem za obiektem itp.
Prawdopodobnie większość tego typu tanich kamer IP da się używać bez oryginalnego i NIEBEZPIECZNEGO oprogramowania producenta, lecz niezbędne jest wtedy własne, dodatkowe oprogramowanie.
p.
Fajne? Ranking DIY
