04.09.2016 | 19:37

Łukasz

Uwaga na niebezpiecznego Benia, czyli VBKlip nie wie kiedy ze sceny zejść

Polscy internetowi przestępcy nie próżnują i niedawno wyprodukowali nowy egzemplarz złośliwego oprogramowania atakującego Wasze konta bankowe. Program nie jest innowacyjny, lecz stanowi realne zagrożenie dla bezpieczeństwa Waszych środków.

Prawie trzy lata temu pierwszy raz usłyszałem o, wtedy jeszcze innowacyjnym, zagrożeniu dla użytkowników bankowości elektronicznej. Podczas analizy okazało się, że modułowe złośliwe oprogramowanie napisane w Visual Basicu podmienia numer konta bankowego znajdujący się w schowku. Większość osób robiąc przelew kopiuje ten numer z faktury czy wiadomości e-mail, więc podmienienie go w schowku spowoduje, że użytkownik niepostrzeżenie przekaże środki na zupełnie inny rachunek niż zamierzał.

Od tego czasu, niczym w przypadku Adidas Superstar czy Nike Flyknit, powstało bardzo wiele podróbek. Większość z nich była w jakiś sposób autorską, przeważnie słabszą (jak wersja w  .NET) interpretacją oryginalnego pomysłu lub dodatkiem do bardziej złożonego złośliwego oprogramowania (jak w przypadku Slave). Z czasem zamiast podmieniać numer konta w schowku zaczęto go podmieniać w pamięci procesu przeglądarki. Trwało to bardzo długo i przynosiło mieszane efekty. Dodatkowo banki oraz systemy zapewniające bezpieczeństwo zaczęły w prosty sposób wykrywać złośliwe oprogramowanie tego typu, umieszczając na stronie niewidzialne dla użytkownika pole z losowym numerem konta. Jeśli bank zauważył, że coś ten niewidoczny numer zmodyfikowało, to od razu wiedział, który klient jest zainfekowany.

Niedawno do cyberlaboratorium ZaufanaTrzeciaStrona.pl trafiła próbka kolejnego takiego rozwiązania, znana pod nazwą „Benio”. Nazwa pochodzi z pozostawionej w kodzie ścieżki:

C:\!new supp\! PRACA !\drbenio\X1\Project1.vbp

Warto także zauważyć, że użytkownik o pseudonimie DrBenio miał konto w niedostępnym już forum ToRepublic nd. Benio obchodzi opisaną metodę wykrycia infekcji w ciekawy sposób. Po wczytaniu odpowiedniej strony – rozpoznawanej po nazwie okna przeglądarki (tytule strony) – Benio przeszukuje pamięć procesu przeglądarki, aż znajdzie odpowiednie sekwencje znaków (np. „Numer konta:”, „Odbiorca”, „Wyślij”). Po znalezieniu tych sekwencji podmienia dane znajdujące się między nimi (np. właściwy numer konta czy dane odbiorcy). Powoduje to, że numer konta znajdujący się w ukrytym polu nie zostanie podmieniony. Ze względu na bardzo duże podobieństwo do pierwszej wersji VBKlip możliwe, że autor Benia miał dostęp do jego kodu źródłowego.

Znowu modułowy VBKlip

Dostarczona próbka rozpakowuje się do katalogu tymczasowego. W rozpakowanej paczce znajduje się pięć plików: trzy pliki wykonywalne, opisane w dalszej części wpisu, plik konfiguracyjny oraz plik PDF, którego część widać na zrzucie ekranu poniżej.

Potwierdzenie przelewu z Benko

