Malware en la partición de arranque

Aplicaciones necesarias:

dd.exe lo podemos encontrar en –> http://sourceforge.net/projects/unxutils/files/
mbrparser –>http://www.garykessler.net/software/index.html
Interprete de perl que tendremos que instalar –>http://strawberryperl.com/

Aquí podemos ver un ejemplo de MBR que va ser parecido al que vamos a sacar pero no igual, veremos en el post las diferencias–>http://thedigitalstandard.blogspot.com.es/2011/07/mbr-analysis.html

dd.exe–> Si tenemos una conexión un poco limitada o queremos ir al grano dd.exe tambien lo podemos decargar de aquí: http://www.chrysocome.net/dd
ademas nos proporciona varios ejemplo de como usarlo, es un comando heredado de Unix, tenemos información de las unxutils y de dd.exe en nuestra web favorita: http://en.wikipedia.org/wiki/UnxUtils y aquí: http://en.wikipedia.org/wiki/Dd_%28Unix%29

(podeís ir descargando las utilidades, el post continuará cuando tenga más tiempo 🙂 )

Y sobre todo ir leyendo y entendiendo este enlace –> http://thestarman.pcministry.com/asm/mbr/W7MBR.htm sin este enlace no podríamos escribir este post.

En un sistema operativo tenermos este esquema de arranque:
MBR3
Es decir 512 bytes dedicados al MBR (Master Boot Record) quien no lo perdio alguna vez en su S.O.??
El MBR esta compuesto como vemos en la imagen por:
1-Master Partition Table
2-Master Boot Code donde esta el bootloader en W7.
En el segundo están todo el código ensamblador que va necesitar la Bios para cargar la particion de arranque y por lo tanto la carga del S.O.
El primero nos indica unicamente la estructura de las particiones y debido a esos pocos 64 bytes, no podemos hacer más de cuatro particiones. Todo cambia con los nuevos sistemas EFI de Intel que estan compuestos por más bytes y por lo tanto mas particiones, al dejar de usar MBR y usar GPT basado en GUID.
El magic number de la imagen es la firma para el MBR cuyo termino original es BOOT RECORD SIGNATURE y hace que termine la tabla de particiones con un código hexadecimal 55AA.
Hay algunos virus como el MBRLocker que podeis descargar y hacer una prueba en una máquina virtual y veréis como modifican los valores del MBR.
Lo ideal es tener en algún sitio una copia del MBR, ya que podéis estar pensando en recuperar el MBR con alguna aplicación, pero pensar que os va salir el virus antes que la carga y la forma de eliminación que vais a elegir va dejar parte del virus en una parte que todavía no comentamos.
MBR4
ESte MBR se aloja por norma general en el sector 1 que ocupa esos 512 bytes que pueden tener espacio libre suficiente para alojarse un malware hasta llegar al sector 63 donde ya se coloca la particion NTFS (es decir esta vacio del 2 al 62) aunque en W7 no tengo del todo claro que empiece en el 63 la partición NTFS, puede ser que empiece ahí pero también este vacio hasta avanzar unos cuantos sectores, más información de la mitad de esta web en adelante: http://thestarman.pcministry.com/asm/mbr/W7MBR.htm
Una práctica para curarnos en salud es hacer una copia del MBR con el comando:
dd if=\\.\PhysicalDrive0 of=Tabla64.txt count=64
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin
This program is covered by terms of the GPL Version 2.

64+0 records in
64+0 records out

La consola de cmd.exe debería estar como administrador:
ddSinpermisos
😦
Así la hacemos de todos los sectores incluso los vacios que estan reservados para datos del MBR, para no solo machacar los 512bytes del mbr sino todos los anteriores ya que el malware puede estar por todos y aunque lo limpiemos pueden quedar trozos que pueden volver a regenerarse mediante un rootkit.
Para recuperar el backup en caso de desastre tenemos que arrancar desde algún live y poner desde una consola dd if=Tabla64.txt of=\\.\PhysicalDrive0 count=64
Ahora debemos visualizar el fichero que ya hemos creado y guardado en un sitio seguro fuera del sistema:
En la consola de ms-dos:
c:\mbrparser_v1.5\mbrparser.pl -i tabla64.txt
La aplicaciones mbrparser.pl esta en mi caso en una carpeta que se llama mbrparser_v1.5 por eso le doy esa ruta desde c:\
Puede ser que no funcione y necesitemos instalar el interprete de perl que os puse arriba en las descargas el strawberry, este instala el perl.exe dejando el path a c:\windows\system32\cmd.exe y por lo tanto para ejecutarlo no necesitamos darle la ruta de instalación para llegar al perl.exe
asi que desde msdos podemos decir lo siguiente:
C:\Aplicaciones>perl.exe mbrparser_v1.5\mbrparser.pl -i tabla64.txt
Y nos devolvera algo como esto:
ddbeta6

Vemos que en mi PC solo hay una particion y además esta con LBA no marca nada en el Boot Flag ni el CHS(cilinder head sector) porque esta pasado de moda 🙂 ahora se lleva el LBA que lo podeis ver más abajo.
El sector 63 como límite del mbr y el texto que nos suele salir si no encuentra el sistema operativo a la derecha en amarillo, si usamos la aplicación gratuita hexedit.exe por ejemplo desde ms-dos:C:\Aplicaciones>hexedit.exe tabla64.txt –> nos devolvera una pantalla tal cuál:
hex
Nos muestra los 63 sectores que hemos copiado en tabla64.txt, he bajado un poco en el scroll para que veáis como después del 1 empiezan a estar vacios es más el 55AA del que hablabamos el numero mágico marca el final de la firma del MBR y las particiones.
Seguro que unos cuantas de los que leis esto alguna vez habéis ejecutado en ms-dos:
BOOTREC /FIXMBR y BOOTREC /FIXBOOT arrancando con vuestro dvd o iso del w7 original y seleccionando reparar y luego la linea de comandos.
Fixmbr solo sirve para limpiar los 466 bytes del bootloader y fixbott arregla el boot.ini por lo tanto ninguno arregla la estructura de las particiones los 64 bytes del partition table y mucho menos borran nada de los otros sectores vacios si ahora están ocupados, necesitamos nuestro fichero de backup del mbr.
También podemos usar las Hiren Boot y comprobar que efectivamente no quedan restos del malware, aqui tenéis un tutorial:

Si usamos la aplicación Hex Workshop (es de pago pero pordemos usar la version de prueba de su sitio oficial)
podemos ver el primer sector después del 63 que contiene ya la partición de NTFS no la de MBR.
Para ello pinchamos en la barra de menú en Disk y después open drive, a continuación elegimos C: y no abre este sector. Podemos con las flechas azules movernos por los sectores. Fijaros que el texto es distinto dice falta bootmgr para esto si que seriviría el FIXBOOT de antes.
Teneís más información detallada de como calcular las particiones en hexadecimal o que quiere decir ese ensamblador aqui:
http://blog.creativeitp.com/posts-and-articles/bios/analysing-the-master-boot-record-mbr-with-a-hex-editor-hex-workshop/
No estoy con una máquina virtual así que no infecto el MBR pero podéis ver el resultado en el video. Sale en Ruso porque la aplicación que lo genera tiene el mensaje en ese idioma pero es del todo modificable en ese caso.
Ya sabéis un poquito más.
Saludos.

Publicado el enero 24, 2013 en Aplicaciones, Informatica y etiquetado en . Guarda el enlace permanente. Deja un comentario.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: