padlocks chained to a fence
Búsqueda de Ciberamenazas

Extraer datos de discos virtuales cifrados: seis métodos

Ofrecemos, para los que responden a incidentes, una variedad de técnicas para recuperar información de máquinas virtuales bloqueadas

Este artículo explica varias técnicas y herramientas fácilmente disponibles para extraer datos de un disco virtual cifrado. Para situaciones de respuesta a incidentes en las que se ha cifrado todo el disco virtual, estas herramientas y técnicas pueden permitir al equipo investigador recuperar datos del sistema cifrado.

Los esfuerzos para extraer datos de discos virtuales cifrados pueden conducir potencialmente a múltiples resultados positivos: recuperar datos de clientes que son irrecuperables mediante métodos estándar, ayudar a reconstruir la infraestructura virtualizada del cliente que se ha visto comprometida o enriquecer la cronología de la investigación de un incidente. Hasta ahora, hemos utilizado estas técnicas con éxito en investigaciones DFIR relacionadas con los grupos de ransomware LockBit, Faust / Phobos, Rhysida y Akira.

Lo decimos al principio del artículo y lo repetiremos al final: los resultados no están garantizados. Ningún método de extracción de datos existente es seguro que obtenga datos completos de una máquina virtual cifrada. También destacaremos que, aunque estos métodos han tenido un porcentaje de éxito bastante alto en la extracción de datos forenses valiosos para la investigación (como registros de eventos, análisis forenses del registro y similares), el porcentaje de éxito en la recuperación de datos que pueden utilizarse como parte del proceso de recuperación de sistemas de producción, como bases de datos, es mucho menor.

Recomendamos encarecidamente que cualquier intento de recuperación se realice sobre “copias de trabajo” y no sobre los originales, no sea que los intentos causen más daños involuntarios a los dispositivos.

En la siguiente sección hablaremos de en qué situaciones puede ser posible la recuperación y en qué medida. Después, enumeraremos algunos factores que debes tener en cuenta al seleccionar los métodos que vas a intentar. Por último, examinaremos cada método, enumerando los requisitos previos (las herramientas necesarias para intentar el método, todas son necesarias) y señalando otras consideraciones. En el debate sobre el método más laborioso, veremos los detalles del proceso. En este artículo, las referencias a “discos virtuales”, “máquinas virtuales” o “imágenes de disco” se refieren a lo mismo y pueden ser cualquier imagen de un disco como VHD, VHDX, VMDK, RAW, etc. Las seis técnicas se aplican a Windows, algunas también pueden funcionar en Linux y las señalaremos en cada caso.

¿Qué es el cifrado de archivos / discos?

Cuando un ransomware cifra un disco virtual (o cualquier archivo), los datos han sido esencialmente aleatorizados, haciendo que el archivo sea ilegible para el sistema operativo. El método más conocido para descifrar un archivo (devolver el archivo a su estado original, legible) es mediante una herramienta de software o programa diseñado para invertir el proceso de cifrado, haciendo que los archivos cifrados vuelvan a ser legibles.

En los ataques de ransomware, el descifrador es creado y controlado por el actor de la amenaza. En esas situaciones, a menos que se pague el rescate o que el descifrador se haga público, hay que considerar otros métodos de recuperación de datos.

Los binarios de ransomware priorizan la velocidad sobre el cifrado completo. Cifrar archivos enteros llevaría demasiado tiempo, por lo que los atacantes pretenden infligir el máximo daño rápidamente, minimizando la ventana de intervención. En consecuencia, mientras que los archivos más pequeños, como los documentos, suelen estar totalmente cifrados, los más grandes, como los discos virtuales, pueden tener partes significativas sin cifrar. Esto ofrece a los investigadores la oportunidad de emplear diversas técnicas para extraer información de estos discos virtuales.

Qué método utilizar: consideraciones