Dokument ten jest wyświetlany po uruchomieniu złośliwego oprogramowania. Dodatkowo, Benio otwiera stronę www.adobe.com. Takie zachowanie, połączone z rozszerzeniem spotkanej przez nas próbki .pdf.src powala podejrzewać, że koń trojański rozprzestrzenia się udając potwierdzenie przelewu bądź fakturę.  Benio instaluje się w kluczach rejestru odpowiadających za automatyczne uruchomienie programu po starcie systemu. Wpis ten znajduje się pod kluczem „Windows 10 updater”. Benio składa się z trzech komponentów, zgodnych funkcjonalnie z oryginalną wersją VBKlip. Dodatkowo wspomniany wcześniej plik konfiguracyjny jest dzielony na ponad 20 różnych, mniejszych, plików z konfiguracją, które będą używane przez poszczególne komponenty. Co ciekawe, żadne z tych plików nie są oznaczone ani jako ukryte ani jako systemowe. Czasem wykorzystywany jest zaawansowany algorytm szyfrujący Base64. Wszystko to tworzy bardzo duży bałagan.

Pierwszy z komponentów, taskmgr.exe (nazwa wewnętrzna: UPD, prawdopodobnie od „update”), służy do zapewnienia komunikacji sieciowej oraz sprawdza działanie pozostałych programów, których nazwy są umieszczone w pliku temp1009.tmp. Komunikacja sieciowa polega na wysłaniu wszystkich logów z Benia z adresu oraz na adres e-mail znajdujący się w konfiguracji, pobraniu aktualizacji pliku konfiguracyjnego bądź pobraniu nowszej wersji złośliwego oprogramowania. Jest to dokładnie to samo zadanie, które spełniał „taskmgr.exe” w oryginalnej wersji VBKlip. Dodatkowo komponent ten odpowiada za aktualizację całego konia trojańskiego.

Drugi komponent, mscvhost.exe (nazwa wewnętrzna: STN) odpowiada za podmianę numeru rachunku. W konfiguracji znajduje się nazwa nadawcy oraz numer rachunku, na który nastąpi podmiana. Komponent ten również odpowiada za interpretację pliku konfiguracyjnego. Obecnie plik konfiguracyjny składa się z następujących sekcji, które zostaną przeniesione do plików tempXXXX.tmp, tak, aby łatwiej było się do nich w kodzie odnosić. W niektórych przypadkach pominąłem fragmenty, które wydają się nieistotne.

Pierwsze dwie linijki zawierają numer konta, na który ma nastąpić podmiana oraz nazwę odbiorcy, która również ma zostać zastąpiona przez Benia.

57 [REDACTED] 4379
EURODACHY L SKIEPKO

Kolejne linijki zawierają adresy serwerów C&C z którymi ma się skontaktować taskmgr.exe, aby otrzymać nową konfigurację lub aktualizację złośliwego oprogramowania.

120
4912543012.net23.net
5437834521.comli.com
5437834X2l.comli.com

Kolejna sekcja zawiera konto e-mail, z którego będą wysłane logi z działania programu. Zawiera ona również adres docelowego konta e-mail. Pierwsza wersja VBKlipa również do wysyłania logów używała  kont w tej samej domenie.

01 0720 0700 mail.vfemail.net
02 0380 0400 587
03 9999 9999 [email protected]
04 9999 9999 [PASSWORD]
05 0800 0650 [email protected]

Kolejne dwie sekcje zawierają tytuły stron poszczególnych serwisów transakcyjnych. W pierwszym przypadku są to tytuły stron służących do logowania, a w drugim przypadku są to tytuły stron służących do wykonania przelewu. Tytuły stron doradzają Beniowi kiedy ma wykonać podmianę, a kiedy nie. Co ciekawe, nazwy banków nie są podane wprost, ale są na stałe wpisane w złośliwym oprogramowaniu. Benio wie, że w pierwszej linijce ma się spodziewać tytułu strony należącej do Alior Banku, w drugiej do BZ WBK etc. Jeśli linijka rozpoczyna się od znaku X oznacza to, że w tym przypadku (dopóki nie zmieni się konfiguracja) nie należy wykonywać podmiany numeru konta. Tytuły stron są wpisywane w następującej kolejności:

  1. Alior Bank
  2. BZ WBK
  3. BGŻ (wyłączona podmiana)
  4. Credit Agricole (wyłączona podmiana)
  5. Getin Bank oznaczony jako „I”
  6. Getin Bank oznaczony jako „F” (wyłączona podmiana)
  7. ING oznaczone jako „S” – najpewniej „stary” system bankowości elektronicznej
  8. ING oznaczone jako „N” – najpewniej „nowy” system bankowości elektronicznej
  9. mBank
  10. Bank Pocztowy (wyłączona podmiana)
  11. iPKO
  12. Raiffeisen
  13. Pekao SA
  14. Millenium (wyłączona podmiana)
