Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Opis błędu CVE-2018-0296 – ominięcie uwierzytelnienia w webinterfejsie Cisco ASA
Słowem wstępu, urządzenie Cisco ASA (Adaptive Security Appliance) to bardzo popularne urządzenie, będące często częścią infrastruktury wielu dużych i mniejszych firm, pełniąc rolę VPN-a lub firewalla. Często też natykamy się na nie podczas testów penetracyjnych.
Urządzenie ASA może wystawiać interfejs webowy na porcie 443. Domyślnie zazwyczaj zobaczymy tylko panel do logowania (Rys 1.).
Analizując komunikację HTTP, zauważyłem, że zasadniczo ASA odnosi się do zasobów w dwóch katalogach: /+CSCOU+/ i /+CSCOE+/ . Podstrony wewnątrz /+CSCOE+/ mogą wymagać uwierzytelnienia, z kolei te znajdujące w środku /+CSCOU+/ uwierzytelnienia nie wymagają nigdy.
Pomyślałem, że oprogramowanie w takim urządzeniu może być napisane dość naiwnie – i decyzję, czy uwierzytelnienie jest konieczne, podejmować na podstawie początku ścieżki. Sprawdźmy to.
W pierwszym kroku próbuję skorzystać z endpointu /+CSCOE+/files/file_list.json w sposób standardowy (Rys 2.).
Jak widać, w odpowiedzi zostaję przekierowany do strony logowania. Spróbujmy zatem podmienić ścieżkę na następującą: /+CSCOU+/../+CSCOE+/files/file_list.json (Rys 3).
W ten oto prosty sposób udało się ominąć uwierzytelnienie :)
Okazuje się, że za pomocą file_list.json można wylistować listę plików widoczną z poziomu webinterfejsu. Ciekawie wygląda np. katalog sessions (Rys 4.), a po wejściu na jedną z sesji, można się dowiedzieć jaki identyfikator użytkownika jest z nią powiązany (Rys 5.). To teraz wiadomo już, czyje hasło można próbować łamać ;)
Opis błędu przez Cisco
Błąd został zgłoszony do Cisco właśnie na takim przykładzie jak powyżej, tj. na możliwości uzyskania informacji o zalogowanych użytkownikach. Oficjalnie jednak podatność została opisana w następujący sposób:
A vulnerability in the web interface of the Cisco Adaptive Security Appliance (ASA) could allow an unauthenticated, remote attacker to cause an affected device to reload unexpectedly, resulting in a denial of service (DoS) condition. It is also possible on certain software releases that the ASA will not reload, but an attacker could view sensitive system information without authentication by using directory traversal techniques.
Z opisu wynika, że techniki directory traversal mogą zostać rzeczywiście wykorzystane, natomiast głównym skutkiem podatności jest Denial-of-Service, który przez nas nie został zgłoszony.
Najprawdopodobniej podczas analizy podatności, inżynierowie Cisco odkryli, że istnieje inna podstrona, do której odwołanie skutkuje unieruchomieniem urządzenia.
Niezależnie od tego, jakie dokładnie skutki niesie za sobą ta podatność, wszystkich adminów urządzeń Cisco zachęcamy do jak najszybszych aktualizacji.
— Michał Bentkowski, hakuje w Securitum
Na starszym sofcie (wersja z ~2016 roku) nie da się tego ataku przeprowadzić, ale DoS działa pięknie chociaż wymaga uwierzytelnienia (wystarczyło w URLu podać dwie kropki, ASA się zawiesiła i zrestartowała)
W switach alcatela znalazłem z kolegą podobny błąd. Tzn daje podobne efekty z tym, że wystarczy wpisać odpowiedni URL, nie znając loginu ani hasła można zrestartowac urządzenie do defaultowych ustawien :D Zgłosiliśmy do ALU w grudniu(2017) ale nie wiem czy naprawili, może wam podesłać szczegóły?