Analiza malware Remote Administration Tool (RAT) DarkComet BeSTi@ 24 marzec, 2014 Wstęp Tydzień temu do wielu skrzynek pocztowych w Polsce trafił email z linkiem do pliku podszywającego się pod nową aktualizację aplikacji o nazwie BeSTi@ (System Zarządzania Budżetem Jednostek Samorządu Terytorialnego). Fałszywa aktualizacja to narzędzie typu Remote Administration Tool (RAT) - DarkComet zmodyfikowane pakietem AutoIT. DarkComet bardzo często wykorzystywany jest do infekowania stacji roboczych i serwerów z systemem operacyjnym Microsoft Windows nadaje się idealnie do łatwego i szybkiego budowania sieci bot, które pozwalają między innymi na przeprowadzanie ataków DDoS czy kradzież haseł użytkowników. Poniżej przedstawiamy wynik analizy przeprowadzony na poniższej próbce: File: Bestia.3.02.012.07.exe Size: 562237 MD5: 9BB03BB5AF40D1202378F95A6485FBA8 Analiza Process Explorer wyświetla proces malware jako spakowany (plik spakowany za pomocą UPX). Uruchomiony plik tworzy swoją kopię pod nazwą driver--grap.exe. Dla systemu Windows 7 jest to katalog: C:\Users\<username>\AppData\Roaming\driver--grap.exe. Dodaje też skrót o nazwie Windows do katalogu Startup w celu zapewnienia automatycznego startu złośliwej aplikacji po restarcie systemu operacyjnego. Na poniższym rysunku przedstawiona jest informacja o właściwościach skrótu Windows. Prevenity 2014 1
Rysunek 1. Właściwości skrótu Windows. Po restarcie zainfekowanego komputera na liście procesów będzie widoczna aplikacja driver-- grap.exe. Jedną z funkcji malware jest keylogger. Dane zapisywane są w pliku tekstowym o rozszerzeniu.dc. Nazwa pliku to aktualna data. Poniżej fragment zawartości logu: C:\Users\<username>\AppData\Roaming\dclogs\2014-03-20-2.dc :: Bestia (4:20:49 PM) :: Start menu (4:20:59 PM) notepad :: Untitled - Notepad (4:21:19 PM) prevenity :: Blank Page - Windows Internet Explorer (5:37:02 PM) o[<-][<-]prevenity.com :: Administrator: C:\Windows\system32\cmd.exe (5:43:55 PM) dir DarkComet łączy się z adresem IP: 188.116.4.246 na port TCP 81. Nie korzysta z ustawień proxy ani nazwy domenowej hosta o tym IP (wiewiora.me). Po nawiązaniu połączenia możliwe jest zdalne przesyłanie komend do zainfekowanego komputera. Komunikacja pomiędzy serwerami a klientem DarkComet jest szyfrowana. Poniżej zapis przechwyconej i zaszyfrowanej komunikacji keepalive wysyłanej z serwerów (zainfekowanych stacji) co 20 sekund. Prevenity 2014 2
Wartość obiektu MUTEX (informacja z Process Explorer): Wartość obiektu MUTEX (konfiguracja odczytana z pamięci procesu) W pliku konfiguracyjnym obok wartości MUTEX znajduje się hasło używane do szyfrowania komunikacji. Poniższy fragment kodu odpowiada za załadowanie danych z pliku konfiguracyjnego (między innymi klucza szyfrującego, wysyłanych komend): driver grap.exe:00403111 loc_403111: driver grap.exe:00403111 fild qword ptr [ecx+eax] driver grap.exe:00403114 fild qword ptr [eax] driver grap.exe:00403116 cmp ecx, 8 driver grap.exe:00403119 jle short loc_40312c Poniżej przykład dotyczący zaszyfrowania komunikatu #KEEPALIVE#, który wysyłany jest z zainfekowanego komputera. Komunikat #KEEPALIVE# po zaszyfrowaniu: Wywołanie funkcji sprawdzającej czy komenda została zaszyfrowana (adres 0x4030FC). Prevenity 2014 3
Fragment funkcji szyfrującej (adres funkcji 0x4613D8). Ostatnim elementem jest zastosowanie operacji XOR do zakodowania poszczególnych znaków komendy. Na kolejnym zrzucie z ekranu oraz liście znajdują się niektóre z dostępnych w DarkComet komendy/funkcje: Prevenity 2014 4
%IPPORTSCAN SUBMREMOTESHELL WEBCAMLIVE SOUNDCAPTURE PASSWORD FTPFILEUPLOAD URLDOWNLOADTOFILE RPCLanScan #BOT#URLDownload #BOT#URLUpdate #BOT#SvrUninstall #BOT#CloseServer #BOT#RunPrompt #BOT#VisitUrl #FreezeIO #SendClip Poniżej fragment wewnętrznego dziennika zdarzeń DarkComet: Prevenity 2014 5
Komunikację sieciową malware możemy śledzić monitorując wywoływana funkcji ws2_32_send(). driver grap.exe:004863eb push eax ; zaszyfrowany komunikat driver grap.exe:004863ec mov eax, [ebp-8] driver grap.exe:004863ef mov eax, [eax+40h] driver grap.exe:004863f2 push eax ; \Device\Afd driver grap.exe:004863f3 call ws2_32_send Plik Bestia.3.02.012.07.exe zawiera wersję serwera DarkComent 5.x. Poniżej zrzut ekranu z konsoli zarządzającej (klient) i generatora (DarkComet Server Builder) plików exe (serwera DarkComet). Można je pobrać ze strony DarkComet [1]. Źródła [1] http://darkcomet-rat.com [2] http://contextis.com/research/blog/malware-analysis-dark-comet-rat/ [3] http://blog.malwarebytes.org/intelligence/2012/06/you-dirty-rat-part-1-darkcomet/ [4] http://www.matasano.com/research/pest-control.pdf Prevenity 2014 6