pl/hades/do/Login
Logowanie
XPl@net
XCredit Agricole
Internetowej - Getin
XInternetowej - Getin
internetowej ING
Moje ING
mBank serwis transakcyjny
Xinternetowej Banku Pocztow
iPKO - nowa bank
XLogowanie - Raiffeisen Bank
Pekao24 - banko
XMILLENNIUM
Bankowość Internetowa
Bank Zachodni
XPl@net
XCredit Agricole
Internetowa - Getin
XInternetowa - Getin
Przelew dowolny > Przelew w PLN
Moje ING
Przelew - Płatności - mBank
Xinternetowej Banku Pocztow
Internetowy iPKO
XR-Online - Raiffeisen Bank Polska
Pekao24 - banko
XMILLENNIUM

Po tych dwóch sekcjach następuje 14 kolejnych. Każda z nich opisuje jeden bank z powyższej listy. Sekcja zaczyna się od dwóch linii znaków, na przykład dla mBanku są to:

01 g(Kwota)WWAkKg(wa od)PPoOFG(ij pr)Q
02 g(cznie kon)PPPkKg(wa od)PPoOFG(ij pr)Q

Każda z linii określa pewien rodzaj wyrażenia regularnego, które zostanie dopasowane do pamięci procesu. Jest to realizowane przez otwarcie procesu spełniającego dwa warunki: musi być to proces przeglądarki oraz musi mieć odpowiedni, wymieniony wyżej, tytuł strony. Z tak otwartego procesu pamięć jest odczytywana za pomocą funkcji ReadProcessMemory. Następnie jest ona dopasowywana do pierwszej bądź drugiej linii z sekcji powyżej. W przypadku dopasowania do wzorca dane odbiorcy (numer konta oraz nazwa) są zmieniane za pomocą funkcji WriteProcessMemory. W przypadku serwisu transakcyjnego mBanku „Kwota” zostanie dopasowane do „Kwota”, „wa od” do „Nazwa odbiorcy”, „ij pr” do „Wyślij przelew” a „cznie kon” do „Pokaż wyłącznie kontakty z książki odbiorców„.

Mechanizm ten przypomina technikę używaną przez inne konie trojańskie infekujące użytkowników bankowości elektronicznej – webinjecty. Technika ta też polega na wyszukiwaniu pewnych wzorcowych ciągów znaków na stronie i zastępowaniu elementów strony innymi, przygotowanymi przez atakującego, fragmentami kodu HTML/JS. W tym przypadku zastępowane są numery kont bankowych, a nie kod HTML. Dodatkowo, „webinject” jest przeważnie realizowany przez nadpisanie odpowiednich funkcji bibliotek DLL, które odpowiadają za wyświetlenie strony na ekranie użytkownika, przez co jest dużo bardziej precyzyjny, szybszy i zawsze przynosi oczekiwane efekty. Jak widać „webinject” jest dużo bardziej technicznie złożoną techniką, więc porównywanie go do sposobu działania Benia jest jak porównywanie telewizora do kartonowego pudełka z naklejonym zdjęciem Jolanty Pieńkowskiej. Oba pozwolą zobaczyć tę samą scenę, ale jednak jest między nimi wyraźna różnica.

Ostatni moduł o nazwie msavhost.exe (nazwa wewnętrzna: KL, prawdopodobnie od „keylogger”) odpowiada za zapisanie wszystkich wciskanych klawiszy oraz tytułów okien znajdujących się na pierwszym planie. Dodatkowo loguje również informacje związane z zawartością schowka, otwieranymi programami czy informacjami związanymi z działaniem Benia. Wszystkie te logi są zapisywane do jednego z plików *.tmp, a następnie wysyłane za pomocą taskmgr.exe.

