Jak przestępcy ukradli 10 000 PLN miłośnikowi kryptowalut, ciekawy atak

OXYGEN THIEF

Bardzo aktywny
Członek Załogi
Administrator
Dołączył
26 Maj 2010
Posty
35924
Reakcje/Polubienia
25015
Miasto
Trololololo
Jak przestępcy ukradli 10 000 PLN miłośnikowi kryptowalut. Ciekawy atak na klientów posiadających mobilne aplikacje polskich banków

Kilka dni temu napisał do nas czytelnik Radek, który sprzedaje
Zaloguj lub Zarejestruj się aby zobaczyć!
(te do wydobywania kryptowalut). Radek był świadkiem ciekawego ataku na jednego ze swoich klientów i uważa go za całkiem niezły atak, więc chciałby, abyście też się o nim dowiedzieli. Oddajmy więc głos Radkowi


Dziś byli u mnie klienci (2 osoby) po koparkę. Kiedy przyszło do płacenia i wyciągnęli 20k w gotówce, powiedziałem że muszę przyjąć płatność przelewem, bo to kwota powyżej 15k. Pojechaliśmy więc do Tesco do wpłatomatu, gdzie klient wpłacił 2x10k. DowIiedzieliśmy się przy okazji, że będziemy musieli około godzinę poczekać, aż kasa pojawi się na koncie. Więc poszliśmy razem do restauracji na pizzę.


Klient udostępnił sobie internet z komórki na laptopa i zaczął zaglądać na konto co chwilę. Pierwsze 10k przyszł ood razu, drugiego jakoś nie spływało. Odwieżał więc i odświeżał stronę banku, aż w pewnym momencie po odswieżeniu zauważył przelew wychodzący na 10k do PKO przez sorbnet (tzw. szybki przelew).


Wszyscy zdziwieni o chodzi, bo żadnym SMS-em tego przelewu nie potwierdzał. Patrzę na odbiorcę i widzę “Bitpay”. Światełko mi się zaświeciło, że ktoś chce mu wyprowadzić kasę na bitcoina i ślad po tym zaginie.


Wziąłem laptopa i lecę z nim do mBanku bo był niedaleko. Zadyszany bez kurtki z laptopem otwartym zaczynamy gadać na recepcji, że ktoś nam podpierdolił kasę z konta, że poszła szybkim przelewem i trzeba działać.


Na szczęście usłyszał to koleś z pokoju obok i szybko nas zawołał bez kolejki do siebie. Powiedział ze przelew jest już nie do uratowania bo wyszedł z mBanku, ale na szczęście kasa dalej była w Polsce, bo poszła do PKO. Więc zadzwonił do działu który się takimi rzeczami zajmuje żeby się skontaktowali z PKO i żeby zamrozili ta kasę. Dopiero po tym zaczął załatwiac formalności (dowód sprawdził na samym początku), czyli uzupełnił dokumentacje tej sprawy, wypisał reklamacje. Tu akurat duży plus, że zaczął ratować sytuacje, a nie zasłaniał się procedurami, wszelkimi weryfikacjami i innymi bzdetami.


Ja w międzyczasie zacząłem grzebać w komórce klienta. Okazało się, że ma ją od 2 dni (kupiona w salonie, nowa, nierozpakowana wcześniej). Poinstalował jakieś aplikacje związane z kryptowalutami z Google Play m.in. tą:


hxxps://play.google[.]com/store/apps/details?id=inn.crypto.monitor&hl=pl


która okazała się trojanem. Ten trojan wyciągnął dane z aplikacji mBanku, wysłał sobie przelew, odczytał potwierdzającego SMS i usunął SMS-a (sms w ogóle nie doszedł, więc go jakoś przechwycił i komórka nie zasygnalizowała ze SMS przyszedł). To że SMS niby został wysłany dowiedzieliśmy się dopiero w mBanku po którymś telefonie do ich pracownika z odpowiedniego działu.


