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).
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?
- 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ć…).
- Do portu USB podpina pendrive’a, na którym znajduje się popularny system ratunkowy Hirens.
- Złodziej wymusza restart bankomatu. Można to zrobić albo przez odcięcie zasilania albo przez wyjęcie na chwilę kabla sieciowego.
- 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?
- Bankomat jest teraz pod obsługą tzw. mini WinXP i automatycznie startuje skrypt o nazwie …hack.bat.
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?
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.
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 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.
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:
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.
bardzo ladnie hehe
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ą.
Nie popieram tego typu działania, ale za pomysłowość i zaawansowany poziom operacji, mają +
“PPS. Atakujący w swojej prezentacji przywołali też przypadek […]”
To jednak atakujący byli prezenterami? Nic dziwnego, że tak ładnie to rozpracowali.
Nie ma to jak skopiować od konkurencji.
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ę?
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ć.
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
[…] 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. […]
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.
“tw i sb w trakcie swojej prezentacji”
Pseudonimy też mają niezłe ;)
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…
ostatnio widziałem film na youtube jak hakerzy przerobili bankomat na automat do gier :-)
Żarty się was trzymają? ;-)
Kwoty na jednym ze screenów podane w realach brazylijskich http://pl.wikipedia.org/wiki/Real_brazylijski
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 ;)
“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.
A co jeśli port USB jest zaszyfrowany?
@lol Port USB nigdy nie jest zaszyfrowany, wiec mysl co
piszesz.