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

Brak komentarzy:

Prześlij komentarz