12:53
29/12/2013

Ciekawą metodę hackowania bankomatów zaprezentowano na trwającym właśnie konwencie CCC. Wystarczy bankomat z Windowsem (większość bankomatów pracuje pod kontrolą tego systemu), pendrive z odpowiednim skryptem i sprytne wymuszenie restartu bankomatu.

Klasyczne skimmery i eksplozje bankomatów są nudne

Zazwyczaj słysząc o kolejnym złodziejskim ataku na bankomat, na myśl przychodzą popularne skimmery lub tzw. “metoda na Polaka”, polegająca na wysadzaniu bankomatów w powietrze. Tego typu zdarzenia opisywaliśmy już wielokrotnie na naszych łamach.

Atak, który zaprezentujemy poniżej wnosi pewien powiew świeżości i finezji (choć do kreatywności metody “na widelec” jeszcze mu daleko). Warto również podkreślić, że niniejszy atak nie jest zupełną nowością — już 3 lata temu opisywaliśmy kultowy numer Barnaby Jacka, pozwalający zainstalować rootkit w bankomacie poprzez podpięcie się do portu USB bankomatu. Kiedy jednak Barnaby Jack prezentował swoje odkrycia, z opisywanych przez niego metod nie korzystała wówczas jeszcze żadna grupa przestępcza — teraz sytuacja uległa zmianie. Mało tego, szajka rabusiów jest podobno na tle groźna, że analizujący ich metody badacze, w obawie o swoje zdrowie, nie zdecydowali się na ujawnienie tożsamości (występowali pod pseudonimami tw i sb, ale pokazali się z odkrytymi twarzami na scenie).

tw i sb w trakcie swojej prezentacji "Electronic Bank Robberies" na 30C3

tw i sb w trakcie swojej prezentacji “Electronic Bank Robberies” na 30C3

Tajemnicze, puste bankomaty

Wszystko zaczęło się, kiedy jeden z banków zaczął otrzymywać coraz więcej doniesień o totalnie wyczyszczonych z gotówki bankomatach. Bankowcy zauważyli, że maszyny na krótko przed wyczyszczeniem na chwilę odpinały się od bankowych systemów monitoringu, ale nie mieli bladego pojęcia jak gotówka znika z bankomatu (logi maszyn były wyczyszczone). Postanowiono więc wzmocnić monitoring CCTV wokół bankomatów i dzięki temu odkryto, że złodzieje korzystają z pendrive’a do infekcji bankomatu złośliwym oprogramowaniem. Jednego z rabusiów złapano na gorącym uczynku, dzięki czemu uzyskano dostęp do zainfekowanego pendrive’a.

Jak przebiega atak na bankomat?

  1. Złodziej najpierw wyłamuje kawałek obudowy dokładnie w tym miejscu, w którym znajduje się port USB przeznaczony dla drukarki. (Tak precyzyjne działanie wskazuje na to, że złodzieje najprawdopodobniej posiadali swobodny dostęp do jakiegoś egzemplarza bankomatu, no cóż, wolnostojące potrafią znikać…).
  2. Do portu USB podpina pendrive’a, na którym znajduje się popularny system ratunkowy Hirens.
  3. Złodziej wymusza restart bankomatu. Można to zrobić albo przez odcięcie zasilania albo przez wyjęcie na chwilę kabla sieciowego.
  4. W trakcie restartu, złodziej zmienia kolejność bootowania i wskazuje podpięty przez siebie dysk USB jako dysk startowy. Tu kłania się brak podstawowego hardeningu publicznie dostępnej maszyny. Czyżby firmy obsługujące bankomaty zakładały, że fizyczny dostęp do komputera bankomatu nie jest możliwy?
  5. Bankomat jest teraz pod obsługą tzw. mini WinXP i automatycznie startuje skrypt o nazwie …hack.bat.
    Skrypt inicjujący atak

    Skrypt inicjujący atak

    Badacze początkowo myśleli, że nazwa skryptu jest zbyt oczywista i jest to podpucha, ale życie pokazało, że trop był jak najbardziej poprawny.

Jak wypłacano gotówkę z zainfekowanego bankomatu?

Infekcja bankomatu to dopiero początek — przestępcy ciągle muszą się jakoś dostać do sejfu i znajdujących się w nim kasetek z banknotami. Złośliwe oprogramowanie zgrywa z bankomatu pewne dane (fragmenty rejestru Windows, oraz pliki zawierające informacje dotyczące wykonywanych transakcji kartowych), ale również uruchamia własny kod służący do obsługi bankomatu i m.in. podmienia ekrany z menu bankomatu na coś takiego:

Podmienione menu bankomatu pojawia się tylko po wpisaniu kodu <span class="code">000507607999</span> (warto więc sprawdzić przy najbliższej wizycie w bankomacie, czy rabusie nie dotarli do Polski).

Podmienione przez rabusi menu bankomatu.

Podmienione menu bankomatu pojawia się tylko po wpisaniu kodu 000507607999 (warto więc sprawdzić przy najbliższej wizycie w bankomacie, czy rabusie nie dotarli do Polski). Co ciekawe, z alternatywnego, złodziejskiego menu wcale nie jest tak łatwo zmusić bankomat do wydania gotówki. Odpowiedni przycisk, służący do “wyczyszczenia” bankomatu nie uruchamia dyspensera, a wyświetla na ekranie losową liczbę. Przestępca musi zadzwonić do “bazy”, przedyktować liczbę i wpisać na klawiaturze otrzymany od bazy, a wygenerowany na jej podstawie kod. Dopiero wtedy może przystąpić do wypłaty.

Prośba o wprowadzenie kodu-odpowiedzi -- krok wymagany przed wypłatą

Prośba o wprowadzenie kodu-odpowiedzi — krok wymagany przed wypłatą

Rabusie dobrze chronią swój kod

Warto podkreślić, że alternatywne oprogramowanie napisane przez rabusiów jest ściśle dostosowane do konkretnych bankomatów. Co ciekawe, złośliwe funkcje są zaszyfrowane (XOR) kluczem o wartości odpowiadającej tzw. VolumeSerial, czyli unikatowemu numerowi przypisywanemu przez system operacyjny podczas formatowania dysku. Innymi słowy, złośliwy kod jest przygotowywany pod konkretny egzemplarz bankomatu. Dodatkowo aplikacja rabusiów stosuje techniki utrudniające jej reverse engineering.

Jakby tego było mało, malware wyposażony jest w narzędzie do bezpiecznego usuwania danych i zaraz po ataku skrzętnie po sobie sprząta odinstalowując się i nadpisując dysk tak, aby uniemożliwić analizę powłamaniową. Aby proces był łatwiejszy — w samym menu znajduje się opcja czyszczenia, która pokazuje taki przyjazny ekranik:

Podmienione przez rabusiów menu bankomatu

Podmienione przez rabusiów menu bankomatu

Co ciekawe, bankomat można wyleczyć wpisując kod: 000507607999000753951000

Kto stoi za atakami?

Tego nie wiadomo. Badacze nie ujawnili nazwy banku, który padł ofiarą rabusiów i poprosił ich o analizę złośliwego kodu. SG i TW nie zaprezentowali także hipotez co do tożsamości złodziejów, ale postawili tezę, że malware jest wynikiem ich stałej “etatowej” pracy. Rabusie są też najprawdopodobniej powiązani z pracownikami firmam obsługujących bankomaty — doskonale wiedzieli z jakich zabezpieczeń korzysta bankomat, i że whitelisting aplikacji stosowany jako formę ochrony systemu bankomatu przed infekcją można oszukać poprzez ładowanie pliku .dll.

Struktura kodu (zwłaszcza zabezpieczenia kodu i wymóg podawania challange-response przed wypłatą) wskazuje na to, że szajka jest wielopoziomowa, a osoby które wypłacają pieniądze z bankomatów to tak naprawdę ściśle kontrolowane pionki, które nie mają zbyt wielkiej wiedzy na temat “serca” całego procederu.

Powyższy przypadek to też cudowne zobrazowanie zasady “im prościej, tym lepiej”. Mimo, że rabusie mogliby również za pomocą swojego oprogramowania zczytywać paski magnetyczne kart i PIN-y, to wybrali (co logiczne) łatwiejszą i szybszą drogę wzbogacenia się — bezpośrednią wypłatę z bankomatu. Ten atak to także przypomnienie, że jeśli ktoś ma fizyczny dostęp do twojego sprzętu, to nie jest to już twój sprzęt…

PS. Nagranie całego wykładu możecie znaleźć tutaj (ID prezentacji to: 5476). Z kolei streaming trwającej jeszcze dziś i jutro konferencji znajdziecie tu — warto obserwować, sporo ciekawych tematów jeszcze w rozkładzie jazdy.

PPS. Badacze w swojej prezentacji przywołali też przypadek podobnego, ale mniej zaawansowanego, złośliwego oprogramowania atakującego bankomaty. Ploutus, bo o nim mowa, infekował bankomaty poprzez CD-ROM i również prowadził do wyprowadzania gotówki z kasetek.

Przeczytaj także:

29 komentarzy

