Windows Forensic Environment – #WinFE Beta

Publicada en Publicada en Análisis forense

Hola secuaces:

Tras leer una serie de comentarios, opiniones y críticas, (algunas sin sentido alguno), había decidido tomarme un tiempo de reflexión, un descanso, para darme, yo mismo, respuesta a una crisis existencial. Pero, tras hablar con varias personas del asunto, he dicho: ¡Qué demonios! Voy a hacer caso a esas personas, a las que admiro y respeto, que me enseñan cada día algo nuevo.

¿Por qué? Porque la única forma que tengo de relajarme es ‘cacharreando’ y escribiendo. Porque yo no tengo nececidad, ni de vender nada, ni de venderme a nadie, (para bien o para mal).

Así, que voy a hacer caso:

“No malgastaré energía con esa gente. No la merecen. La emplearé en hacer tan buenos artículos como los que escribo.”

“No malgastaré mi energía, porque seguirán ahí, y solo me voy a encabronar más.”

No en vano, pienso que incluso la más humilde de las personas, tiene algo que enseñar al mundo 🙂

Dicho esto… ¿De qué quiero hablaros? De Windows Forensics Environment, (WinFE), en su versión Beta. Porque he tenido el privilegio de ser uno de los pocos en ser seleccionado para ser un Beta Tester de esta nueva versión.

¿Qué es WinFE? Es un Sistema live Forense, basado en el entorno de pre-instalación de Windows, que puede ser ejecutado desde un dispositivo USB o desde una unidad óptica, que accede, de forma predeterminada, a los medios, en modo de sólo lectura, y que permite ejecutar diferente software forense y una variada cantidad de utilidades portables. Es decir, que se trata de un Sistema Operativo Forense de arranque, (Bootable Forensic Operating System).

“WinFE es, en esencia, un entorno de pre-instalación de Windows, (WinPE), con dos ediciones de registro menores que se aplican para garantizar que los discos duros no se montan automáticamente durante el proceso de arranque de WinPE / WinFE, minimizando el riesgo de contaminación de datos o evidencia. WinFE es una versión ligera de Windows que se puede utilizar para muchas tareas – es un sistema operativo completo y autónomo y funcionará independientemente de cualquier otro sistema operativo ya instalado.”

Puede ser personalizado a las necesidades de cada uno usando, para ello, los ficheros por lotes ‘batch‘, o servicios de terceras partes, como WinBuilder. Y es muy, pero que muy intuitivo.

Actualmente, @WindowsFE está siendo desarrollado y mantenido por @Brett_Shavers, que es, entre otras cosas, un experto forense digital, ex-oficial de policía y detective, y autor de los libros ‘Hiding Behind the Keyboard‘ o ‘X-Ways Forensics Practitioner’s Guide‘, entre otros.

No quiero soltaros un ‘rollo macabeo’. Así que vamos al lío. Lo primero de todo. ¿Qué necesitamos?

Para empezar, necesitaremos de una imagen de un Sistema Windows 7/10, montada en nuestro equipo. Como no todo el mundo dispondrá de una licencia original para realizar la descarga de una ISO de Windows 7, (¿Verdad? 😉 ), vamos a trabajar sobre una ISO de Windows 10, dado que Microsoft sí permite su descarga, aún careciendo de licencia, usando, para ello, la herramienta de Microsoft Media Creation Tool. Si trabajáis desde un Sistema Windows 10, podréis descargar la imagen ISO sin problema alguno, directamente.

Una vez descargada, la ejecutamos. Aceptamos los términos de licencia, sin leerlos, como hacemos habitualmente.

Y procedemos a crear un archivo ISO de Windows 10.

¿Qué más necesitamos, como requisito imprescindible?

Pues se me ocurre que necesitaremos tener descargada la versión beta de Mini WinFE. Podéis encontrar información relativa al proyecto MistyPE aquí, e información del proyecto MistyPE, relativo a WinFE, aquí

Os recuerdo que se trata de una versión beta por lo que no está exenta de errores. Pero me parece un entorno muy interesante.

Una vez descargada, la descomprimimos y la ejecutamos, para que nos muestre esta bonita ventana.

Vamos a diseccionar algunos artículos de la LEC y LECrim, cada campo un poco, aunque podríamos dejar todo por defecto, sin ningún problema.

Lo primero que nos encontramos, dentro de ‘Options 1’, es con estas opciones:

1] Attempt to use Existing Cache? La recomendación es, que en la primera ejecución del proyecto, esté establecida esta opción en NO.
2] RAM Disk Size Esta configuración se ignora en WinPE 5.x, si la RAM del sistema es mayor de 1 GB. Es decir, que con los sistemas actuales, la podemos dejar por defecto.
3] WinPE Processor Architecture Si la opción 1, ‘¿Intentar usar caché existente?’, Se establece en NO, la arquitectura de origen se obtendrá utilizando ‘wimlib-imagex‘ y se ignorará la configuración de arquitectura de procesador de WinPE, a menos que los archivos de origen fallen los controles de verificación.
4] SysWOW64 ‘SysWoW64’ es necesario para ejecutar aplicaciones de 32 bits en un WinPE de 64 bits.
5] Set ‘boot.wim’ Image number Se utiliza el número de imagen 2 cuando se usan medios de instalación de Windows.
6] Set ‘install.wim’ Image number En la mayoría de los casos, la imagen número 1 debe seleccionarse cuando se utilicen soportes de instalación de Windows.

