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

Nowa luka w Microsoft Teams – lepiej nie być zapraszanym…

Nowa luka w Microsoft Teams – lepiej nie być zapraszanym…

Usługa Microsoft Teams stała się kluczowym narzędziem do komunikacji i współpracy w firmach na całym świecie. Z tego powodu wiele organizacji polega na zabezpieczeniach takich jak Microsoft Defender for Off...
Ważna zmiana w OWASP Top 10

Ważna zmiana w OWASP Top 10

OWASP, czyli Open Worldwide Application Security Project, zaproponowało nowe wydanie swojej klasycznej listy Top 10 ryzyk aplikacyjnych. Wersja z 2025 roku wprowadza kluczowe rozszerzenia dotyczące b...
Jak modele LLM automatyzują cyberprzestępczość

Jak modele LLM automatyzują cyberprzestępczość

Każdy Czytelnik Kapitana Hacka wie, że złośliwe LLM-y ułatwiają mniej doświadczonym cyberprzestępcom przeprowadzanie ataków. Potwierdzają to badacze z Palo Alto Networks, którzy przeanalizowali dwa niedaw...
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...
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...