dimanche 23 septembre 2018

les Hashs du Malware Emotet



I.    Introduction

Emotet est classifié comme malware dans la catégorie cheval de troie ( Trojan ) , mais c'est 
un cheval de troie évolué et modulaire. Il fonctionne principalement comme un téléchargeur ou un dropper pour introduire d'autre programme malveillant.

Dans cette quelque ligne, nous allons revoir celui-ci, en  regardant uniquement la partie hash des processus servant a détecté les environnements virtualisés.
Le code utilisé sert à faire de l'anti-virtualisation au travers de la détection des processus trahissant
l'existance d'une machine virtuel type Vmware,HyperV, VirtualBox, VirtualPC ... etc.

I.    Algorithme de création des hashs


A partir d'information disparate existant sur le web, nous avions crée un tools permettant de disposer de l'algorithme de hash de Emotet en C++ pour cette partie des hashs représentant des noms de processus

Nous avions réalise ce programme pour déterminer les hashs non précisé sur le web.
Lorsque nous avons rechercher des informations sur ses hashs.

Il y avait que quatre processus ou l'on disposé du hash résultant que nous avons remis en dessous dans ce tableau

Nom du processus
Hash
vboxservice.exe
0xBCF398B5
vmacthlp.exe
0x2C967737
vmtoolsd.exe
0xE3EBFE44
vboxtray.exe
0x61F15513

Hors la liste des hashs était bien plus importante et contenait 15 hashs. Mais en cherchant, il y a pas informations accessible sur ses hashs. Hors N sites re pointant sur la même source initiale. 

Nous les avons remis en dessous dans un tableaux en C

DWORD MalwareEmotetListHashOfProcessNameTrackEnvirVirtualMachine [] =
{
0xBCF398B5, // vboxservice.exe  ( VBoxService.exe )
0x61F15513,   // vboxtray.exe
0xD8806134, 
0xC96D800E,                        
0x7D87B67D,       
0x2C967737,  //vmacthlp.exe
0x0C7F2BD9,
0x8BFF04B8,            
0xEF88AA77,
0x2023EE05, 
0x87725BFC,
0xB6521E80,             
0xAFED9FB6,                       
0x4EBEEE4C,                                   
0xE3EBFE44    //vmtoolsd.exe
};

Nous avons des outils permettant de casser par force brute les hashs lors de nos études de hashs inconnue.

Nous avons passer les hashs de la liste du malware Emotet au travers d'un outil dédier

Cela nous a donné les résultats suivant:

Hash
Nom des processus possibles
0xBCF398B5
VBoxfsadam.exe
VBoxahjoonf.exe
VBoxjuxoebt.exe
VBoxkptqtid.exe
VBoxservice.exe       ( VirtualBox )
0x61F15513
vboxtray.exe             ( VirtualBox )
ehfyehe.exe
xbbrbvt.exe
zunorwq.exe
0xD8806134
vboxsvc.exe               ( VirtualBox )
0xC96D800E
vbbhxlfij.exe 
prl_bfygksb.exe          
vboxrqpddne.exe
virtualbox.exe           ( VirtualBox )
vmgfltzwj.exe
0x7D87B67D
vmnat.exe                   ( VMware Workstation )
0x2C967737
vmacthlp.exe              ( VMware )
0x0C7F2BD9
vmware-authd.exe
0x8BFF04B8
vmware-pijkpde.exe 
xenfzejmkd.exe
vmwareqsftnsl.exe 
vmnetdhcp.exe           ( VMware Workstation )
xennocobee.exe               
crfxdeo.exe
lklcejb.exe
0xEF88AA77
vmware-usbarbitrator64.exe  ( VMware )
0x2023EE05
vmware-hostd.exe                    ( VMware )
0x87725BFC
vmware-tray.exe                      ( VMware )
0xB6521E80
vmware.exe                              ( VMware )
0xAFED9FB6
vmwarealiucwl.exe 
vmware-buyiuib.exe
prl_oyfbmvq.exe
prl_dthnebc.exe               <! Bizarre/ Non encore déterminer !>
Vuoietee.exe
0x4EBEEE4C
vmczpsvvj.exe     
vmwarelamxmoy.exe  
vmware-vmx.exe     (VMware Workstation 7)
0xE3EBFE44
vmtoolsd.exe            ( VMware )

Voici une capture de l'outil que nous avons réalisé pour effectuer la recherche des noms de processus pouvant correspondant au hash du malware.