Hay varios métodos que se pueden utilizar para extraer datos de una máquina virtual de Windows cifrada. (Algunas de estas técnicas también son aplicables a los intentos de recuperación de Linux, y las indicaremos). En este artículo cubriremos seis:

  • Método 1: montar la unidad
  • Método 2: RecuperaBit
  • Método 3: bulk_extractor
  • Método 4: EVTXparser
  • Método 5: Scalpel, Foremost y otras herramientas de recuperación de archivos
  • Método 6: tallado manual de la partición NTFS

¿Qué probar primero? Las seis consideraciones siguientes pueden ayudarte a decidir qué método es el adecuado.

Tamaño del archivo

La experiencia ha demostrado que cuanto mayor es el tamaño del disco virtual, mayores son las probabilidades de éxito en la recuperación. En las máquinas Windows, esto se debe en gran medida a que la mayoría de las máquinas virtuales tienen varias particiones, normalmente tres: recuperación, arranque y la partición C: (visible para el usuario). Las dos primeras particiones contienen pocos datos útiles para la investigación de un incidente, pero como el cifrado suele cifrar los primeros bytes de la máquina virtual, solo estas particiones acaban cifradas.

Esto, por tanto, suele dejar intacta la partición C:, donde se alojan los datos de los clientes y los posibles datos forenses. Esto puede ayudar a los investigadores a reconstruir un dispositivo virtual comprometido y enriquecer la investigación de un incidente.

Por el contrario, si el archivo de la VM es relativamente pequeño, la probabilidad de recuperar datos es menor. Sin embargo, aún puede haber una oportunidad de cosechar registros de eventos o colmenas del registro.

Herramientas

Como ocurre con cualquier otro problema en la respuesta a incidentes, existen múltiples métodos y herramientas para abordar la misma cuestión. Algunas herramientas pueden funcionar mejor que otras dependiendo del tipo de cifrado. Merece la pena probar varias herramientas para obtener el resultado que necesitas si tu primer intento falla o solo funciona parcialmente.

También es importante tener en cuenta que las herramientas dejan de actualizarse o recibir soporte, así que considera la posibilidad de buscar herramientas adicionales no mencionadas en esta guía. Las herramientas que utilizamos son herramientas de terceros o, en algunos casos, herramientas que ya forman parte de Windows o Linux (esto incluye el Subsistema de Windows para Linux [WSL]). A lo largo de este artículo y en nuestras investigaciones cotidianas, reconocemos la gran contribución que los creadores de esas herramientas han hecho a los esfuerzos de defensa, especialmente en aquellos casos en los que las herramientas no se diseñaron pensando en el cifrado.

Tiempo

El tiempo disponible para completar la tarea es algo que merece la pena tener en cuenta; el hardware / equipo del que dispongas puede influir en esto. Por ejemplo, el tallado manual (Método 6) es una opción disponible, pero puede llevar mucho tiempo; concretamente, puede requerir mucha potencia de procesador, lo que podría ralentizar tu dispositivo durante el proceso. Esto podría hacer que no pudieras utilizar el dispositivo que estás utilizando para el examen forense para otras tareas cotidianas mientras se completa este proceso. Por ello, si no es urgente, te recomendamos que inicies el proceso de tallado manual hacia el final de la jornada laboral y dejes el dispositivo en funcionamiento durante la noche. Las distintas soluciones tardan más o menos tiempo, por lo que debes tenerlo en cuenta.

Almacenamiento

El espacio de almacenamiento disponible debe tenerse en cuenta en tu decisión. El tallado manual, por ejemplo, puede requerir bastante espacio de almacenamiento, ya que recreará una copia del archivo; en otras palabras, si estás intentando recuperar un disco duro virtual de 1 TB, es muy posible que necesites al menos otro 1 TB para los resultados. Lo mismo ocurre con algunas de las herramientas de recuperación de archivos (Método 5), sobre todo si la tabla maestra de archivos (MFT) está dañada, ya que en esa situación la herramienta podría “recuperar” archivos enormes que en realidad no existen.

Tipos de archivos y prioridades

