jueves, 4 de marzo de 2010

Windows Vista FE

No son pocas las distribuciones de Linux orientadas al análisis forense que se distribuyen en forma de Live-CD: Helix, DEFT o FIRE son sólo algunos ejemplos. Sin embargo no es menos cierto que no todos los usuarios se sienten cómodos con el sistema operativo del pingüino.

Si a lo anterior le sumamos lo difícil que resulta en ocasiones pelear con el hardware de última hornada para hacerlo funcionar en Linux, no estaría mal disponer de alternativas, alternativas como puede ser un Live-CD de Windows.


Hasta la aparición de Windows Vista/2008 esta opción era impensable, y era impensable porque Windows "montaba" automáticamente en modo lectura/escritura cualquier partición de disco con un sistema de ficheros que fuera capaz de reconocer, alterando de esta forma las pruebas.

Para generar el live-cd he utilizado un sistema Windows Vista como base para el entorno y descargado e instalado el Automated Installation Kit para Windows Vista SP1 y Windows Server 2008, disponible para descarga en el siguiente enlace. Imprescindible también el documento de Troy Larson describiendo el proceso.

Desde el menú Inicio arrancaremos el Símbolo del sistema de Herramientas de Windows PE y procederemos a crear la estructura base mediante el siguiente comando:

copype.cmd x86 D:\Vista-FE

Estoy indicando la partición D: como destino para los ficheros necesarios y la arquitectura x86 para conseguir la mayor compatibilidad posible.

Llega el momento de modificar la imagen del sistema Windows-PE que utilizaremos para generar el live-cd y para ello primero la montaremos en modo lectura/escritura:
imagex /mountrw D:\Vista-FE\winpe.wim 1 D:\Vista-FE\mount

Indicar que wim es el nuevo formato de imagen aparecido con Windows Vista y que está orientado a simplificar el proceso de despliegue del sistema operativo. Dado que un mismo fichero wim puede contener varias imágenes será necesario indicar el índice de la instancia con la que vamos a trabajar. En este caso el fichero únicamente contiene una imagen, pero si estuviera compuesto por más de una (p.e. fichero wim del DVD de instalación de Windows Vista) podríamos listarlas utilizando el siguiente comando:
imagex /info E:\sources\INSTALL.WIM

Más información sobre WIM e ImageX en cualquiera de los siguientes enlaces:

Aplicando los cambios del registro

Son necesarias dos modificaciones en el registro del sistema embebido en la imagen wim para evitar que, al arrancar un equipo mediante el live-cd, éste monte de forma automática las particiones disponibles en modo lectura/escritura alterando las evidencias.

Abriremos el editor del registro (regedit) en el sistema utilizado para generar el live-cd y nos desplazaremos a la clave HKEY_LOCAL_MACHINE. Situado el cursor en dicha ubicación, menú Archivo, Cargar subárbol... y abriremos el siguiente fichero:
D:\Vista-FE\mount\Windows\System32\config\SYSTEM

Seleccionado el fichero anterior estableceremos un nombre identificativo para el nuevo subárbol, en mi caso utilizaré Vista-FE. Para no alargarme innecesariamente únicamente resumiré los valores a modificar:
HKLM\Vista-FE\ControlSet001\Services\MountMgr

Valor DWORD (32bits)
NoAutomount = 1
 
HKLM\Vista-FE\ControlSet001\Services\partmgr
Valor DWORD (32bits)
SanPolicy = 3

Una vez terminadas las modificaciones y teniendo seleccionada la subclave HKLM\Vista-FE, menú Archivo, Descargar subárbol..., Aceptar.

Agregando drivers y aplicaciones

Vamos a continuar ahora personalizando nuestro Live-CD comenzando por agregarle algún driver. No son pocas las ocasiones en que tengo que enfrentarme con servidores HP Proliant ML-110 y su fake-raid, por eso me he descargado los drivers para Windows Server 2008 (teóricamente compatibles) y voy a integrarlos en la imagen:
peimg.exe /inf=D:\cp009517\*.inf D:\Vista-FE\mount\Windows

En cuanto a las aplicaciones le agregaremos FTK Imager, concretamente la versión Lite, ya que al no precisar de instalación será perfecta en estas circunstancias. Para que sea posible hacer funcionar esta aplicación antes tendremos que copiar una librería desde el sistema utilizado para generar el Live-CD, tal y como comenta DC1743 en este mensaje de su blog:
copy C:\Windows\System32\oledlg.dll D:\Vista-FE\mount\Windows\System32\

Para terminar con la "instalación" extraeremos el software FTK Imager en un directorio, por ejemplo FTK, dentro de la estructura del Live-CD. Es importante mencionar que, si por algún motivo quisieramos eliminar dicho directorio, primero tendríamos que tomar posesión del mismo, ya que si no únicamente obtendremos un error de acceso denegado. Para lidiar con esto ejecutaremos:
takeown /F D:\Vista-FE\mount\FTK /R