Tak zniknęło 10k, a drugie 10k zdołaliśmy uratować blokując wszystkie kanały do mBanku i usuwając przypisanie tego numeru telefonu do konta. Przez te dwa dni od instalacji aplikacji do wpłaty kasy klient na koncie miał 500-800zł i złodziejaszki czekali na większą wpłatę nie kradnąc tego co miał do tej pory.


Tu dodajmy, że Radek nie potwierdził w żaden sposób, że dokładnie tak doszło do nieautoryzowanego dostępu do konta. Tak mu się po prostu intuicyjnie wydawało. Czy tak było na prawdę, o tym za chwilę. Dorzućmy jeszcze jedną uwagę, jaką przesłał Radek:


Po całej sytuacji klienci zaczęli wracać do Wrocławia, na tej samej komórce ustawili sobie nawigację i na trasie komórka zaczęła się sama resetować, zaczęło samo przywracać ustawienia fabryczne, zapewne żeby zatrzeć wszelkie ślady.


Obstawiam, że koleś miał dostęp do wszystkiego na komórce, łącznie do kamerki, mikrofonu i mógł nas słyszeć jak świrujemy po drodze i w mBanku :D Z mBanku półsłówkami powiedzieli, że dzięki temu, że szybko zareagowaliśmy to “może coś się uda”, nic nie mówili wprost zasłaniając się tajemnicą bankową.


Czy złośliwa aplikacja na Androidzie może okraść czyjeś konto?

Tak. Tak, tak, tak! Powtarzamy to od lat, zwracając uwagę (czy się to któremuś fanbojowi podoba, czy nie), że Android jest statystycznie mniej bezpiecznym systemem operacyjnym niż iOS. Bo po pierwsze
Zaloguj lub Zarejestruj się aby zobaczyć!
a czasami wcale (ale to nie był wektor ataku w tym przypadku), a po drugie — i w tym wypadku najważniejsze — w oficjalnym sklepie Google jest masa złośliwych i zainfekowanych aplikacji, czasem tak podobnych do prawdziwych, że ludzie się mylą i sami ściągają i instalują sobie trojany na swoim smartfonie. Smartfonie, do którego mają podpięte konto bankowe, pocztę i na którym przechowują wrażliwe dane (zdjęcia, pliki). To znana ilustracja tego problemu — która z aplikacji WhatsApp jest prawdziwa?


Zaloguj lub Zarejestruj się aby zobaczyć!



Google oczywiście walczy, na tyle na ile może i często usuwa złośliwe aplikacje ze swojego oficjalnego sklepu. Ale ta walka jest zawsze przegrana. Co chwilę pojawiają się nowe, złośliwe aplikacje. Takie jak ta, która zainfekowała klienta naszego czytelnika:


Zaloguj lub Zarejestruj się aby zobaczyć!



To, że aplikacja jest złośliwa wykazała pobieżna analiza wykonana przez Mateusza, naszego trenera szkolenia “
Zaloguj lub Zarejestruj się aby zobaczyć!
“. Mateusz potwierdził, że aplikacja czai się na klientów następujących aplikacji finansowych:


eu.eleader.mobilebanking.raiffeisen
com.comarch.mobile
com.getingroup.mobilebanking
pl.bph
eu.eleader.mobilebanking.pekao.firm
com.konylabs.cbplpat (citi)
pl.ing.mojeing
pl.bzwbk.bzwbk24
pl.fmbank.smart
pl.mbank
wit.android.bcpBankingApp.millenniumPL
pl.pkobp.iko
piuk.blockchain.android (Blockchain – Bitcoin & Ether Wallet)


Lista obecna jest w postaci zaszyfrowanej w klasie ‘NotificationExtenderBareBonesExample‘ w polu ‘rr‘ i wygląda tak (wszystkie stringi są w base64)