A veces, los clientes nos piden que recuperemos archivos concretos (sobre todo documentos de Word y PDF), porque no les interesa nada más. Si ese es el caso y no necesitas más datos para la investigación, ya que se han contabilizado todos los TTP, puede que te resulte más útil ejecutar una herramienta automatizada de recuperación de archivos multimedia sobre la VM, en lugar de hacer una recuperación completa de todo el disco.

Necesidad

En una línea relacionada, la necesidad de la empresa de recuperar los datos debe sopesarse en las decisiones de recuperación. Por ejemplo, si la empresa planea reconstruir el dispositivo, tiene una copia de seguridad de los datos que funciona y no es crucial para la investigación, ¿qué se gana recuperando datos de él? ¿Es necesario hacerlo? Probablemente no. Una comprensión clara de la necesidad empresarial de recuperar esta máquina virtual concreta conduce a una mejor asignación de los valiosos recursos de respuesta a incidentes.

Métodos de extracción: seis técnicas

Los métodos que se exponen a continuación abarcan múltiples formas de intentar extraer datos de una máquina virtual. No se trata de una lista exhaustiva, ya que constantemente se desarrollan nuevos métodos y herramientas; siempre se anima a investigar nuevas técnicas o herramientas, y nosotros mismos probablemente actualizaremos este artículo a medida que añadamos técnicas a nuestro propio repertorio. Con tal variedad de opciones disponibles, familiarizarte con los aspectos básicos de cada una de ellas, y luego aplicar ese conocimiento a las consideraciones enumeradas antes, es probablemente el mejor enfoque, que se hace más fácil con la experiencia y la práctica.

Dicho esto, aunque la lista que sigue no sigue un orden estricto, sugerimos que el Método 1 sea el primer paso en cualquier intento de recuperación, por razones que quedarán claras.

Método 1: simplemente móntalo

Un cuadro de llamada con el texto siguiente: Requisitos previos para montar la unidad Una versión del SO Windows que disponga de la herramienta de montaje nativa de Windows Herramientas de montaje de terceros Herramientas de imágenes como FTK Herramienta de archivado como 7-Zip Aplicabilidad: Windows, LinuxQue te hayan dicho que la máquina virtual está cifrada no significa necesariamente que lo esté. Sí, los ciberdelincuentes a veces mienten. Nos hemos encontrado con clientes que han pensado erróneamente que sus archivos estaban cifrados cuando, en realidad, el atacante simplemente había cambiado las extensiones de los archivos. Además, hemos visto casos en los que los procesos de cifrado de los atacantes han fallado y, en realidad, solo han cambiado el nombre del archivo.

Prueba siempre este método primero, ya que podría funcionar y ahorrarte mucho tiempo. Si no tiene éxito, habrás perdido poco tiempo y no habrás hecho nada para impedir otros métodos de recuperación. Si, por el contrario, el método funciona y la unidad se monta, podrás acceder al archivo o archivos y copiar y pegar desde ellos como desees. Además, como solo estás montando la VM, la protección endpoint (es decir, los paquetes antimalware / antivirus) no debería detectar ni eliminar ningún archivo malicioso. Esto será útil si piensas recoger muestras para enviarlas a los laboratorios. Algunos consejos para tener éxito con este método:

  • Prueba el archivador 7-Zip GUI; hemos tenido mucho éxito con 7-Zip en esta situación
  • Monta la unidad
  • Si no funciona, prueba con FTK o cualquier otra herramienta de montaje de terceros

Método 2: RecuperaBit

Un cuadro de llamada con el siguiente texto: Requisitos previos para usar RecuperaBit RecupraBit descargado de GitHub Python instalado en el SO elegido Almacenamiento disponible que sea equivalente en tamaño a la VM Un entorno 'sandboxed' / dispositivo separado / entorno de trabajo VM, para evitar posibles detecciones de protección de punto final Aplicabilidad: Windows, LinuxRecuperaBit, creada por Andrea Lazzarotto, es una herramienta automatizada que reconstruirá las particiones NTFS que encuentre en la máquina virtual cifrada. Si encuentra una partición NTFS, volverá a crear la estructura de carpetas de esa partición en el dispositivo que se esté utilizando para examinarla. Si tiene éxito, podrás acceder a los archivos y copiarlos y pegarlos como desees desde la estructura de directorios/carpetas recién creadas.

