Analisi su tecnica anti-debug e anti-vm individuate in un packer VB6

09/06/2020

anti-dbg anti-vm vb6

Tra gli analisti di malware è frequente l’uso di un packer scritto in VB6, la cui caratteristica è quella di contenere codice nativo o P-CODE senza alcun senso. Il vero codice malevolo è invece contenuto in una sezione di memoria distinta dal codice VB6 e viene richiamato tramite un’opcode di chiamata nativa (nel caso di P-CODE) o tramite l’instruzione call (l’unica che non ha come target funzioni censite nel progetto VB6).

La particolarità di questo packer, già osservato per AgentTesla, Trickbot e Gotkit, riguarda la serie di tecniche anti-debug ed anti-vm utilizzate, al punto che tutto il codice malevolo è dedicato all’implementazione di queste tecniche. Solo una breve parte finale eseguirà il payload.

Fin’ora le due modalità di esecuzione sono state quella del process hollowing ed il download di un payload da internet, successivamente decodificato.

Agli inizi di maggio 2020 è stata analizzato un campione, utilizzato per veicolare Ave Maria, che conteneva due tecniche interessanti:

  1. la prima, una tecnica anti-debug, era già stata osservata in una precedente variante;
  2. la seconda è una tecnica anti-vm basata sulla profilazione di cpuid con rdtsc. Questa non è certo una tecnica nuova, l’aspetto interessante risiede nei parametri usati per il tuning dell’algoritmo di rilevazione di una VM. Rispetto alle tecniche anti-vm tradizionali, che si basano più che altro sulla presenza di artifatti visibili a livello di OS, questa si basa sulla presenza di artifatti visibili a livello architetturale2.

Link: Scarica il documento completo (PDF)