Nos desplazamos a ‘Options 2’

7] Build Method El método INJECT es más rápido y requiere menos espacio de almacenamiento libre.
8] Keyboard Layout Se establece la configuración del teclado.
9] WinPE Language / Fallback Language Esta configuración sólo se utiliza si el lenguaje del archivo de origen no puede ser verificado por ‘wimlib-imagex’.
10] Programs in boot.wim MistyPE tiene la opción de copiar la mayoría de los archivos de programa a un directorio externo para que no se incluyan en ‘boot.wim’. Hay una serie de ventajas a este enfoque. El principal es la capacidad de actualizar los programas individuales sin tener que reconstruir el proyecto. Como ventaja añadida, ‘boot.wim’ será de menor tamaño y se requerirá menos RAM para arrancar MistyPE. Se seguirán copiando dentro de ‘boot.wim’ los programas base, que son:

  1. 7-Zip
  2. dd
  3. Defraggler
  4. DMDE
  5. DriveImageXML
  6. Eraser
  7. Ghost
  8. HWiNFO
  9. JkDefrag
  10. LinuxReader
  11. MW Snap
  12. NT Password Edit
  13. Opera
  14. PartitionGuru
  15. PTEdit
  16. Recuva
  17. DriveSnapshot
  18. Sumatra PDF
  19. TinyHexer
  20. Forensic Acquisition Utilities
  21. FTK Imager Lite
  22. X-Ways Forensics

11] LaunchBar Es un pequeño programa gratuito de Windows que imita el comportamiento de la barra de herramientas QuickLaunch.

Nos desplazamos ahora a ‘Options 3’

1] UAC Check Comprueba si el Control de Cuentas de Usuario está habilitado y alerta, con un mensaje, si se da esta circunstancia, al usuario.

2] Admin Check Comprueba si el usuario posee privilegios de administración y aborta el proyecto en caso contrario, pues necesita correr bajo esos privilegios.

3] Log File Genera un log, basado en fecha y hora, con información del proyecto.

Así pues, tenemos ya una primera configuración del proyecto, que puede quedar, por ejemplo, como en la siguiente imagen.

Nos desplazamos ahora al apartado de ‘Core Files’.

Y de este script no vamos a tocar nada. Entre otras cosas porque está bloqueado porque es donde se va a basar la mayor parte del trabajo del proyecto.

Nos dirigimos a ‘LaunchBar’.

Aquí podremos elegir si queremos una barra de menú en nuestro WinFE, si queremos los iconos pequeños o grandes, y su posición.

Nos vamos ahora a ‘Essential’, que son los considerados como scripts esenciales.

De este apartado, podremos deshabilitar todos, a excepción de ‘FileManager’, que es imprescindible. Veamos su contenido.

FileManager Agrega un explorador de ficheros, reemplazando al original de Windows. Podremos elegir entre Q-Dir y a43.

BCDEdit Es una herramienta de línea de comandos que se utiliza para crear y editar almacenes BCD, el archivo de configuración de arranque utilizado en todas las ediciones de Windows desde la versión de Windows Vista. En este momento, este script solo agrega algunas instrucciones basadas en .txt a la compilación.

CMD Here – Inicia un símbolo del sistema desde el menú contextual del botón derecho del ratón.

Keyboard Layout Cambia el diseño del teclado en WinPE mientras se está ejecutando.

Network Esto agregará un archivo por lotes, más una entrada de menú para ejecutarlo. El archivo por lotes ejecuta el comando ‘wpeinit InitializeNetwork’, que inicializará los componentes y controladores de red y establecerá el nombre del equipo en un valor elegido al azar.

ScreenRes  Esto agregará una opción de menú para cambiar la resolución de la pantalla.

Vamos a dirigirnos ahora a ‘BlackBox Lean’.

Este proyecto utiliza el shell BlackBox Lean (versión 1.17.1) para proporcionar una interfaz de usuario basada en menús.

Vamos a ver ahora el apartado de ‘Boot.Media’, que es donde se nos va a dar la opción, bien de crear una imagen ISO del proyecto, una vez compilado, o bien de crear una unidad USB de arranque con él.

Como nos interesa tener una imagen ISO del proyecto, que más tarde grabaremos a un disco o a una unidad USB, nos desplazamos hasta la opción ‘Create ISO’, en donde observaremos que  la configuración predeterminada creará un archivo ISO de arranque de RAM, que nos vale.

 

Vamos ahora a ver el apartado de ‘Tools’, aunque, de aquí, en principio, no será necesario tocar nada.

Aquí se nos presentan varias opciones.

Add Program Este script se puede utilizar para agregar programas / paquetes adicionales al proyecto MistyPE. Pero en esta versión beta está muy limitado porque no hay paquetes disponibles.

ADK Permite añadir soporte para PowerShell, .NET Framework, HTA, etc.

Advanced Options Permite montar y desmontar claves del registro y permite agregar archivos adicionales a ‘boot.wim’.

Cache Files Permite crear un caché para usarlo en el proyecto.

Test in QEMU Prueba el archivo ISO creado en QEMU.

Update Project Permite comprobar e instalar cualquier actualización de MistyPE

Ahora nos dirigimos al apartado ‘Programs’, que he querido dejar para el final, por resultar, quizás, el más interesante.

Add Custom Batch and run at Start-up Permite agregar un archivo por lotes personalizado a la compilación y editar el archivo de proceso por lotes personalizado a través de un botón incrustado en el script.

Add Custom Folders\Files Permite seleccionar un directorio, cuyo contenido se agregará a la compilación, como en la siguiente imagen.

En cuanto a la utilería que incorpora este proyecto…

7-Zip

CloneDisk

DMDE

Forensic Acquisition Utilities (FAU)

FTK Imager Lite

HWiNFO

Linux Reader

MWSnap

NT Password Editor

Opera

Sumatra PDF Reader

Virtual Keyboard (Free VK)

Wallpaper

WinHex

X-Ways Forensic

WinFE

Este último script, ‘WinFE’, no se puede deshabilitar porque es el encargado de hacer las modificaciones del Registro para que este proyecto se comporte como si estuviéramos en un entorno forense. Nos dará opción de poder elegir el tipo de SAN Policy.

Este proyecto incluye dos herramientas que permiten modificar los atributos de los discos, como son, Read-Only / Read-Write y OFFLINE / ONLINE.

Estas herramientas son

WProtect.exe, desarrollada por Colin Ramsden; y DiskMgr, desarrollada por  Erwan L.

Vista toda esta configuración y sus opciones, por último nos queda dirigirnos de nuevo al primer menú que hemos visto, a ‘Mini-WinFE’, y clicaremos en la opción de ‘Source’, porque tenemos que indicarle qué recurso va a usar para generar el entorno de pre-instalación de Windows. Así, que tan solo debemos indicarle la unidad donde hemos montado, anteriormente, la imagen ISO del Sistema que hemos usado.

Y con todo esto… le damos al botón del ‘Play’, para que de una manera ‘automágica’, se cree nuestro Sistema Live Forense, basado en Windows.

Nos saltará el aviso del Control de Cuentas de Usuario, dependiendo de nuestra configuración, tal y como le hemos indicado.

Nos dirá la información relativa a la configuración básica que le hemos indicado, para saber si es la correcta, o no.

Dependiendo del Sistema Windows que hayamos empleado, nos dará un aviso que nos dice que no ha sido testado. Normal, al tratarse de una beta. Las pruebas que yo hice, me dieron un resultado satisfactorio.

Si no hemos habilitado ‘SysWoW64’ en el proyecto, nos lo hará saber, con opción a habilitarlo. La recomendación es habilitar ‘SysWoW’.

Y, como por arte de magia, se nos creará nuestra bonita imagen ISO, de nuestro Entorno Forense, totalmente personalizado.

Ahora, tan solo nos queda probarlo en algún Sistema. Vamos a ello.

Lo iniciamos y…

Lo primero que nos encontramos, antes de cargar el entorno del Sistema, es la configuración de los discos.

Por defecto, se establece una configuración de atributos del disco en ‘Offline y Read-Only’, pero podemos cambiarla, aunque no es recomendable, hasta no estar seguros de qué dispositivos nos hará falta ‘tocar’. Igualmente, podemos ver la información relativa a los discos.

Una vez que hayamos determinado qué discos estarán online, (y siempre en modo de sólo lectura), cerramos la ventana de la configuración de los discos, para que termine de cargar el entorno.

Si necesitamos cambiar la configuración de los discos, por ejemplo, por haber introducido otro, podemos hacerlo muy fácilmente desplegando un menú contextual del ratón.

Y de esta forma, podemos obtener un bonito entorno forense que se amolde a nuestras necesidades, basado en Windows.

Tenéis disponible toda la información necesaria, y muy detallada, sobre este proyecto, en su sitio.

Esto es todo, por ahora. Nos leemos en la siguiente entrada. Se despide este minion, entregado y leal, de vosotros… por ahora.

PD: Yo siempre he pensado que el tiempo pone a cada uno en su lugar. Eso, sumado a lo que una persona muy sabia me dijo…

“Hay mucho mediocre vendiendo y criticando lo que no es. Un signo de elegancia es tratar de estar por encima de estas cosas.”

Marcos @_N4rr34n6_

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *