Analisi Gootkit: nel mirino 60+ domini italiani

15/02/2019

gootkit malspam

Il CERT-PA ha avuto evidenza di una campagna di malspam indirizzata ad Enti pubblici italiani e veicolata tramite PEC precedentemente compromesse. Nei casi esaminati dal CERT-PA il messaggio sembra un prosieguo di una conversazione già intercorsa tra le parti e riporta in allegato un archivio (.zip) che contiene un documento ufficiale, di solito un pdf legittimo prelevato online da un sito scelto casualmente da una delle PA centrali, e un file .jse denominato Avviso, Ordine o Preventivo.

JSE Malevolo

Il file di tipo jse, opportunamente offuscato, esegue uno script powershell che ha lo scopo di scaricare un file eseguibile (di tipo PE) da un dominio remoto (http://it[.]bikescout24[.]cloud/501) e salvarlo nella cartella Temp col nome di “Taskhoste.exe“. Dopo una pausa di 30 secondi il file viene eseguito sul sistema.

PE Unpak #1

Una volta sottoposto ad analisi, il sample (ab8afd8e101417c08ad24b68f5f43648) decodifica le informazioni in un nuovo PE direttamente in memoria.

PE Analysis #2

Dopo aver acquisito il nuovo PE (9cead12f3040fe2859efe0bce9fb4a72) dalla memoria, è stato possibile osservare le chiamate API di cui si avvale il malware per attivare la componente malevola. Di seguito alcune funzioni di particolare interesse:

“CloseHandle”, “CopyFileW”, “CreateFileW”, “CreateMutexW”, “CreateProcessAsUserW”, “CreateProcessW”, “CreateServiceW”, “CreateThread”, “CreateToolhelp32Snapshot”, “DeleteFileW”, “DisconnectNamedPipe”, “ExitProcess”, “ExitThread”, “FindFirstFileW”, “FindNextFileW”, “GetCommandLineW”, “GetComputerNameA”, “GetComputerNameW”, “GetCurrentProcess”, “GetCurrentProcessId”, “GetFileAttributesW”, “GetFileSize”, “GetModuleFileNameW”, “GetModuleHandleA”, “GetModuleHandleW”, “GetProcAddress”, “GetSystemDirectoryW”, “GetTempFileNameW”, “GetTempPathW”, “GetTickCount”, “GetUserNameA”, “GetVersionExW”, “GetWindowThreadProcessId”, “HeapAlloc”, “HttpQueryInfoA”, “HttpSendRequestA”, “InternetCloseHandle”, “InternetConnectA”, “InternetOpenW”, “InternetQueryOptionA”, “InternetReadFile”, “IsBadReadPtr”, “LoadLibraryA”, “OpenMutexW”, “OpenProcess”, “OpenProcessToken”, “OutputDebugStringA”, “Process32FirstW”, “Process32NextW”, “ReadFile”, “RegCloseKey”, “RegCreateKeyA”, “RegCreateKeyExW”, “RegDeleteValueW”, “RegOpenKeyA”, “RegOpenKeyExA”, “RegOpenKeyExW”, “RegOpenKeyW”, “RemoveDirectoryW”, “SetFilePointer”, “ShellExecuteExW”, “Sleep”, “StartServiceCtrlDispatcherW”, “StartServiceW”, “TerminateProcess”, “VirtualAlloc”, “VirtualAllocEx”, “VirtualFree”, “VirtualProtect”, “VirtualProtectEx”, “WSAStartup”, “WaitForSingleObject”, “WriteFile”, “WriteProcessMemory”, “bind”, “closesocket”, “lstrcmpA”, “lstrcmpW”, “lstrcmpiA”, “socket”

Nel corso dell’analisi è stato riscontrato un ciclo di verifica dei parametri passati all’eseguibile. Nello specifico sono stati osservati i seguenti pattern nel seguente ordine:

  • –reinstall
  • –service
  • -test
  • –vwxyz

Nel caso in cui il malware (relativo al nuovo PE, dunque al secondo stage) viene lanciato senza alcun parametro, dopo le dovute verifiche, il sample procede con la scrittura di un file .bat (466264d54fe82b4f7b3c51ab108c42ed) contenente le seguenti righe di codice:

attrib -r -s -h %1
:12211859
del %1
if exist %1 goto 12211859
del %0

Lo script ha il compito di rimuovere il malware (%1) dalla macchina e successivamente di cancellare se stesso (%0). La medesima operazione viene eseguita puntualmente a termine dell’installazione.

Non è la prima volta che vengono individuate varianti di Gootkit che richiedono uno specifico parametro per dar via all’infezione, in una analisi risalente ad aprile 2018 si ha evidenza dell’uso di due dei quattro parametri rilevati (preceduti da un solo trattino): -vwxyz e -test. Altra variante di Gootkit molto simile a questa è stata analizzata nella giornata di ieri da certego.

Avviando il malware con il parametro –vwxyz è possibile osservare le richieste verso il dominio “villa[.]villamaremma[.]it

Nello specifico vengono effettuate una serie di richieste GET verso https://villa[.]villamaremma[.]it/rbody320

Il CERT-PA, in collaborazione con il CERT Nazionale, ha provveduto già dalla giornata di ieri alla dismissione del malware dalla url indicata.

Domini italiani

Dal dump della memoria è stato possibile estrarre la lista dei domini (consultabile per intero in formato raw) per i quali Gootkit resta in ascolto in attesa di carpire le credenziali. I domini italiani interessati da questa specifica campagna risultano essere 64 (lista consultabile in formato testuale):

888sport.it banbanchs.it fableforge.it illorenese.it nwwnetwork.it yourcomputer.it social-events.it
ad-notam.it bandgap.it farmacia.it imedi.it onewpst.it xtom.it shaundanielz.it
advanced.it blablacar.it fiksel.it inabox.it parckwart.it amazon.it seyfarth.it
algolia.it cartouche24.it fraye.it jobs.it parser.it wow-foederation.it ristioja.it
andrea-wirthensohn.it certly.it gflclan.it loveismore.it pomar.it wifirst.it
ao-dev.it chazay.it giacomodrago.it mattandyana.it practodev.it trainline.it
atypicom.it cocaine.it glyph.it melbourne.it questionable.it tourispo.it
augias.it dalek.it green-care.it menzel-motors.it redburn.it taglioepiega.it
riko-games.it dne.it greyskymedia.it mobilewikiserver.it redheeler.it square.it
autodalmacija.it easyocm.it gtldna.it newday.it zscales.it spedplus.it

Molti dei domini non risultano raggiungibili, si presume che la lista venga aggiornata senza tener conto di quelli ormai dismessi.

Indicatori di compromissione

IoC (.txt) – File globale : URL, hash files (SHA1, MD5 e SHA256)
IoC (HASHr.txt) – Lista dei soli hash file da utilizzare in combinazione con il tool HASHr