Analyse de hash Emotet

 
























Nous mettons l'algorithme correspondant du malware Emotet

DWORD CalcCustomHashEmotet(const char* pProcessName)
{                 
           DWORD dwHash = 0x00000000;

            int i=0;
            do
            {
                        char c = pProcessName[i];

                        if( c >=  'A' && c <=  'Z' ) c = c + 0x20;

                        dwHash = dwHash * 0x0019660D + c + 0x3C6EF35F;
                       
                        i++ ;
            }while(pProcessName[i]!=0x00);

            return dwHash;
}

Dans exemple nous avons pris "VBoxservice.exe" qui donne le hash 0xBCF398B5

Lors d'une analyse, cela permet d'avoir un point d'accroche pour croiser les mécanismes utilisé par d'autres malwares.

I.    Les processus traqué pour Anti-VM


Nous remettons quelques processus de la listes que cherche Emotet
Cela permet de reconstruire le mode de détection de Anti-VM et croisé l'ordonancement avec la logique du développeur sur le tableau des hashs.

vboxtray.exe est un processus appartenant au "VirtualBox Guest Additions de Sun Microsystems" et donc trahi que le Windows est hébergé par VirualBox. Il est là pour gérer plus éléments d'intération dont la gestion du copier-coller

VBoxService.exe est un processus appartenant également à "VirtualBox Guest Additions de Sun Microsystems" et aussi trahi que le Windows est hébergé par VirualBox. Il est là pour la synchronisation avec l'hôte en autre.

vboxsvc.exe est un processus appartenant également à "VirtualBox" présent dans les processus d'une virtual machine hébergé par VirtualBox

Vmnat.exe fournit les services NAT aux machines virtuelles exécutées dans VMware Workstation.

vmacthlp.exe ( Vmware Physical Disk Helper Service ) et trahi que le windows est hébergé par Wmware.

Pour l'ensemble ce sont des composants des moteurs de virtualisation et ses processus sont déjà connu pour être moyen de tracer la présent d'environnement virtuel et faire de l'anti-VM au sein des malwares. Il n'y a pas de réel nouveauté dans les processus recherché. Le seul qui pour l'instant n'est pas encore déterminer suite à l'analyse est le hash 0xAFED9FB6.
Mais vu les autres l'intérêt de continuer semble pas utile. Tous simplement par le développeur au vu du tableau les a ranger dans l'ordre des moteurs de virtualisation et doit théoriquement décrire un processus pour VMware.

II.          IV Autre malwares


Il existe une multitude de méthode pour détecter les environnements d'analyse et cela est propre à beaucoups de malware. citons au autres exemple de malware "Rebhip" est capable de détecter toutes les machines virtuelles populaires ainsi que des outils d’analyse automatisés disponibles au public, tels que ThreatExpert, Anubis, CWSandbox et JoeBox. En termes de détection de VM, il est également capable de détecter VMWare, Virtual PC et Virtual Box tous comme Emotet.

Nous allons donc plutôt chercher vers d'autre partie du malware des éléments à investigué et regarder d'autre malware pour expliquer des technique Anti-VM différentes.


III.     Conclusions



L'intérêt de tracer la méthode utiliser par un malware pour détecter la présence d'une virtual machine et là pour pouvoir la neutralisé et rendre Anti-VM au sein du code du malware non impactant pour l'analyse tous en restant dans l'environnement virtualisé. Il existe différentes méthodes qui son donc à désactiver pour duper le malware pour qu'il effectue l'action pour là quelle il a été conçu tous en étant dans un contexte d'étude sécurisé . 

La méthode de Anti-VM que l'on vient de voir utilisant la partie analyse des processus pour trahir l'existence d'un environnement virtualisé est très courant et l'une des plus simple à mettre en place. Vous trouverez couramment cette technique lors de l'étude d'un malware.

Comprendre les processus recherché pour trahir la présent d'une machine virtuel et importante. Car les techniques étant similaire d'un malware à l'autre, il est plus simple de trouver d'une liste de processus correspondant à l'anti-vm utiliser dans un autre malware et aussi de trouver des hashs correspondant. le gain de temps n'est pas négligeable et vous permet de vous concentrer uniquement sur ce nouveau ou non trouvé de déterminer les algo de Hash s'ils sont standard ou non.

Aucun commentaire:

Enregistrer un commentaire