Menu dostępności

atak na bankomaty

Krytyczne luki pozwalające na zdalne włamanie się do bankomatów

Podatności, o których mowa w tytule, to: CVE-2023-33871, CVE-2023-38257, CVE-2023-35763, CVE-2023-35189. Zostały one odkryte przez zespół Synack Red Team, (SRT) w oprogramowaniu ScrutisWeb już na początku roku, ale producent (Firma Iagona) wydał poprawki dopiero w lipcu razem z wersją 2.1.38 swojej aplikacji.

Oprogramowanie ScrutisWeb to „bezpieczne” rozwiązanie do monitorowania flot bankomatów, przeznaczone zarówno dla banków, jak i producentów detalicznych.

ScrutisWeb jest dostępny z dowolnej przeglądarki i pomaga organizacjom na całym świecie monitorować bankomaty oraz skracać czas reakcji w przypadku pojawienia się problemów. Floty bankomatów mogą obejmować wrażliwy sprzęt taki jak bankomaty, wpłatomaty, a także terminale płatnicze wpięte do sieci.

Software ten posiada między innymi następujące możliwości:

  • ponowne uruchomienie bądź wyłączenie terminala lub całej floty,
  • wyszukiwanie informacji o usługach bankowych,
  • monitorowanie czytnika kart bankowych w bankomatach,
  • wysyłanie i odbieranie plików do urządzeń,
  • zdalna modyfikacja danych w bankomatach.

Podczas wstępnego rekonesansu zespół SRT zauważył, że serwer WWW aplikacji wysyła do odwiedzających wyjątkowo duży plik JavaScript – o wielkości 23 MB. Odkryto w nim funkcję, która umożliwia klientowi pobieranie pełnych ścieżek z webroot serwera:

atak bankomaty log serwera

Co więcej, dodanie nazwy folderu „/” powoduje, że ScrutisWeb kompresuje cały webroot i wysyła go do przeglądarki jako plik do pobrania. Podczas sprawdzania pliku Download.aspx odkryto, że wywołuje on bibliotekę „Scrutis.Front.dll”, która wydaje się obsługiwać większość funkcji użytkownika.

CVE-2023-33871: Absolute Path Traversal

Plik „Download.aspx” przyjmuje parametr „file” lub „folder”. Widzieliśmy już, do czego służy „folder”, ale druga część jest dużo bardziej intersująca – ciąg obsługujący pobieranie poszczególnych plików:

atak bankomaty log serwera

Ten fragment kodu sprawdza zmienną „path1”, która jest przekazywana do metody jako parametr „file” adresu URL. Jeśli parametr nie zawiera dwukropka, serwer WWW zwróci plik w odniesieniu do webroota, np. „https://example.com/Download.aspx?file=thisfile.txt” pobierze plik znajdujący się pod adresem „https://example.com/thisfile.txt”. Jednak z dwukropkiem serwer WWW zwróci plik w odniesieniu do systemu, na przykład: „https://www.example.com/Download.aspx?file=c:\file.txt” pobierze plik znajdujący się na serwerze pod adresem „c:\file.txt”.

Tym sposobem można pobrać konfiguracje, logi i bazy danych z serwera : )

CVE-2023-35189: Remote Code Execution

Dalsze badanie biblioteki Scrutis.Front.dll wykazało metodę AddFile(). Metoda ta bez problemu zaakceptowała wieloczęściowe żądanie POST z formularza i zapisała przesłany plik w katalogu internetowym „/Files/telechar/”.

Oznacza to, że nieuwierzytelniony użytkownik może przesłać dowolny plik, a następnie wyświetlić go ponownie w przeglądarce internetowej. Jednym z krytycznych problemów jest to, że katalog, w którym znajdował się przesłany plik, został skonfigurowany tak, aby umożliwić interpretację i wykonanie przesłanych skryptów. Mamy więc możliwość wstrzykiwania poleceń.

Normalnie można by oczekiwać, że RCE będzie zwieńczeniem łańcucha exploitów. W takim przypadku jeszcze bardziej szkodliwa wartość mogłaby zostać osiągnięta poprzez wykorzystanie pozostałych luk w celu uzyskania dostępu użytkownika do kontrolera bankomatu. Każde z podatnych na ataki wywołań można znaleźć w Scrutis.Front.dll i wykorzystać bez uwierzytelnienia.

CVE-2023-38257: Insecure Direct Object Reference

Odkryto również, że prototyp metody GetUserDetails przyjmuje pojedynczą liczbę całkowitą jako dane wejściowe żądania HTTP POST.

atak bankomaty log serwera