Es un script en python, por lo que funcionará en cualquier SO que admita python3. Es fácil de usar, y solo se necesitan unas pocas opciones para que reconstruya la máquina virtual cifrada. La experiencia ha demostrado que, por término medio, deberías obtener un “sí” o un “no” sobre si puede reconstruir algo útil en unos 20 minutos. Después, si puede gestionar la reconstrucción, tardará aproximadamente otros 20 minutos en recrear la partición.

Es importante saber que la ejecución de RecuperaBit probablemente activará detecciones de protección de endpoints si hay ransom.exe u otros archivos maliciosos. Por esta razón, si decides utilizar RecuperaBit en situaciones en las que esperas recuperar ese ejecutable para su posterior análisis, debes ejecutarlo en un entorno en el que las protecciones de endpoints puedan desactivarse con seguridad, de ahí el requisito previo de un sandbox.

En el momento de escribir esto, RecuperaBit puede descargarse de GitHub. Hay una guía de usuario de la herramienta en la página de GitHub.

Método 3: bulk_extractor

Cuadro de llamada con el siguiente texto: Requisitos previos para utilizar bulk_extractor bulk_extractor descargado para Windows o Linux Un dispositivo Linux / WSL/ VM de trabajo, si se va a utilizar el binario Linux Un entorno 'sandboxed' / dispositivo separado / entorno de trabajo VM, para evitar posibles detecciones de protección de endpoints Aplicabilidad: Windows, LinuxBulk_extractor (llamado bulk-extractor en su página kali.org, pero es el mismo programa en ambos casos) es una herramienta gratuita que funciona en Windows o Linux. Fue creada por Simson Garfinkel. Puede recuperar archivos del sistema, como los registros de eventos de Windows (.EVTX), así como archivos multimedia. Esta herramienta está automatizada, por lo que el investigador puede iniciarla y dejarla funcionar, quizás después de horas, con la esperanza de que recupere algo.

Es posible configurarla para tipos de archivos específicos u otros artefactos alterando su archivo de configuración. Esto puede ser muy útil para acelerar el análisis en situaciones en las que esperas resultados rápidos, centrados o específicos (por ejemplo, solo archivos EVTX) en lugar de intentar recuperar toda la partición.

Al igual que con RecuperaBit en el Método 2, ejecutar bulk_extractor probablemente activará detecciones de protección de endpoints si hay ransom.exe u otros archivos maliciosos. Por esta razón, si decides utilizar bulk_extractor en situaciones en las que esperas recuperar ese ejecutable para enviarlo a laboratorios o realizar análisis similares, debes ejecutarlo en un entorno en el que las protecciones de endpoints puedan desactivarse de forma segura, de ahí el requisito previo anterior de un sandbox.

En el momento de escribir esto, bulk_extractor para Linux puede descargarse de GitHub. Hay una guía de usuario de la herramienta en la página de GitHub.

Método 4 : EVTXtract

Cuadro de llamada con el siguiente texto: Requisitos previos para utilizar EVTXtract EVTXtract descargado de GitHub (haga clic aquí para ver el enlace) Un dispositivo Linux / WSL / VM en funcionamiento Aplicabilidad: WindowsEsta herramienta especializada busca en un bloque de datos (en este caso, una VM cifrada) archivos .evtx completos o parciales. Si encuentra alguno, la herramienta los devuelve a su estructura original, que es XML. Se trata de una herramienta automatizada diseñada para funcionar solo con Linux.

