czwartek, 28 maja 2015

ARCFOUR

Od dawna twórcy złośliwego oprogramowania stosują algorytmy kryptograficzne do utrudnienia analizy (np. uniemożliwienia uzyskiwania plików konfiguracyjnych z zrzutu pamięci procesu, szyfrowania komunikacji sieciowej) czy ograniczenia prób identyfikacji przez systemy AV/BDS.
Już pisaliśmy o malware i szyfrowaniu RC4, jednak niniejszy przypadek jest ciekawszy. Algorytm symetryczny RC4 został zastosowany kilka razy w procesie uruchamiania złośliwego kodu na zainfekowanym komputerze.

Analizowany plik ze złośliwym oprogramowaniem to „pdf informacja o działki.exe”. Od 7 maja na skrzynki email osób prywatnych ale również konta firmowe w Polsce regularnie (co 6-7 dni) trafiają wiadomości, które umożliwiają nam pobranie tego pliku.



Przykłady pobieranych plików zip zawierających plik exe:


Uruchomienie aplikacji powoduje instalację komponentu malware (system.pif) w katalogu domowym użytkownika Startup/Autostart. Ten komponent może pobierać/uruchamiać bez wiedzy/udziału użytkownika inne pliki wykonywalne (efektem końcowym są zaszyfrowane pliki – nie tylko dysków lokalnych ale i podłączonych zasobów sieciowych). Jest też wersja na system Android mająca inną funkcjonalność [1].

Algorytm RC4  wykorzystywany jest do:
  • Odszyfrowania fragmentu kodu wykonywalnego loader-a (ten fragment odpowiada za odkodowanie głównego kodu),
  • Odszyfrowywania klucza, który użyty jest do odszyfrowania dwóch plików wykonywalnych,
  • Odszyfrowania dwóch plików wykonywalnych. Jeden plik mapowany jest do pamięci procesu system.pif, drugi (spakowany UPX) mapowany do pamięci procesu iexplore.exe. W obu przypadkach zastosowana technika to process hollowing,
  • Szyfrowania komunikacji pomiędzy działającym procesem malware a serwerami C&C (jeden z zastosowanych kluczy &^V8trcv67d[wf9798687RY). Serwery C&C są w domenie .RU (zastosowano również usługę Fast-Flux) – niektóre adresy IP są jeszcze aktywne.
Poniżej fragmenty oryginalnego pliku system.pif i przykłady zastosowania algorytmu RC4.

Fragment kodu, który identyfikuje klucz RC4 używany do odkodowania głównego kodu loader-a (rozmiar loader-a 0x3E80).


Poszczególne fragmentu zakodowanego kodu oddzielone są tagiem „RT-t”. W zielonej ramce klucz deszyfrujący.


Zaszyfrowane pliki wykonywalne umieszczone są jako zasób 21 (widok z CFF Explorer).


Fragment kodu odszyfrowujący pliki wykonywalne:


Odkodowany fragment malware (pierwszego pliku wykonywalnego):


Co ciekawe klucz odszyfrowujący dwa pliki jest również zaszyfrowany RC4. Poniżej jego wersja zaszyfrowana (z pliku pif) i odszyfrowana (z pamięci):


Poniżej ostatni przykład. Proces szyfrowania danych przed wysłaniem do serwerów C&C.


Malware przesyła do serwera C&C nazwę użytkownika, nazwę hosta oraz listę aktualnie uruchomionych procesów.

Odnośniki zewnętrzne:
[1] http://www.cert.pl/news/10180

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

środa, 13 maja 2015

Metody socjotechniczne w bankowości internetowej

Od dwóch dni obserwujemy dużą aktywność złośliwego oprogramowania (powiadomienia z DHL), które zawiera w swoich plikach konfiguracyjnych kilka banków z Polski. Są to:
  • *citibankonline.pl*
  • *online.ingbank.pl
  • *aliorbank.pl/
  • *ebgz.pl/detal-web/jbank/*
  • *online.mbank.pl*
  • *www.ipko.pl/nowe*
Jest to malware typu "webinject". Złośliwy kod javascript „doklejany” jest do stron bankowości internetowej po zalogowaniu użytkownika. Niektóre skrypty są w całości doklejane a niektóre pobierane z wielu serwerów za pomocą https. Mogą się również pojawiać komunikaty w dodatkowych oknach.

Oto komunikaty, które będą się pojawiały zainfekowanym klientom bankowości.

Treść komunikatu numer 1:


Treść komunikatu numer 2:


Treść komunikatu numer 3:


Powiązane komunikaty:



Treść komunikatu numer 4 (Zarezerwowany jak na razie dla jednego banku):


Ja łatwo zauważyć tłumaczenie na język polski nie jest najlepsze.

Jest to malware wykrywany przez systemy AV jako EMOTET. O tym jak odkodować plik konfiguracyjny tego malware pisaliśmy tutaj.

Jak znaleźć i usunąć z dysku złośliwy kod?

Plik wykonywalny:
c:\users\<username>\AppData\Local\1a7c93b1b3afe745137ad900a554236d.exe

Autostart z klucza RUN:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run -> 1a7c93b1b3afe745137ad900a554236d.exe