Najmniej bezpieczny kod roku – dwóch poważnych kandydatów

dodał 10 grudnia 2014 o 14:08 w kategorii Błędy, Wpadki  z tagami:
Najmniej bezpieczny kod roku – dwóch poważnych kandydatów

Spora część opisywanych przez nas osiągnięć autorów oprogramowania wbudowanego może automatycznie startować w konkursie na najmniej bezpieczny kod roku. Poniższe dwie kandydatury mogą mieć nawet spore szanse.

Rozumiemy, że programiści popełniają błędy. Rozumiemy, że zabezpieczenia bywają przełamywane. Nie rozumiemy jednak co przyświeca autorom kodu, który już od samego początku, z założenia nie zapewniał bezpieczeństwa – choć właśnie taka była jego rola.

Logowanie za pomocą loginu i loginu

Pierwszym opisywanym dzisiaj przykładem będzie kuriozalna metoda logowania użytkownika w urządzeniach Arris VAP2500, czyli pudełkach do bezprzewodowego przesyłania sygnału wideo. Przyjrzał mu się autor serwisu goto.fail. Urządzenie co prawda korzysta z WPSa, ale tylko przez chwilę, transmisja szyfrowana jest protokołem WPA2, zatem na pierwszy rzut oka wszystko wygląda całkiem dobrze. Panel administratora prosi o login i hasło, a każda próba otwarcia innego pliku przekierowuje do ekranu logowania. No, prawie każda. Oprócz wywołania pliku admin.conf, który zwiera taką treść:

ATTadmin,1b12957d189cde9cda68e1587c6cfbdd,0
super,71a5ea180dcd392aabe93f11237ba8a9,0

Możecie oczywiście łamać te hashe (otrzymacie odpowiednio 2500!VaP oraz M0torola!), ale analiza kodu strony pokaże, że nie trzeba się aż tak bardzo męczyć. Po prawidłowym zalogowaniu (sprawdzany jest login i hasło) ustawiane jest ciasteczko w postaci

p=md5($login)

Tak, możecie sobie sami ustawić ciasteczko, które wpuści Was do panelu zarządzania, ponieważ jego treść to skrót md5 z loginu. Amen. A gdy już pobierzecie listę kont i ustawicie odpowiednie ciasteczko, możecie odwiedzić link

tools_command.php

i wysłać dowolne polecenie do urządzenia z uprawnieniami roota. Tak, taki gotowy webshell. Dziękujemy, dobranoc.

Bezpieczeństwo fizyczne, ale nie logiczne

Drugim bohaterem dzisiejszego odcinka jest urządzenie EntryPass N5200, służące do inteligentnego zarządzania systemem bezpieczeństwa fizycznego (np. drzwiami w budynku). Przyjrzała mu się firma RedTeam Pentesting.

Urządzenie N5200

Urządzenie N5200

Urządzenie to oferuje usługę WWW na porcie 80, która została zaprojektowana co najmniej dziwnie. Po pierwsze, odczytuje tylko pierwszy znak URLa – wywołanie http://example.com/1123 i http://example.com/111 daje ten sam efekt. W zależności od wysłanego znaku można wywołać różny efekt, na przykład litery o-z oraz A-D udostępniają fragmenty pamięci operacyjnej urządzenia. A w pamięci…

$ curl -s http://example.com/o | hexdump -C | head
[...]
0010 XX XX XX XX XX XX XX XX  XX XX XX 77 77 77 2e 65 |XXXXXXXXXXXwww.e|
0020 6e 74 72 79 70 61 73 73  2e 6e 65 74 00 00 00 00 |ntrypass.net....|
[...]
0060 XX XX XX XX XX XX XX XX  XX XX 41 44 4d 49 4e 26 |XXXXXXXXXXADMIN&|
0070 20 20 31 32 33 34 35 36  26 20 XX XX XX XX XX XX |  123456& XXXXXX|
[...]

Jak to w pamięci, przechowywane jest hasło administratora.

O ile bohater poprzedniego akapitu, firma Arris, błędy usunęła po otrzymaniu zgłoszenia, to producent EntryPass nie poszedł tak daleko i zignorował próby kontaktu. Pozdrawiamy serdecznie i zalecamy nie korzystać z produktów tego dostawcy.