Los archivos XML son notoriamente difíciles de trabajar. En este caso, el archivo estará formado por fragmentos EVTX incorrectamente incrustados, por lo que el resultado será un poco difícil de manejar. Para facilitar la revisión del resultado de esta herramienta, tendrás que masajear los datos. Un par de sugerencias para hacerlo con eficacia:

  • Intenta convertir el archivo a formato CSV para facilitar la visualización
  • Utiliza el comando grep para obtener el resultado de AAAA-DD-MM (o cualquier otro formato de fecha), event-IDs, palabras clave o IoCS conocidos que indiquen actividad en el día de interés

Ten en cuenta que esta herramienta, tal y como indica su nombre, solo recupera archivos o fragmentos EVTX. Si buscas otros artefactos, tendrás que utilizar una herramienta diferente.

En el momento de escribir esto, EVTXtract puede descargarse de GitHub. Hay una guía de usuario de la herramienta en la página de GitHub.

Método 5 : Scalpel, Foremost u otras herramientas de recuperación de archivos

Cuadro de llamada con el siguiente texto: Requisitos previos para utilizar Scalpel o Foremost Copia de Scalpel o Foremost (enlaces de descarga en el artículo) Un dispositivo Linux / WSL / VM de trabajo Un entorno sandboxed / dispositivo separado / entorno de trabajo VM para evitar posibles detecciones de protección de endpoints Aplicabilidad: Windows, LinuxVolviendo nuestra atención de las herramientas de recuperación de EVTX a las diseñadas para restaurar otros tipos de archivos, Scalpel y Foremost son dos de las muchas herramientas gratuitas de recuperación de archivos disponibles actualmente. Aunque ambas son tecnologías antiguas, el equipo de IR de Sophos ha obtenido excelentes resultados con ellas en nuestras investigaciones.

La versión original de Scalpel, lanzada en 2005, se basaba en Foremost, y las dos aplicaciones de tallado e indexación tienen un enfoque similar. Ambas recuperan principalmente archivos multimedia y de documentos, lo que las hace útiles si tu investigación busca documentos, PDF o similares. Para cualquiera de ellas, el archivo de configuración puede modificarse para centrarse en tipos de archivos específicos, o dejarse solo para un esfuerzo de recuperación más completo (aunque más lento).

Como ya se ha dicho, ninguno de estos programas recupera archivos del sistema; se necesitarán otras herramientas para ese trabajo. Además, los archivos recuperados con ellos pueden activar detecciones de protección de endpoints si hay archivos maliciosos presentes (por ejemplo, PDFs maliciosos de una campaña de phishing). Por esta razón, recomendamos a los investigadores que ejecuten estas herramientas en un entorno sandbox, en el que se pueda desactivar la protección de endpoints, si dichos archivos deben conservarse para la investigación.

Como se ha indicado anteriormente, estos dos programas son de tecnología más antigua, lo que significa que la recuperación de tipos de archivos más recientes puede no ser factible con estas herramientas. Existen otras herramientas, e invitamos al lector a que las investigue, pero como opciones fácilmente disponibles, estas dos son sólidas.

Foremost puede descargarse de GitHub, y en la página de GitHub hay una guía de usuario de la herramienta. Fue desarrollada originalmente por la Oficina de Investigaciones Especiales de las Fuerzas Aéreas de EE. UU. y el Centro de Estudios e Investigación sobre la Seguridad de los Sistemas de Información. La versión en GitHub no parece ser mantenida activamente.

Asimismo, en el momento de escribir esto, Scalpel puede descargarse de GitHub. En la página de GitHub de la herramienta hay una guía de usuario. Como se indica en su página de GitHub, esta herramienta no se mantiene activamente.

Método 6 : tallado manual de la partición NTFS

