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

Wizualizacja ścieżek ataku na Active Directory za pomocą narzędzia BloodHound

Wizualizacja ścieżek ataku na Active Directory za pomocą narzędzia BloodHound

Krótko o narzędziu Bloodhound to narzędzie służące do wizualizacji i analizy powiązań w Active Directory. Dla atakującego jest niezastąpioną pomocą do znajdowania ścieżki ataku na najbardziej c...
Od czego zacząć? Przykładowy plan dla CISO, który chce zapanować nad NHI

Od czego zacząć? Przykładowy plan dla CISO, który chce zapanować nad NHI

W serii artykułów o Non-Human Identities (NHI) pokazaliśmy, jak duże zagrożenie stanowią konta maszynowe i jak trudno je kontrolować. Wiemy już, że standardowe narzędzia IAM, PAM i CSPM nie wystarcza...
Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
Jak błąd w 7-Zip (CVE-2025-11001) daje hakerom dostęp do systemu Windows. Jest exploit

Jak błąd w 7-Zip (CVE-2025-11001) daje hakerom dostęp do systemu Windows. Jest exploit

Odkryto niezwykle niebezpieczną dla użytkowników systemów Windows podatność. Błąd o numerze CVE‑2025‑11001 jest już częściowo wykorzystywany, a dotyczy popularnego programu 7-Zip. Polega na niewłaściwe...
Popularne oszustwa na WhatsAppie i jak ich uniknąć

Popularne oszustwa na WhatsAppie i jak ich uniknąć

Z ponad dwoma miliardami użytkowników WhatsApp oferuje ogromną pulę potencjalnych celów dla scamerów. Aby jeszcze bardziej skomplikować sprawę, oszuści cały czas zdobywają nowe wyrafinowane umiejętno...