29 marzo 2013

Los tiempos cambian, las tecnologías evolucionan y esto pasa factura en todas las disciplinas. Siempre dicen que los malos van mucho más deprisa que los buenos. Y es que siempre será más fácil poder atacar que defenderse.

En la ciencia del análisis de malware, las muestras han avanzado en la dificultad a la hora de poder analizarse. El uso de packers, crypters y derivados dificulta el análisis por parte de los analistas de malware.

Además, los malvados publicitan este tipo de servicios de crypters y packers para que puedas hacer tu muestra indetectable por parte de los antivirus.


Un posible anuncio de un servicio de crypters

Aparte de usar este tipo de servicios para volver las muestras indetectables le añaden controles para que no sea posible analizar la muestra en una máquina virtual.

Esto lo hacen para evitar posibles escenarios en los que se procesen las muestras de manera automática en una sandbox.

Ya hay proyectos en los que se pueden realizar estos procesados automáticos. En sandbox como Cuckoo, del que ya se ha hablado aquí en el Blog de Security by Default, se pueden realizar escaneos de manera automatizada encolando las muestras para que se vayan analizando una a una.

Para evitar este tipo de entornos añaden protecciones que cuando detectan este tipo de entornos no ejecutan la muestra.

Existen scripts que permiten analizar los binarios para saber si tienen protección de máquina virtual.


En teoría esta muestra, según la salida de peframe, sería capaz de detectar un entorno virtual, así que no se ejecutaría en este tipo de escenarios.

También podemos hacer la comprobación con aplicaciones como vmdetectguard, que el crack de Juan Garrido mostró en un post en Security By Default .

Pero, en este caso no hablaré de eso, sino de modificar algunos aspectos de VirtualBox para que podamos analizar este tipo de muestras en este entorno virtual, saltándonos las protecciones implementadas por el propio malware.

El primer paso sería tener una máquina virtual creada con un sistema Windows XP, 7 u 8, haciendo la instalación sin incluir las guest additions en Virtualbox.

Lo siguiente que haremos será cambiar ciertos aspectos en el registro de Windows en la máquina virtual.

Para hacerlo más fácil crearemos un archivo .BAT para que se ejecuten estas instrucciones de una en una.




Cambiaremos cierta información de la máquina virtual que hemos creado con VBoxManage. Para ello, apagamos la máquina virtual y ejecutamos los siguientes cambios.



En el sitio donde pone "XP-VM" ha de ser el nombre que le hayas dado a la máquina virtual.
Ahora tendremos que hacer unos últimos pasos:

marc@darkunix ~ $ sudo dd if=/sys/firmware/acpi/tables/SLIC of=SLIC.bin 
marc@darkunix ~ $ mv SLIC.bin /home/marc/VirtualBox\ VMs/XP-VM/ 
marc@darkunix ~ $  VBoxManage setextradata "XP-VM" "VBoxInternal/Devices/acpi/0/Config/CustomTable" /home/marc/VirtualBox\ VMs/XP-VM/SLIC.bin

Con estos cambios, ya tenemos la máquina virtual indetectable.


Como veis, con Pafish, hemos conseguido que no detecte que se encuentra en un entorno virtual.

Aunque hemos realizado estos cambios no se garantiza que haya algún tipo de check que detecte el entorno virtual.


Artículo cortesía de Marc Rivero López

1 comments :

lejiro dijo...

Hola buenazo el trabajo, tengo una duda desde un anfitrión windows como se remplaza el ultimo paso ?
marc@darkunix ~ $ sudo dd if=/sys/firmware/acpi/tables/SLIC of=SLIC.bin
marc@darkunix ~ $ mv SLIC.bin /home/marc/VirtualBox\ VMs/XP-VM/
marc@darkunix ~ $ VBoxManage setextradata "XP-VM" "VBoxInternal/Devices/acpi/0/Config/CustomTable" /home/marc/VirtualBox\ VMs/XP-VM/SLIC.bin