Cuadro de llamada con el siguiente texto: Requisitos previos para el tallado manual de la partición NTFS Un dispositivo Linux / WSL / VM en funcionamiento Un editor hexadecimal como HxD o xxd Una versión del SO Windows que disponga de la herramienta nativa de montaje de ventanas Herramientas de montaje de terceros Herramientas de imágenes como FTK Herramienta de archivado como 7-Zip Almacenamiento disponible que sea equivalente en tamaño a la VM Aplicabilidad: WindowsEn contraste con las herramientas y técnicas resumidas anteriormente, el tallado manual requiere preparación y una comprensión más fina de las opciones que tienes a tu disposición. Haremos algunas recomendaciones sobre cómo planificar tu esfuerzo, y luego te guiaremos a través de los detalles de trabajar con dd, la potente utilidad de Linux que utilizarás para este trabajo.

Algunos antecedentes: DD significaba originalmente “definición de datos” y es realmente uno de los Dioses Mayores de la informática; celebra su 50 aniversario de existencia en junio de 2024. Se advierte a los nuevos usuarios de dd que las erratas pueden ser catastróficas en esta utilidad, lo que le ha valido su nombre alternativo de “destructor de discos”; se la ha descrito como “una navaja suiza, pero que es todo hojas y nada de mango”. Se recomienda que los investigadores se familiaricen con los conceptos básicos de dd antes de proceder. También sugerimos que escriban el comando dd en un editor de texto, se aseguren de que todo es correcto y luego copien y peguen el comando en la línea de comandos.

Un tallado manual adecuado requiere que los investigadores configuren tres conmutadores en dd antes de ejecutar la utilidad: bs (bytes por sector), skip (el valor de desplazamiento del sector NTFS que pretendes recrear) y count (el tamaño del sector). Estos cálculos no son necesariamente difíciles, pero llevan su tiempo y no son opcionales. Esta sección te guía por los pasos para calcular los tres.

Además, el procesamiento en sí es bastante lento, pudiendo tardar horas en completarse correctamente. Como ya hemos dicho, generalmente recomendamos que inicies el proceso de tallado manual al final de la jornada laboral y dejes el dispositivo en marcha durante la noche. Sin embargo, con algo de práctica, el cálculo de los valores de conmutación puede llevar al investigador solo unos minutos y si calculas el tamaño de la partición que vas a tallar antes de intentar tallar la partición, reduces la probabilidad de perder tiempo y capacidad de procesamiento. Así que hazlo.

Por último, ten en cuenta que este proceso ocupa mucho espacio, probablemente el mismo que la propia máquina virtual, ya que básicamente estás copiando la máquina virtual. Por ejemplo, si trabajas con un archivo VM de 100 GB, necesitarás otros 100 GB más de espacio para extraer los archivos que quieras.

El proceso consta de cuatro pasos principales:

  1. Analiza la VM cifrada en busca de particiones NTFS disponibles
  2. Extrae la partición NTFS más grande y crea un nuevo archivo
  3. Si el archivo recién creado está lo suficientemente intacto, móntalo en Windows
  4. Extrae los artefactos que necesites

La utilidad que realiza la copia, dd, está integrada en Linux. El comando es el siguiente

sudo dd if= *** of=***.img bs=*** skip=*** count=*** status=progress

Una vez más (y nunca se insistirá lo suficiente) dd no perdona en absoluto los errores tipográficos. Procede con cautela. El comando y sus modificadores pueden entenderse de la siguiente manera:

sudo = El usuario debe tener los privilegios más altos para esta herramienta

dd = La utilidad en sí

if = Significa “archivo de entrada”: este valor es la ruta y el nombre del archivo de la máquina virtual cifrada.

of = Significa “archivo de salida”: es el nombre de la partición recreada. La extensión de archivo sugerida es nombrenuevoarchivo.img

bs = Los bytes por sector de la partición que estás recortando; este valor debe introducirse en bytes

skip = El valor de desplazamiento, en sectores, de la partición NTFS que estás eliminando, desde el inicio del disco / archivo VM.

count = El tamaño de la partición, en sectores, de la partición NTFS que estás eliminando.

estado = Un interruptor opcional para mostrar una barra de progreso, para ver cuántos bytes se han duplicado