rd /s /q D:\Vista-FE\mount\FTK

Solventado este inconveniente, para el caso en que pueda darse, seguiremos con el proceso.

Generando la imagen y probando el Live-CD

Primero desmontaremos la imagen aplicando los cambios al resultado final:
imagex.exe /unmount /commit D:\Vista-FE\mount

El proceso de creación de la imagen iso necesita que el arhivo .wim se sitúe en el directorio adecuado. Para ello:
del D:\Vista-FE\ISO\sources\boot.wim

copy D:\Vista-FE\winpe.wim D:\Vista-FE\ISO\sources\boot.wim

Solo queda un detalle y está relacionado con el menú de arranque que incorporará la imagen resultante. Este menú mostrará un mensaje indicando que será necesario presionar una tecla para iniciar desde el CD, lo cual no es lo deseable si por omisión el sistema objeto de análisis arrancase. Para evitar este comportamiento tal y como menciona DC1743 en este mensaje de su blog:
del D:\Vista-FE\ISO\boot\bootfix.bin

Ahora sí, generaremos la imagen final:
oscdimg -n -o -bD:\Vista-FE\ISO\boot\etfsboot.com D:\Vista-FE\ISO D:\Vista-FE\WinFE.iso

Como resultado tendremos una imagen iso de algo mas de 200MB lista para quemar en un CD con nuestro programa de grabación favorito.

Arrancando que es gerundio

Llega el momento de iniciar el sistema con nuestro Live-CD. El primer script que se ejecuta, y donde podremos incluir nuestros propios comandos de inicialización antes de generar la imagen final, se sitúa en el directorio system32 y su nombre es startnet.cmd. Más sobre esto en el siguiente enlace: "Incluir un script personalizado en una imagen de Windows PE".

Si no hemos modificado dicho script únicamente se utilizará para lanzar el binario wpeinit, el cual es el encargado de inicializar la imagen pe. Ahora, si queremos, podremos indicar manualmente los parámetros de red con un comando como el que sigue:
netsh int ip set address "conexión de área local" static 192.168.0.12 255.255.255.0 192.168.0.1 1

Si vamos a utilizar FTK Imager para hacer una imagen del disco del sistema comprometido primero tendremos que montar la unidad de destino en modo lectura/escritura, y para ello utilizaremos la herramienta interactiva diskpart:
x:\windows\system32>diskpart

Lo primero obtener un listado de los discos disponibles:
DISKPART> list disk

De la lista de discos disponibles seleccionaremos, evidentemente, cualquiera que no se corresponda con el origen de la evidencia. Es importante destacar que un disco USB externo puede servir para nuestros propósitos ya que dichos dispositivos están soportados por Windows-PE. Suponiendo que disponemos de dos discos, uno integrado y otro USB, seleccionaremos éste último:
DISKPART> select disk 1

DISKPART> online

Estableceremos el atributo de escritura/lectura para el disco y listaremos las particiones disponibles:
DISKPART> attributes disk clear readonly

DISKPART> list volume

Suponiendo que el disco únicamente dispone de una partición previamente formateada la seleccionaremos, estableceremos el atributo de escritura/lectura y le asignaremos una letra de unidad, cerrando por último la shell interactiva de diskpart:
DISKPART> select volume 1

DISKPART> attributes volume clear readonly
DISKPART> assign letter=e
DISKPART> exit

Ahora que ya tenemos el disco montado y podemos acceder al mismo mediante la letra de unidad E: ya estamos listos para generar la imagen del disco objetivo del análisis y almacenarla allí. Para iniciar FTK Imager bastará con situarnos en el directorio adecuado y lanzar el ejecutable, tras lo que obtendremos el entorno gráfico de la herramienta:
cd \

cd FTK
FTK Imager.exe

Cuando terminemos el trabajo podremos apagar o reiniciar el sistema, a nuestra eleccción, con cualquiera de los siguientes comandos:
wpeutil shutdown

wpeutil reboot

Y esto ha sido todo, en breve más, y mejor, espero.

1 comentario:

hmontoliu dijo...

Un buen artículo para tenerlo en la lista de howtos interesantes, ... salvo por la premisa:

[...] lo difícil que resulta en ocasiones pelear con el hardware de última hornada para hacerlo funcionar en Linux, no estaría mal disponer de alternativas, alternativas como puede ser un Live-CD de Windows

En «mi experiencia» he encontrado mas dificultades para hacer funcionar hardware esencial tipo controladoras de disco (no es necesario que funcione la webcam para ciertos fines) con windows que con GNU/Linux.

Por poner un ejemplo nunca he tenido ningún problema con mi pequeño, querido y familiar (debian/ubuntu) «accede_a_cualquier_disco_y_haz_lo_que_quieras» clonecilla

Un saludo