Attribiution is easy!

Przeważnie bardzo ciężko jest przypisać jednoznacznie autorstwo złośliwego oprogramowania. W tym przypadku jednak autor był tak wspaniałomyślny, że się podpisał (oczekując pewnie, że znajdzie kupców na swoje rozwiązanie).

- EMAIL: [email protected] -

---- JID: [email protected] ----

Nie tylko podpis, ale także logi czy ścieżki znalezione w złośliwym oprogramowaniu pozwalają jednoznacznie stwierdzić, że autorem jest osoba z Polski, bądź osoba, dla której polski jest językiem, którym swobodnie się posługuje. Autor posługuje się nickiem „Bałaganiarz” lub „tenczwarty”, a w całym Beniu znajduje się wiele innych odniesień do słowa „bałaganiarz”. Oczywiście istnieje także możliwość, że ktoś po prostu chciał wskazać na fałszywego sprawcę, wybierając znanego w środowisku eksperta od kradzieży cudzych pieniędzy.

Jaka jest skala zagrożenia

Według otrzymanych przez nasze cyberlaboratorium informacji ataki z użyciem Benia mogą trwać od około miesiąca. Opisywana przez nas próbka rozsyłana była od 30 sierpnia i w tym czasie zainfekowała co najmniej kilkadziesiąt firm w całej Polsce. Wiele wskazuje na to, ze przynajmniej w ostatnich dniach ofiarami przestępców padały małe i średnie firmy z sektora budowlanego i wykończeniowego. Widać tutaj inteligencję autorów, którzy zamiast rozsyłać setki tysięcy emaili tworzą dedykowane kampanie o bardzo małej skali, dobrze dopasowane do odbiorców (np. firma budowlana otrzymuje fakturę za dostawę cementu a sprzedawca zasłon informację o zwrocie dostawcy firanek). Dzięki temu rośnie procentowa skuteczność ataków oraz trudność ich wykrycia.

Metoda uniknięcia zagrożenia (oprócz zaprzestania otwierania przypadkowych załączników o rozszerzeniu .PDF.SCR) jest prosta – wystarczy przed przepisaniem kodu potwierdzającego przelew sprawdzić numer rachunku podany w SMSie przez bank. W razie najmniejszych wątpliwości dzwońcie do swojego banku.

Podsumowanie

Jak widać, VBKlip wciąż, niczym „Last Christmas” w grudniu, powraca. Specjaliści zajmujący się bezpieczeństwem próbują walczyć z tego typu złośliwym oprogramowaniem, ale kolejni autorzy również wymyślają kreatywne metody obejścia zabezpieczeń oraz swojego braku umiejętności programistycznych. Już dawno myślałem, że wyścig zbrojeń w przypadku VBKlipa się zakończył, ale wygląda na to, że czeka nas jeszcze kilka tomów tej sagi.

Jeśli pracujesz w banku lub podobnej instytucji i chcesz brać czynny udział w walce z przestępcami i ich złośliwym oprogramowaniem, odezwij się do redakcji – nie jesteś sam. Dziękujemy Anonimowym Analitykom którzy przyczynili się do powstania tego artykułu. 

IOC:

Powrót