Como ya se ha dicho, hay tres valores que debes calcular y proporcionar a este comando: bs, skip y count. La forma más sencilla de calcular estos valores es utilizar un editor hexadecimal de interfaz gráfica de usuario, como HxD de Maël Hörz (que es un programa gratuito para Windows), pero si lo prefieres puedes utilizar una herramienta de línea de comandos como xxd. Las siguientes capturas de pantalla muestran los pasos a seguir con HxD.

Switches: cómo recopilar los valores básicos

Inicia HxD y carga el archivo VM cifrado. Haz clic en la columna Desplazamiento, en el extremo izquierdo, para cambiarla y mostrar los valores en decimal (base10). En HxD esto se indica con la letra D entre paréntesis, como se muestra en la Figura 1.

Captura de pantalla de los valores de desplazamiento mostrados como números de base10
Figura 1: los valores de offset se muestran ahora en números decimales

A continuación, abre el Inspector de datos en el menú desplegable Ver, como se muestra en la Figura 2.

Captura de pantalla de un menú HxD
Figura 2: menú desplegable Ver en HxD con la opción Inspector de datos seleccionada

Ahora busca las posibles particiones NTFS. Resalta el byte superior izquierdo y, a continuación, utiliza la función de búsqueda para buscar la siguiente cadena hexadecimal, en lugar de una cadena decimal o una cadena de texto, si tales opciones están disponibles.

EB 52 90 4E 54 46 53 20 20 20 20

Presta atención a qué pestaña está abierta en el cuadro Buscar, como se muestra en la Figura 3.

Captura de pantalla que muestra un cuadro de búsqueda con la cadena hexadecimal indicada anteriormente
Figura 3: buscando la cadena hexadecimal que indica el inicio de un sector NTFS

La cadena hexadecimal anterior es el “byte de firma” de una partición NTFS, por lo que esta búsqueda encontrará cualquier partición NTFS potencial que puedas tallar. Es probable que se presenten muchas en una lista, como se muestra en la Figura 4.

Captura de pantalla mostrando nueve posibles particiones NTFS que la búsqueda encontró
Figura 4: Una fructífera búsqueda de particiones NTFS potencialmente salvables

Cuando selecciones uno de estos resultados, se te presentará la cabecera de la partición NTFS en la ventana del visor hexadecimal, como se muestra en la Figura 5.

Captura de pantalla que muestra la cabecera NTFS, de la que hablaremos a continuación
Figura 5: la cabecera se muestra sobre la partición NTFS seleccionada

La cabecera contiene la información básica que necesitas para los valores bs, skip y count necesarios en el comando dd. A continuación, explicaremos cómo calcular esos tres valores. Querrás hacerlos en orden.

Cómo calcular el valor de bs (bytes por sector)

Partiendo del inicio de la partición NTFS que has seleccionado, resalta los bytes de los desplazamientos 11 y 12, como se muestra en la Figura 6. El valor mostrado como Int16 en el inspector de datos es el valor necesario. En este ejemplo, el valor bs es 512. Este valor casi siempre será 512. Casi.

Captura de pantalla mostrando el valor Int16 resaltado en el Inspector de Datos
Figura 6: los bytes del valor de bs están resaltados y el inspector de datos muestra que el valor es efectivamente 512

Cómo calcular el valor deskip

Ahora que tienes el valor de bs, calcula el valor de skip dividiendo el valor de desplazamiento de cabecera por el valor bs. Este cálculo proporciona el valor del sector donde comienza la partición NTFS.

Por ejemplo, el valor decimal de desplazamiento de cabecera de la partición NTFS resaltada en la Figura 7 es 00576716800. Para que quede claro, las siguientes capturas de pantalla no son de la misma partición que la de las capturas de pantalla mostradas anteriormente. Sin embargo, como se predijo anteriormente, puedes ver que el valor bs de esta partición NTFS (los bytes en los desplazamientos 11 y 12) es de nuevo 512.

