Virtual Machine, ou Real Machine

Détection d’une VM

Comment en 2013 détecter si nous sommes dans une machine virtuelle ? Avant pour Vmware, Xen, Kvm et Virtual PC c’était assez la foire, de sombres in/out dans les backdoors systèmes, des instructions non documentées ou longues comme le bras, Red/Blue Pills … Etc

http://handlers.sans.org/tliston/ThwartingVMDetection_Liston_Skoudis.pdf
http://brundlelab.wordpress.com/2012/10/21/detecting-vmware/
http://my.opera.com/jaelanicu/blog/just-another-vm-detection-was-vm-detection-combo

C’est tellement la foire que les Malwares de tous poils n’hésitent pas à labourer la registry à la recherche des mac addresses et de nom de drivers spécifiques.

Arrivé en 2013, Avec l’avènement des CPU ‘awares en virtualisation’, l’industrie semble s’être enfin organisée, Voici donc une solution simple; l’instruction CpuID permet de savoir si la machine est Virtualisée. C’est le Bit 31 de ECX pour un appel à Cpuid avec EAX à 1.

Si Ensuite on fait un appel à l’instruction CpuID avec EAX à 0x4000000 le résultat dans EBX,ECX,EDX donne une string sans équivoque;

http://msdn.microsoft.com/en-us/library/windows/hardware/ff542428(v=vs.85).aspx
http://www.mjmwired.net/kernel/Documentation/kvm/cpuid.txt

Pour finir un petit “Poc” qui fonctionne bien, dispo pour les plus courageux ici

Hypervisor

 

This entry was posted in Malware, Reverse and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code