Llevo una temporada muy metido en la detección de maquinas virtuales por parte de diferentes Malwares. Yo, hasta hace unos días, pensaba que esta habilidad solo la podían poseer software puramente hecho con un fines malicioso y no desde una Macro VBA desde un Word.
Pues nada mas lejos de la realidad, existen Macros VBA que son capaces de detectar si están corriendo en una máquina virtual hasta de 3 maneras:
- El primer método de detección tiene dos etapas:
- La primera etapa de estas verificaciones, es mirar si la variable de entorno "USERNAME" es igual a "USER" y "USERDOMAIN" es igual a "HOST". Si ambos valores son verdaderos se activa la detección. Si no, salta a la segunda etapa.
- En la segunda etapa y con la ayuda de WMI (Windows Management Instrumentation), el método de detección llama al comando: GetObject ( " winmgmts: ") .InstancesOf ( " Win32_ComputerSystem "). Esto crea con el comando WMI "winmgmts" una instancia de " Win32_ComputerSystem" . Este ejemplo contiene toda la información sobre el sistema. Ademas se busca información sobre el "Fabricante" y "Modelo" y comprueba si contiene una de las siguientes cadenas: "KVM", "QEMU", "HAT", "VIRTUAL", "VMware", " XEN ". Si lo hace, el método de detección activa y devuelve un True.
- El segundo método también utiliza WMI para obtener toda la lista de procesos en ejecución:
- GetObject ( " winmgmts: ") .ExecQuery ( " Select * from Win32_Process ")
- En una seguna etapa la macro buscará las siguientes cadenas en la lista de procesos:
“FIDDLER”, “PROCEXP”, “PROCMON”, “SNORT”, “SURICATA”, “WIRESHARK” - Para acabar solo se hace una búsqueda a la siguiente cadena 1461591186_usa en el directorio del documento, para ello se utiliza la siguiente comando:
- InStr(1, callByName(ThisDocument, "Path", 2), "1461591186_usa") <> 0
Fuente y muchísima mas información sobre sobre el destripar de las Macros:
Sed Buenos ;)
No hay comentarios:
Publicar un comentario