Captura de pantalla en la que se destaca el valor de desplazamiento base10 que se dividirá por el valor bs para obtener el valor de salto
Figura 7: el valor de desplazamiento de la cabecera se muestra en el recuadro verde

Para calcular el valor de skip, divide ese valor por el valor bs (es decir, 512). En otras palabras, haz lo siguiente

576716800 / 512 = 1126400

1126400 es el valor de skip.

Cómo calcular el valor de count

Localiza y resalta los ocho bytes que comienzan en el byte 41 desde el inicio de la cabecera NTFS. Para encontrar este valor, en la pantalla siguiente, baja dos filas desde el primer byte (EB) de la cabecera, pasa a la columna 08 y resalta los ocho bytes siguientes, como se muestra en la Figura 8.

Captura de pantalla que muestra el valor de recuento Int64
Figura 8: encontrar el valor de count (resaltado)

Resalta los ocho bytes siguientes, hasta la columna 15, como se muestra (es decir, los bytes 41-48). El valor que se muestra en INT64 en el intérprete de datos es el valor de count (en la figura anterior, 1995745279). Este valor está en sectores y el comando anterior lo necesita en sectores, por lo que no es necesaria ninguna conversión: anota el valor y listo.

¿Qué partición elegir?

Antes dijimos que debías elegir la partición más grande disponible. El valor del count indica el tamaño de la partición. Si la partición solo tiene unos pocos sectores, es probable que no merezca la pena extraerla. Para aumentar las posibilidades de extraer con éxito la unidad C:, lo mejor sería encontrar la partición más grande de la lista inicial de particiones NTFS y extraerla.

La partición más grande debe tener aproximadamente el mismo tamaño que el archivo VM total. Sin embargo, el tamaño del archivo VM se muestra en bytes, mientras que el tamaño NTFS se muestra en sectores totales. Para compararlos, deberás convertir el tamaño del sector de la partición en bytes para compararlos.

Para convertir el tamaño del sector de la partición en bytes, multiplica el tamaño del sector (como se muestra en el intérprete de datos) por el valor bs. Así, utilizando los números que encontramos en los ejemplos anteriores

1995745279 x 512 = 1021821582848 bytes (951,64 GB)

Preparado, listo…

Ahora tienes los tres valores que necesitas para utilizar la utilidad dd. Introduce los valores necesarios en el comando dd, pega el comando en el propio dd si has seguido nuestro consejo de hacer todo esto en un editor de texto, pulsa Intro, y dd tallará la partición NTFS elegida.

Cuando haya terminado, monta el nuevo archivo que acabas de tallar. Entonces deberías poder recuperar lo que necesites. Si la unidad no se monta, prueba con 7-Zip (u otras herramientas de archivo), otras herramientas de montaje o FTK.

Para recapitular, la Figura 9 muestra un diagrama anotado de la cabecera NTFS y dónde se encuentran los valores.

Captura de pantalla que muestra todas las partes de la cabecera NTFS que acabamos de ver
Figura 9: un vistazo en color a una cabecera NTFS (el valor de count está marcado como “total de sectores en el sistema de archivos”

Conclusión

Una vez más, advertimos al lector de que los resultados no están garantizados; el mejor método para recuperar los datos cifrados en un ataque es extraer una copia de una copia de seguridad limpia y no afectada. Sin embargo, estos métodos pueden ayudar al equipo investigador a recuperar datos en situaciones en las que no hay otra opción.

¿Cuándo es el momento de rendirse? Lamentablemente, no siempre es posible recuperar los datos en su totalidad, en parte o incluso en absoluto. Es de esperar que los resultados varíen, a veces sin ninguna razón que pueda determinarse. Depende de ti y de la parte interesada de la empresa, decidir cuándo abandonar el proceso.

Agradecimientos

Los autores desean dar las gracias a los creadores del software mencionado anteriormente. El editor desea dar las gracias a Jonathan Espenschied por la descripción de dd como un cuchillo suizo sin mango. Parte de la información de este artículo se presentó originalmente como parte de CyberUK en mayo de 2024.