Parametr idUser wydaje się sekwencyjną wartością całkowitą zaczynającą się od liczby 1. Po wysłaniu POST z liczbą 1 do tej funkcji, usługa zwróciła informacje o użytkowniku „administrateur”, w tym zaszyfrowane hasło.

Tym samym wyciekają informacje o wszystkich kontach użytkowników w systemie wraz z ich zaszyfrowanymi hasłami.

CVE-2023-35763 Hardcoded encryption key

Ponieważ hasło było wyraźnie zaszyfrowane, postanowiono spróbować odtworzyć mechanizm szyfrowania. Wyszukiwanie nazw metod dla słowa „crypt” pokazało funkcję deszyfrującą, która pobiera tekst zaszyfrowany jako dane wejściowe i zwraca zwykły ciąg znaków UTF8. Odkryliśmy, że funkcja zawiera wiersz ujawniający ciąg zwykłego tekstu, a ten jest używany jako klucz szyfrujący do szyfrowania/odszyfrowywania haseł użytkowników:

atak bankomaty log serwera

Tym samym otrzymujemy poświadczenia administratora w postaci jawnego tekstu i możemy zalogować się do portalu ScrutisWeb jako administrator.

Jak bardzo jest źle?

Chociaż CVE-2023-33871 opisuje lukę w zabezpieczeniach dostępu do plików poza webroot, ta sama funkcjonalność pozwoliła nam na pobranie aplikacji internetowej do wglądu. CVE-2023-38257 i CVE-2023-35763 umożliwiają zalogowanie się do konsoli zarządzania ScrutisWeb jako administrator. Stąd złośliwy aktor mógłby monitorować działania w poszczególnych bankomatach w obrębie floty. Konsola umożliwia również wprowadzanie bankomatów w tryb zarządzania, przesyłanie do nich plików, ponowne uruchamianie i całkowite wyłączanie. Konieczna byłaby dalsza analiza w celu ustalenia, czy niestandardowe oprogramowanie może zostać przesłane do poszczególnych bankomatów w celu przeprowadzenia eksfiltracji kart bankowych, przekierowania przelewu Swift lub innych złośliwych celów. Nie wiadomo na razie, czy takie działania są możliwe.

Wreszcie luka CVE-2023-35189 może zostać wykorzystana do wyczyszczenia dzienników w ScrutisWeb i usunięcia dowodów na obecność hakera. Może wystąpić dodatkowa eksploitacja z tego przyczółka w infrastrukturze klienta, co sprawi, że będzie to punkt zwrotny w kolejnym ataku.

Na razie jako klienci końcowi bankomatów nie mamy się czego obawiać. Jednak warto wiedzieć, że nawet najbardziej krytyczne urządzenia IT w naszym codziennym życiu, jak bankomaty, nie są dzisiaj bezpieczne.

Popularne

Czym są non-human identities (NHI)? Jak możemy je chronić i jakie zagrożenia stwarzają dla organizacji?

Czym są non-human identities (NHI)? Jak możemy je chronić i jakie zagrożenia stwarzają dla organizacji?

W dzisiejszym artykule opisujemy pewien problem istniejący w firmach i organizacjach, związany z tożsamościami nieludzkimi (non-human identities), czyli inaczej – tożsamościami niezwiązanymi z pracow...
Filtrowanie URL i DNS, dlaczego to takie ważne?

Filtrowanie URL i DNS, dlaczego to takie ważne?

Filtrowanie adresów URL ogranicza zawartość stron internetowych, do których użytkownicy mają dostęp. Odbywa się to poprzez blokowanie określonych adresów URL przed załadowaniem. Firmy wdrażają filtrowanie...
Nowe podatności w architekturze sieci 5G

Nowe podatności w architekturze sieci 5G

Nowe badania nad architekturą 5G ujawniły lukę w zabezpieczeniach modelu dzielenia sieci oraz zwirtualizowanych funkcjach sieciowych, które można wykorzystać do nieautoryzowanego dostępu do danych, a tak...
Hakerzy z Dragon Breath z nową techniką ataku

Hakerzy z Dragon Breath z nową techniką ataku

Specjaliści z Sophos wykryli niedawno złośliwą aktywność polegającą na klasycznym DLL side-loadingu, ale ze zwiększoną złożonością i dodatkową warstwą wykonania. Co więcej, dochodzenie wskazuje, że oso...
Polowanie na eskalację uprawnień w Windows: sterowniki jądra i Named Pipe pod lupą

Polowanie na eskalację uprawnień w Windows: sterowniki jądra i Named Pipe pod lupą

Podatności typu Local Privilege Escalation (LPE) pozostają jednym z kluczowych elementów realnych ataków na systemy Windows. Nawet przy poprawnie skonfigurowanym systemie i aktualnym oprogramowaniu bł...