sobota, 16 maja 2015

Analiza złośliwego załącznika z makro

Poniżej przedstawiamy krótką analizę rozsyłanego dzisiaj załącznika. Malware rozsyłany w załączniku miał bardzo małą wykrywalność przez programy AV – ale to nie powinno nikogo dziwić.

Załączany do wiadomości email plik jest dokumentem z rozszerzeniem doc. Jednak gdy otworzymy go w edytorze szesnastkowym możemy zauważyć, że zapisany jest w formacie MIME. Oryginalnie zapisany był jako plik htm a następnie rozszerzenie zostało zmienione na .doc. Zaletą takiego formatu jest to, że obiekty w pliku doc kodowane są za pomocą base64 (np. skrypty VBS). Taki plik bez problemów może być otworzony przez użytkownika z poziomu klienta poczty.


Następnym krokiem jest konwersja do formatu doc (Word 97 – 2003). Najszybciej zrobimy to z pomocą edytora Word z wyłączoną obsługą makr. Możemy zauważyć, że plik zawiera makra ale dostęp do projektu VBS chroniony jest hasłem.



Jest kilka znanych metod obejścia tego mechanizmu. Zamieniamy hasło na znane modyfikując wartości CMG/DPB/GC lub modyfikujemy nazwę parametru. Możemy też rozpakować plik doc i z poziom edytora szesnastkowego uzyskać dostęp do VBS.

Poniżej przykład modyfikacji parametru:


Po ponownym otwarciu pliku doc w edytorze Word pojawi się komunikat o błędzie.


Akceptujemy ostrzeżenie i zapisujemy plik jako nowy plik doc. Teraz gdy ponownie go otworzymy mamy dostęp do skryptów. Niestety skrypty są obfuskowane więc przydatny będzie debugger. Do monitorowania parametrów możemy wykorzystać funkcjonalność Watch lub funkcje MsgBox(). Poniżej zawartość głównej funkcji:


Na początku odkodowywane są nazwy obiektów (np. MSXML2.XMLHTTP), adres URL i wywoływane są funkcje pobierające kolejny skrypt (z serwera pastebin.com), który jest zapisywany w katalogu TEMP a następnie uruchamiany. Funkcja VunjuLavjtQLpqQ() odpowiada za odszyfrowywanie fragmentów danych: Public Function VunjuLavjtQLpqQ(ByVal Data As String, ByVal Password As String) As String. Dodając na jej końcu funkcję MsgBox() będziemy mogli monitorować zwracane wartości. Poniżej przykład odkodowanego adresu URL z którym łączy się skrypt:


Poniżej fragment zawartości pobranego skryptu. Pierwszy adres URL nie jest zakodowany. Dopiero z tego adresu URL pobierany jest plik EXE ze złośliwym oprogramowaniem.


Dalsza część skryptu sprawdza między innymi czy uruchomiony jest Microsoft Word (za pomocą WMI - iyuiuiiii.ExecQuery). Jest też zakodowany drugi adres URL w domenie .RU na który wysyłane są powiadomienia:


Załącznik: (MD5: 9F38297FEB64734AB3E95ECBCD5F75E7) = VT: 5
Pobierany EXE: (MD5: EDB660EF32E2FD59AD1E610E9842C2DF) = VT: 21

Brak komentarzy:

Prześlij komentarz