{ "UItTj5P0xyWXiLfkixmwA84bAZQQG3XA7QL0QEHusT5xdtvV8JnSsnQE+i2JOObP", "T9HJTOnUj64li2DZhQ+a2y7KqJqYi7pEzFyQ3jqNoI4=", "HGEolr0W7Bz2pNcw0EhkBcoVTsat8rUYkEqw3uJozKg=", "spnfCyO8ie3afNUUwg45Pg==", "UItTj5P0xyWXiLfkixmwAyGrKs7Zu6lm51vWSsH1G5kV9jrGo6+huRoU9gNet9Vl", "VOC6l22z4J8Hmg4WrPqmox3Od6czzB7VNkJe+isQr0E=", "ZSSgcrimekVRbzMzFUqjPQ==", "enJgCXocYtve1bgUeKYT+Qzxu/zAK3ZnvmJkGVTNVP4=", "wQz28nRgc1lpy6qoL/XDAw==", "Ta9rwAX55lwtjqD/AswDgw==", "SaC5eVYlZFzrftUhGIr3NyXyc/1m++f8/SE2fSkGWwZvbzNNOztFKTbG4GA7JSgp", "eIK1QK7LVKdFwjNL7N3POA==", "muwPJ3TIPoIDQ7xaR1P9YgRwXX+4WXJHC5uG24rN1rM=", "UItTj5P0xyWXiLfkixmwA2A4eE6ktehlYeI+lGSkgao=" };


Klucz i wektor inicjalizacyjny można odnaleźć wewnątrz metody ‘get’ w tej samej klasie.


Algorytm: AES/CBC/PKCS5PADDING
Klucz (w base64): kEZWOj/ayrkwfuUrJah7V799YGyVCY91
Wektor inicjalizacyjny: 32fsmvw4fwbfrtgh


Główna logika odbywa się w poniższej funkcji:


Zaloguj lub Zarejestruj się aby zobaczyć!



Kod źródłowy jest wynikiem decompilacji, wiec jest przybliżony, ale daje mniej więcej obraz logiki. Ta funkcja jest wywoływana kiedy do aplikacji dotrze konkretna notyfikacja (jej tytuł musi być równy “44”), której aplikacja nasłuchuje poprzez One Signal SDK. W zależności od parametrów wywoływane są różne akcje, ale generalnie całość sprowadza się sprawdzenia jakie pakiety z powyższej listy są na urządzeniu, (opcjonalnie) pobraniu odpowiedniego APK (parametr ‘ht’ zawiera część URLa) i uruchomienia go.


Aplikacja prosi o następujące uprawnienia:


android.permission.INTERNET
android.permission.READ_EXTERNAL_STORAGED
android.permission.WRITE_EXTERNAL_STORAGE
inn.crypto.monitor.permission.C2D_MESSAGE
com.google.android.c2dm.permission.RECEIVE
android.permission.WAKE_LOCK
android.permission.VIBRATE
android.permission.ACCESS_NETWORK_STATE
android.permission.RECEIVE_BOOT_COMPLETED
com.sec.android.provider.badge.permission.READ
com.sec.android.provider.badge.permission.WRITE
com.htc.launcher.permission.READ_SETTINGS
com.htc.launcher.permission.UPDATE_SHORTCUT
com.sonyericsson.home.permission.BROADCAST_BADGE
com.sonymobile.home.permission.PROVIDER_INSERT_BADGE
com.anddoes.launcher.permission.UPDATE_COUNT
com.majeur.launcher.permission.UPDATE_BADGE
com.huawei.android.launcher.permission.CHANGE_BADGE
com.huawei.android.launcher.permission.READ_SETTINGS
com.huawei.android.launcher.permission.WRITE_SETTINGS
android.permission.READ_APP_BADGE
com.oppo.launcher.permission.READ_SETTINGS
com.oppo.launcher.permission.WRITE_SETTINGS
me.everything.badger.permission.BADGE_COUNT_READ
me.everything.badger.permission.BADGE_COUNT_WRITE
android.permission.BIND_JOB_SERVICE

Szczegółowa analiza aplikacji trwa i niebawem ją opublikujemy. Wszystko jednak wskazuje na to, że mamy do czynienia z nowym wariantem czegoś, co w końcówce 2017 roku opisał zespół
Zaloguj lub Zarejestruj się aby zobaczyć!
(Bankbot) i
Zaloguj lub Zarejestruj się aby zobaczyć!
. Wariant opisany przez ESET po wykryciu aplikacji banku X wyświetlał fałszywe powiadomienia, rzekomo od banku X i podstawiał własną, fałszywą stronę logowania do tego banku:


Zaloguj lub Zarejestruj się aby zobaczyć!



Zaloguj lub Zarejestruj się aby zobaczyć!



Po zalogowaniu przestępca uzyskuje dane dostępowe do konta, a potem (tak przynajmniej było we wcześniejszych próbkach) generuje zlecenie przelewu i przez złośliwą aplikację przechwytuje kody SMS. W przypadku próbki, która zainfekowała klienta Radka, uprawnień do czytania SMS-ów brak — więc zapewne dopiero po stwierdzeniu przez aplikację obecności aplikacji mobilnej do któregoś z banków dociągany jest dodatkowy APK z tymi uprawnieniami.


Chciałbyś dowiedzieć się jak bezpiecznie tworzyć aplikacje mobilne i jak je atakować/testować pod kątem bezpieczeństwa, przy okazji rozkładając na czynniki pierwsze?Dokładnie temu poświecone jest nasze 2-dniowe, pełne praktycznych labów szkolenie pt.
Zaloguj lub Zarejestruj się aby zobaczyć!
. Jego najbliższe terminy odbędą się 15-16 marca w Warszawie i 5-6 kwietnia we Wrocławiu. Zapraszamy do zapoznania się
Zaloguj lub Zarejestruj się aby zobaczyć!
!

IOC

MD5: bc098174e2dafd1466cc74c52f6dbd02
SHA1: 92ca6f2c933876e3c811e65e35bbb7a255b328a7


Mam aplikację mobilną banku na telefonie — co robić, jak żyć?

Jeśli używasz iOS, gratulujemy wyboru — tu dla Ciebie artykuł się kończy — niczego nie musisz robić :)


Zaloguj lub Zarejestruj się aby zobaczyć!



Jeśli korzystasz z Androida… (i nie chcesz zmienić telefonu na iPhona ;) to kieruj się poniższymi zasadami:


  • Jeśli na telefonie korzystasz z bankowości internetowej lub swojej skrzynki pocztowej, to nie eksperymentuj i nie pobieraj aplikacji, które zostały stworzone przez nieznanych developerów. Takie aplikacje na kilka różnych sposobów mogą podkraść dane z innych twoich, istotniejszych aplikacji
  • Pamiętaj, że nawet aplikacje na oficjalnym sklepie Google Play mogą być złośliwe.
  • Podczas instalacji aplikacji, zawsze weryfikuj, czy uprawnienia o które prosi aplikacja są zasadne. Po co aplikacji do monitoringu kursów walut uprawnienie do czytania SMS-ów?

Ten atak jest świetnym przykładem, dlaczego nie powinno się trzymać obu składników uwierzytelnienia w jednym miejscu (tu, na telefonie komórkowym jest i hasło i kod z SMS-a). Dlatego też


do bankowości najlepiej używać osobnego urządzenia.


To jest uciążliwe, ale jeśli ktoś “się nie zna” a ma dużo na koncie, to takie dedykowane urządzenie jest niewielkim kosztem w porównaniu do kradzieży oszczędności życia. Taką właśnie radę dajemy na naszych wykładach pt. “
Zaloguj lub Zarejestruj się aby zobaczyć!
“, które są kierowane do każdego, kto na korzysta z komputera lub smartfona i internetu, robi zakupy w sieci i korzysta z bankowości internetowej. Rad jest więcej — przekonaj się sam! W najbliższych tygodniach ten wykład będziemy wygłaszali w Bydgoszczy (6 marca), Wrocławiu (26 marca) i Gdańsku (23 maja). Na wszystkie z nich można już
Zaloguj lub Zarejestruj się aby zobaczyć!
.
info:niebezpiecznik.pl
Zaloguj lub Zarejestruj się aby zobaczyć!
 
Do góry