Dodaj komentarz
  1. bardzo ladnie hehe

  2. Czy oni gdzieś wystawili próbkę tego malware?

    • Nie. Nawet prezentowana na wykładzie CCC aplikacja była zmodyfikowana. Badacze zatarli cechy charakterystyczne dla banku oraz oszukali trochę API aby wszystko zagrało, bo nie dysponowali prawdziwym bankomatem a jedynie wirtualną maszyną.

  3. Nie popieram tego typu działania, ale za pomysłowość i zaawansowany poziom operacji, mają +

  4. “PPS. Atakujący w swojej prezentacji przywołali też przypadek […]”

    To jednak atakujący byli prezenterami? Nic dziwnego, że tak ładnie to rozpracowali.

  5. Nie ma to jak skopiować od konkurencji.

  6. W krajach hiszpańskojęzycznych 28 grudnia obchodzony jest
    Día de los Santos Inocentes, jako katolickie święto Dzień
    Niewiniątek. Jest on okazją do żartów i kawałów, jest
    odpowiednikiem prima aprilis. Nowi redaktorzy rules…

    • Na zdjęciach ekranów tekst jest po portugalsku. Liczy
      się?

  7. Mysle ze powinniscie jeszcze dodac ze nie ma znaczenia ze
    tam byl windows xp zainstalowany. Gdyby tam byl linux mogliby
    zrobic dokladnie to samo!

    • ale nikt kto projektowal by to na linuxie nie zostawil by
      tyle dziur co na XP :)

    • @tnt: a nikt kto wygrałby główną w powerball’u nie sprzątałby publicznych szalet. Obie hipotezy są bez sensu, z tą tylko różnicą, że moją łatwiej zweryfikować.
      A wracając do właściwego tematu, to Windowsiarz ma rację i to jakiego systemu tutaj użyto, w tym konkretnym przypadku nie ma żadnego znaczenia. O innych przypadkach możemy sobie jedynie gdybać.

  8. Jakoś wydaje mi się, że tą opowieść między bajki można
    włożyć… 1) “Złodziej najpierw wyłamuje kawałek obudowy dokładnie
    w tym miejscu, w którym znajduje się port USB przeznaczony dla
    drukarki.” – W wielu przypadkach (nie we wszystkich, ale coraz
    częściej) komputer znajduje się w sejfie. 2) “Złodziej wymusza
    restart bankomatu. Można to zrobić albo przez odcięcie zasilania
    albo przez wyjęcie na chwilę kabla sieciowego.” – Zarówno do kabla
    zasilającego jak i do sieciowego trzeba mieć dostęp żeby to zrobić.
    Kolejna dziurka? 3) “W trakcie restartu, złodziej zmienia kolejność
    bootowania i wskazuje podpięty przez siebie dysk USB jako dysk
    startowy.” – żeby to zrobić trzeba mieć klawiaturę. Większość
    bankomatów jej nie ma, a podłączenie (PS lub USB) jest wyprowadzone
    zazwyczaj “z przodu” bankomatu – trzeba “wyjechać facją”. Rozumiem,
    że kolejna dziurka :) Tym razem z przodu :) 4) “Czyżby firmy
    obsługujące bankomaty zakładały, że fizyczny dostęp do komputera
    bankomatu nie jest możliwy?” – ależ oczywiście, że nie. W części
    komputer jest w sejfie więc powodzenia przy próbie dostępu do
    niego. W innych komputer jest poza sejfem jednak w obudowie
    skonstruowanej tak, że bez kluczy się nie dostaniemy…. No chyba,
    że metodami siłowymi (nie ma śrubek na zewnątrz pozwalających ją
    rozkręcić), a wtedy czujki wstrząsowe pewnie dadzą o sobie znać. 5)
    “Bankomat jest teraz pod obsługą tzw. mini WinXP i automatycznie
    startuje skrypt o nazwie …hack.bat.”…. ta…. tu już w cuda nie
    wierzę… I ten system mini WinXP ma zainstalowane w sobie
    kilkanaście aplikacji do obsługi dyspensera, menu, komunikacji z
    hostem itp itd??? I ten mini WinXP wie, jaki ma mieć IP, na jakich
    portach słuchać z jakim hostem bankomatowym gadać itp itd??? A….
    byłbym zapomniał…. jeszcze ma “podrobioną” aplikację dostawcy
    bankomatu do monitoringu więc nikt nic nie wie tak? Sorki, ale
    wyjątkowo grubymi nićmi ta opowieść szyta. W stylu opowieści
    dziwnych treści. Wierzę, że można to zrobić mając niezabezpieczony
    bankomat w labie, ale nie w naturze. No chyba, że atak przeprowadzi
    serwisant bankomatu :)

    • Oni oprocz tego hackbat mieli jeszcze atm.exe ktory
      wstrzykiwal dll do cachclienta.

    • Quba, nie probuj dementowac tej “rewelacji” – ludzie
      znajacy temat maja okazje do posmiania sie :) atm.exe, zloscliwe
      batche, samowstrzykujace sie i niezmiernie tajemnicze, biblioteki
      dll, rootkity przygotowane pod odpowiedni numer bankomatu, dziurki
      w obudowie, tokeny zabezpieczajace zlodzieja, obfuskatory w c… od
      siebie, bez zbednej zenady, dokladam co nastepuje: czytanie z
      moczu, znaczy oczu, akupunktura, Harry Potter, dwutlenek wegla,
      hemoglobine i taka sytuacje :D

  9. […] PS. To już druga (i nie ostatnia) prezentacja z 30C3, którą opisujemy na łamach Niebezpiecznika. Z jej pełnym streamingiem możecie się zapoznać tu. Zapraszamy także do lektury opisu wykładu dotyczącego hackowania bankomatów poprzez port USB. […]

  10. Mnie intryguje ten telefon do bazy. Po co takie komplikowanie procesu, ktory ma byc szybki i nie przyciagajacy uwagi. Chyba, ze ktos z pracownikow bankow tez chce miec w.tym.swoj udzial. Nie wspomne o oplaceniu osoby odpowiedzialnej za monitoring… Chyba ze ktos kradnie bankomat razem z kawalkiem sciany, a pozniej sie do niego kulturalnie wlamuje… :)

    • Albo telefon do bazy, albo atakujący mają token np. w postaci appki na andka. Numer telefonu może być podany dla zmyły.

    • Prawdopodobnie “losowa liczba” jest generowana na podstawie
      ilości pieniędzy w bankomacie. Dzięki temu atakujący nieświadomie
      przekazuje tę informację do szefa, a szef wie czy dostał całą kasę
      czy może go oszukują ;)

    • Może po to żeby do kasy nie dobrał się nikt “nieupoważniony”. Takiego pendrive’a można skopiować, oddać innej osobie, albo zwyczajnie zgubić. A dzięki kontaktowi z bazą, szef złodziei ma pewność, że nikt nie wykorzystuje jego metody za jego plecami.

  11. “tw i sb w trakcie swojej prezentacji”

    Pseudonimy też mają niezłe ;)

  12. KW: To brzmi logicznie… Jednoczesnie uwiarygadnia wersje o wspolpracy wlamywaczy z kims ze srodka banku. W koncu Ci ktorzy dokonuja wlamu sa pionkami na najnizszym szczeblu. To tutaj jest najwieksze ryzyko. Ale jesli zalozymy ze proces rzeczywiscie przebiega w ten sposob to proces kontroli przy podziale lupow jest nieunikniony. Zwlaszcza ze bez tego etapu (weryfikacja losowa liczba) trudno byloby udowodnic jaka kwota zostala podjeta. Poza tym jest to hamulcem na ewentualna samowolke wlamywacza…

  13. ostatnio widziałem film na youtube jak hakerzy przerobili bankomat na automat do gier :-)

  14. Żarty się was trzymają? ;-)

  15. Kwoty na jednym ze screenów podane w realach brazylijskich http://pl.wikipedia.org/wiki/Real_brazylijski

  16. Ten artykuł , jak i ten o hackowaniu kart sd są troszkę żałosne.
    Mam takie wrażenie że jeśli oprócz samego oprogramowania w grę wchodzi jeszcze hardware to jakoś mało krytycznie się podchodzi do źródeł. Może to brak wiedzy?. ale jeśli tak to już nie jest zbyt rzetelne.. takie “Łykanie wszystkiego” :-/

    • Będziemy wdzięczni za uwagi, co można lepiej dokładniej/opisać lub ew. sprostowanie, a nie tylko opinie w stylu “żałosne”, które nie wnoszą niczego istotnego do tematu ;)

  17. “Kiedy jednak Barnaby Jack prezentował swoje odkrycia, z opisywanych przez niego metod nie korzystała wówczas jeszcze żadna grupa przestępcza — teraz sytuacja uległa zmianie.”

    Dlaczego Barnaby nie dożył tegorocznej prezentacji hack’u rozruszników?

    PS. Pytanie retoryczne.

  18. A co jeśli port USB jest zaszyfrowany?

  19. @lol Port USB nigdy nie jest zaszyfrowany, wiec mysl co
    piszesz.

Odpowiadasz na komentarz qba111

Kliknij tu, aby anulować

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: