viernes, 27 de noviembre de 2020

Serie: Cuadernos forenses - GPT

Ya se ha hablado aquí de la MBR, Master Boot Record, y se ha comentado que su estructura limita el espacio de cada una de las particiones declaradas en la misma a 2 TB.

Tamaño suficiente, ¿no?

Pues tal y como expuse en mi último post, hay veces en la que 2 TB no es suficiente y se necesita un poco más de espacio.

Una posible solución para poder hacer esto es sustituir la MBR por la GPT, tabla de particiones GUID o GUID table partition

-----------------------------------------------------------------------------------------------------------------------------------------------------------

NOTA: GPT es parte del estándar: Unified Extensible Firmware Interface (UEFI), que es una especificación que define la interfaz entre el firmware y los sistemas operativos durante el proceso de arranque.

Fue propuesto por Intel para reemplazar la vieja BIOS del PC, heredada del PC IBM original, es decir, la GPT sustituye al Master Boot Record (MBR) usado por BIOS.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

Pero, ¿cuál es la estructura de la GPT?

GPT usa un modo de direccionamiento lógico por bloques, LBA (logical block addressing / direccionamiento de bloque lógico)  en vez del que utiliza la MBR: CHS (Cilindro-Cabeza-Sector / cylinder-head-sector)

Estos bloques lógicos como mínimo pueden ser de 512 bytes por sector para mantener una compatibilidad hacia atrás. Otros valores pueden ser: 1024, 2048, 4096 bytes o más.

Los bloques se encuentran numerados basándose en un índice que va de 0 a 34,  y de -34 a -1, siendo su estructura a grandes rangos de la siguiente:

1.       LBA 0 o Protective MBR 

2.       LBA 1 o Primary GPT Header.

3.       LBA 2 a 33

4.       LBA 34 o Particiones

5.       LBA -33 a -1Tabla de partición GUID secundaria:.

Visualmente.


El bloque número 0,  contiene una MBR para permitir que el firmware que no detecta GPT pueda detectar el disco. Es más, dicha MBR tiene definida una sola partición de tipo: 0xEE (GPT), por lo que las BIOS antiguas detectaran el disco y la partición aunque la presentarán como inaccesible. Por el contrarío nuestra “BIOS” de tipo EFI/UEFI ignorará la MBR.

Es en definitiva, una manera de garantizar la compatibilidad con los sistemas de arranque basados en BIOS y por tanto en MBR.

El bloque número 1, se conoce como: Cabecera de tabla de particiones o Primary GPT Header, y su estructura es como sigue.

 

 

De la estructura anterior cabe destacar:

 

1.- El CRC32, dicha suma de verificación garantiza la integridad de la cabecera GPT, ya que permiten detectar los sectores defectuosos que la dañan, entre otras cosas.

 

Del byte 16 al 20.

 ----------------------------------------------------------------------------------------------------------------------------------------------------------

NOTA: Las suma de verificación CRC32 es generada automáticamente para la cabecera y las entradas de partición, y  son verificadas por el firmware, el gestor de arranque o el sistema operativo.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

 

2.- La localización de la copia de seguridad de esta misma estructura.

 

Del byte 32 al 40

 

3.- La identificación unívoca del disco duro.

 

Del byte 56 al 72

 

4.- El número y el tamaño de las entradas de las particiones que conforman la tabla de particiones

Del byte 80 al byte 92

Los bloques del número 2 al 33, contienen cada uno la siguiente estructura, que define el tipo de partición y su ubicación en el disco, en términos de LBA.

Como se puede ver cada partición tendrá un identificador unívoco definido desde el byte 16 al byte 32.


El bloque número 34, como se ha visto y se puede intuir, contiene las distintas particiones enumeradas en el GPT y los valiosos datos del usuario/s.

Los bloques del número -33 al -1, contienen la copia de seguridad comentada anteriormente.


Ahora que sabemos un poco más sobre GPT, podemos comparar la estructura de la MBR y de GPT, por supuesto, de manera visual.
 
 
En cualquier caso…  

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia.

 

 

 

jueves, 8 de octubre de 2020

¿Grande ande o no ande?

 

Llevo intentando desde hace varios días ampliar el disco duro de una de mis máquinas virtuales a 9 TB.
 
No tengo ningún problema en ampliarlo pero, la ampliación sólo llega hasta los 2TB. FUCK!!!! 
 
Pero, ¿por qué es esto? 
 
Complicado pero simple, el disco duro que se aprovisionó en el momento de la creación de la máquina virtual necesita menos de 2TB, por lo que la máquina virtual utilizó como registro de arranque principal el formato MBR (Master Boot Record). 
 
Dicho registro es el primer sector de un disco duro que a veces se emplea para el arranque del sistema operativo, otras veces para almacenar una tabla de particiones y otras veces sólo para identificar un dispositivo.

NOTA: Podéis leer algo más sobre este registro aquí 

Pero dicho formato tiene un “problema”, que si quieres ampliar el espacio del disco duro más allá de 2 TB, no te lo permite debido a que la estructura del registro no está preparada para ello.

Para ello, se creó el formato GPT (GUID Partition Table), que sustituye al formato MBR y que se asocia con los sistemas UEFI.

Intente pasar mi tabla de partición del formato MBR al formato GPT para poder ampliar el espacio de mi disco duro virtual, pero todos los intentos que realice con la aplicación: gdisk (mi máquina virtual tiene instalado un sistema Centos), fueron infructuosos.

NOTA: Para convertir un disco con formato MBR a GPT sólo hay que ejecutar el comando: gdisk <disco duro> y atrevernos a pulsar la opción: w, después: y (yes), para confirmar.

Todo esto bajo tú responsabilidad, porque puedes perderlo todo

De MBR a GPT

 

Por lo que intenté montar una máquina virtual basada en Centos con un disco duro de 3TB, AUNQUE EL HOST DONDE TENGO INSTALADO EL VMWARE NO TIENE NI REMOTAMENTE TALES RECURSOS.

NOTA: Siempre he pensado que el VMWare comprobaba los requisitos seleccionados relativos al espacio de disco… y es así siempre que selecciones que quieres gestionar un solo fichero. Por lo tanto, si seleccionamos la opción de VMWare “Split  virtual disk into multiple files”, podremos seleccionar la capacidad de disco que necesitemos.

 

Tras la asignación de 3TB al disco duro en VMWare

Información reportado por el sistema operativo relativa al espacio del disco duro y a sus particiones


Seleccionar 3TB de disco duro, implica tras un mensaje de VMWare que nuestro formato de registro de arranque principal será GPT.

Formato del registro de arranque utilizado.

 

Por lo tanto, en mi caso, una posible solución sería crear directamente una máquina virtual con el espacio que realmente necesito e reinstalar todo lo que necesito sobre ella.

Lo sé no es lo optimo, pero algo es algo

Y ya se sabe, hay que ser previsor, por lo que cuando vayáis a trabajar con discos duros de TB en entornos virtualizados, ser previsores y trabajar con GPT


En cualquier caso…

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia.

 

 

 

 

martes, 25 de agosto de 2020

Serie: Cuadernos forenses - Unidades de red compartidas


Debido a un caso de forense, se necesitó saber la ubicación dentro del registro de Windows donde se almacenan los recursos configurados como unidades de red o ubicaciones de red, que casi todo el mundo tiene configurados en su equipo con sistema operativo Windows instalado

¡Pero para qué estar buscando por la red cuando se puede hacer un pequeño prueba de concepto que nos va a llevar 5 minutos!

Para ésta prueba se necesitan 2 máquinas, en una de ellas crearemos dos carpetas y las compartimos [sólo admite 1 usuario y cualquiera tiene permisos para leer el contenido], y en la otra mediante el wizard del sistema crearnos las unidades/ubicaciones de red.

 
Unidades de red creadas

Una vez creadas, hay que dirigirse a nuestro registro de Windows, mediante el archi-conocido comando “regedit” o mediante el mega-archi-conocido ejecutando “Editor de registro”.

Una vez en el registro de Windows, procedemos a buscar la IP,  nombre de servidor o nombre de cualquiera de las carpetas compartidas a las cuales no hemos vinculado. En mi caso se busca por la cadena: “Pruebas_de_conexion”, que se corresponde con el nombre de una de las carpetas compartidas

Tras esperar unos segundos, encontramos nuestra ansiada ubicación.



El tesoro se encuentra en:

HKU\Software\Microsoft\CurrentVersion\Explorer\PublishingWizard\AddNetworkPlace\AddNetPlace\LocationMRU


Pero además, sabemos que:

1.- podemos ver que a cada unidad de red compartida se le asigna una clave alfabética
2.- la clave: MRUList,  que funciona de índice para saber que unidades se visualizan.

En cualquier caso…

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia.