Contents

Evadiendo la autenticación en máquinas virtuales con VMInjector

Con VMInjector podremos saltar la autenticación en la mayoría de los Sistemas Operativos virtualizados con VMware Workstation y VMware Player.

Gracias a a esto podremos recuperar el control de una máquina virtualizada la contraseña de la cual hayamos perdido o bien ser usado en tests de intrusión en un eventual escenario donde se haya conseguido acceso completo al sistema operativo principal y se quiera acceder a la información contenida en las máquinas virtuales.

/wp-content/uploads/2013/02/vmware-workstation-logo-e1365515450683.png
VMware Workstation logo

¿Qué es y cómo funciona VMInjector?

VMInjector es un script escrito en Python por Marco Batista con licencia GPLv3 cuya misión es la de hacer un bypass del login de nuestro Sistema Operativo virtualizado mediante la inyección de una DLL (vminjector32.dll o vminjector64.dll) en un proceso de VMware.

VMware maneja todos los recursos de las máquinas virtuales, incluido la memoria RAM. Al inyectar la DLL en el proceso de VMware correspondiente a la máquina virtual esta consigue acceso a todos los recursos de esta, pudiendo manipular su RAM y parcheando la función que se encarga de la autenticación, permitiendo así conseguir acceso sin credenciales en el Sistema Operativo virtual.

Acceder a un Sistema Operativo virtual sin contraseña

Para usar VMInjector necesitaremos cumplir los siguientes requisitos:

  • Una máquina principal con Sistema Operativo Windows y permisos de administrador en el mismo.
  • Python  y psutil  instalados.
  • VMware Workstation o VMware Player instalado.
  • Una máquina virtual a la que no podamos acceder por falta de credenciales.

Con todos los requerimientos previos cumplidos descargamos VMInjector y lo descomprimimos donde nos plazca.

Antes de ejecutar el script debemos arrancar la máquina virtual y dejarla a la espera de usuario y contraseña. Ejecutamos un terminal (importante que sea con permisos de administrador o nos encontraremos con un bonito: “IndexError: list index out of range”), nos dirigimos al directorio previamente descomprimido y ejecutamos el script “vminject.py”.

/wp-content/uploads/2013/02/vminject1.png
Captura de pantalla de VMInject 1

El script nos preguntará por el proceso concreto al que le queremos inyectar la DLL. Seleccionamos el proceso correspondiente a la máquina virtual en cuestión y pulsamos Enter.

/wp-content/uploads/2013/02/vminject2.png
Captura de pantalla de VMInjector 2

Seleccionaremos la versión del Sistema Operativo virtualizado y pulsamos Enter. Si nos muestra un mensaje diciendo: “Found Signature Match” querrá decir que hemos indicado correctamente la versión del Sistema Operativo y que podemos continuar correctamente. Al volver a pulsar Enter nos encontraremos con una pantalla parecida a esta:

/wp-content/uploads/2013/02/vminject3.png
Captura de pantalla de VMInjector 3

Una vez realizado este proceso nos dirigimos a nuestro VMware y en la prueba realizada, con un sistema guest Windows 7, con tan solo pulsar Enter en el campo de password, directamente saltaremos al Escritorio del usuario deseado sin la necesidad de haber introducido clave alguna y permitiéndonos recuperar el control de esta.

La inyección no es permanente, al reiniciar la máquina virtual dicho proceso dejará de tener efecto a no ser que se vuelva a ejecutar el script.

Visto en hackplayers.com.