Komentarze

  • 2016.09.04 21:50 Eldzik

    [email protected]

    Pochodzi ze swinouscia i ma na imie Adam.

    Jego nick na forum hydra to: Adaśko

    Pozdrawiam Zyczliwy

    Odpowiedz
    • 2016.09.05 12:15 balaganiarz

      Jest starym prykiem z mozdzkiem wielkosci orzeszka, dlatego ciagle meczy Klipera.
      Ma ksywke romek vel roman i ostatnio mial nick Pracodawca, szukal frajerow do swojej pracy na Hydrze.

      Pozdr Maciek

      Odpowiedz
      • 2016.09.08 20:35 s0g

        Bałaganiarzu, takiś obeznany a nie wiesz, że to OneAnother przejął zabawki polsilvera i kybera.

        Odpowiedz
      • 2016.09.08 20:44 s0g

        Bałaganiarzu, takiś obeznany a nie wiesz, że to bałaganiarz albo OneAnother przejął zabawki polsilvera i kybera. Możliwe że oboje.

        Odpowiedz
  • 2016.09.05 01:13 TProgrammer

    „Czasem wykorzystywany jest zaawansowany algorytm szyfrujący Base64.”

    Dobreee. Śmiechłem.

    Odpowiedz
    • 2016.09.05 16:17 maslan

      Też długo to kminiłem, ale doszedłem do tego że pewnie chodzi o to że robi Base64 a potem to szyfruje, albo po prostu to była ironia. Jak było Adam? :)

      Odpowiedz
  • 2016.09.05 10:15 Mirek

    „zaawansowany algorytm szyfrujący Base64” żarty powinny być opatrzone surfixem ;)

    Odpowiedz
  • 2016.09.05 10:18 salmon

    Jak napisaliście, że „Benio instaluje się w kluczach rejestru” przestałem dalej czytać. Mam Linuxa :D
    Właściwie to już większa część mojej rodziny ma. Jakoś tak spokojniej się śpi.

    Odpowiedz
    • 2016.09.05 16:18 maslan

      Faktycznie, nie ma rejestru to już żadne złośliwe oprogramowanie nie ruszy linuxa…..

      Odpowiedz
      • 2016.09.07 13:39 MatM

        Statystycznie rzecz ujmując @salmon ma rację. Ciągle czekam na jakieś złośliwe oprogramowania atakujące użytkowników Linuksa ale nic się nie chce pojawić. Chyba już prędzej nVidia udostępni otwarte sterowniki na Linuksa do swoich kart graficznych niż ktoś napisze „złośliwe oprogramowania atakujące konta bankowe”.

        Odpowiedz
      • 2016.09.22 08:52 salmon

        Nie napisałem, że żadne. Zdecydowana większość jednak nie ruszy.

        Odpowiedz
    • 2016.09.05 22:05 Przemko

      > Właściwie to już większa część mojej rodziny ma. Jakoś tak spokojniej się śpi.

      A nawyki z Windows, czyli codzienna praca na koncie o uprawnieniach admina, zmienione czy tylko się przesiedliście na inny system? ;)

      Odpowiedz
      • 2016.09.07 20:11 Therminus

        A nawyki z Windows, czyli codzienna praca na koncie o uprawnieniach admina, zmienione czy tylko się przesiedliście na inny system? ;)

        A która to dystrybucja zakłada użytkownika z domyślnymi uprawnieniami roota?
        Rzuć chociaż ze trzy przykłady.

        Odpowiedz
      • 2016.09.22 08:50 salmon

        Wszyscy mają Kubuntu i osobnego użytkownika.
        Domyślnie mają dostęp do sudo. Faktycznie muszę to zmienić.

        Odpowiedz
  • 2016.09.05 15:11 zdzislaw dyrma

    To slynny unreg w 2013 kupil na smierdzacym TR program (od Polsilvera udajacego kogos innego) i od tamtej pory go przerabia i wciska. Chlopak mieszka w Lodzi.
    Ale unreg sie przydal: wpierdolil na mine Polsilvera.

    Odpowiedz
  • 2016.09.05 17:50 Filystea

    „zaawansowany algorytm szyfrujący Base64. ” Dobre to było.

    Odpowiedz
  • 2016.09.05 22:20 gron

    Getin Bank oznaczony jako I/F – indywidualne/firmowe?

    Odpowiedz
  • 2016.09.07 13:16 M

    Długo nie pohasa, Polsilver też myślał że jest nie do wyj******

    Odpowiedz
  • 2016.09.07 18:59 CyberMonk

    Niestety, bardzo dobra analiza…

    Niestety dla autora malware’u ;)

    Odpowiedz

Zostaw odpowiedź do maslan

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Uwaga na niebezpiecznego Benia, czyli VBKlip nie wie kiedy ze sceny zejść

Komentarze