Recuperar archivos eliminados en NTFS se reduce a dos relojes y una regla corta. Los relojes: cuánto hasta que el slot del registro MFT se reutilice, y cuánto hasta que los clusters de datos sean sobrescritos. La regla: no escribas en el volumen mientras alguno de los relojes te siga sirviendo.
Este es el flujo de recuperación que de verdad ejecuto cuando alguien me entrega un volumen NTFS y dice "eliminaron X, ¿podemos recuperarlo?". Tira del mismo arsenal independientemente de si X es un único archivo, un árbol de directorios o el contenido de un directorio tocado por SDelete.
Por qué eliminar no es borrar
Cuando Windows elimina un archivo de un volumen NTFS:
- Se limpia la bandera
IN_USE(bit 0 de las banderas de la cabecera del registro en el offset 0x16). - Los clusters que contenían los datos se marcan como libres en
$Bitmap. - La entrada en el
$INDEX_ROOTdel directorio padre se quita.
Lo que no pasa: nada sobrescribe el registro ni los clusters. Se marcan como disponibles para la siguiente asignación. Hasta que algo más los reclame, el archivo es recuperable. Mira qué sobrevive a una eliminación para el detalle campo a campo.
El reloj de recuperación del slot MFT y el reloj de recuperación de clusters de datos son independientes. Puedes tener un registro que ha sido reutilizado (el slot es ahora otro archivo) pero cuyos clusters de datos siguen conteniendo los bytes viejos. Puedes tener un registro eliminado intacto cuyos clusters han sido asignados a un archivo nuevo. Las dos situaciones requieren estrategias de recuperación diferentes.
Paso 1: deja de escribir en el volumen
Cada escritura que hagas en el volumen arriesga reutilizar el slot o los clusters de datos de un registro eliminado. Si el archivo importa:
- Detén la aplicación que lo tocaba. Si era una base de datos, detén el motor. Si era un documento, cierra el editor.
- Si el archivo vivía en la unidad del sistema y el sistema sigue corriendo, el propio SO está escribiendo constantemente (paging, prefetch, registro, logs). Apaga o arranca desde medios externos. Un sistema vivo está perdiendo espacio recuperable por segundo.
- Para una unidad externa, desmonta inmediatamente. En Windows, expulsa; en Linux,
umount.
Este es el paso que la gente se salta cuando piensa que la recuperación va a ser "fácil". La mitad de los casos de recuperación fallidos que he visto fallaron en este paso.
Paso 2: imagina el disco
Trabaja en una copia, nunca en el original. Las opciones estándar:
- FTK Imager: gratis, GUI, produce imágenes
.ddo.E01. Hashea la fuente durante la lectura. dden Linux:dd if=/dev/sdX of=disk.img bs=4M conv=noerror,sync status=progress. Rápido en discos sanos.ddrescue: más lento, pero tolera errores de lectura en discos que fallan. La opción correcta cuando el disco es el problema (clicking, lecturas lentas, advertencias SMART).
Hashea la imagen (SHA-256) inmediatamente tras la adquisición. Cada paso posterior trabaja contra la imagen, nunca contra el original.
Paso 3: elige el enfoque de recuperación correcto
El enfoque depende de lo que aún esté intacto.
Replay de MFT cuando el registro del archivo eliminado sigue en la tabla. Parsea $MFT con una herramienta que liste registros eliminados. El nombre, las marcas de tiempo, el directorio padre y (para archivos pequeños) los datos del archivo son recuperables desde el registro. Para archivos no residentes, la runlist sigue apuntando a los clusters originales; si esos clusters aún no han sido sobrescritos, icat o equivalente extrae los datos.
- MFTECmd lista registros eliminados y etiqueta los datos residentes.
- El parser en navegador filtra a entradas eliminadas con un clic y muestra datos residentes inline.
fls -d -mdel Sleuth Kit lista entradas eliminadas;icat -rrecupera sus datos cuando es posible.
Herramientas de recuperación con conocimiento del sistema de archivos cuando quieres una restauración selectiva guiada por GUI desde un volumen o imagen:
- R-Studio: comercial, la elección del analista para NTFS. Maneja daños complejos, recupera de volúmenes formateados, entiende EFS y BitLocker (con clave).
- TestDisk + PhotoRec: gratis, maduro, bueno para daños de partición. PhotoRec es carving por firma en vez de consciente del sistema de archivos, por lo que pierde los nombres de archivo.
- Recuva: nivel consumidor. Bien para recuperaciones de un solo archivo en una sola unidad en volúmenes sencillos. No es lo que usaría para una investigación.
Carving por firma cuando la MFT se ha ido o el registro ha sido reutilizado. scalpel, foremost y PhotoRec escanean la imagen cruda en busca de firmas de archivo conocidas (JPEG FF D8 FF, PNG 89 50 4E 47, ZIP 50 4B 03 04, PDF 25 50 44 46) y reensamblan lo que encuentran. Los archivos tallados pierden nombres y marcas de tiempo; eso vivía en la MFT. Los bytes vuelven, módulo fragmentación.
Para archivos fragmentados, el carving por firma cojea. Los carvers concatenan clusters consecutivos que parecen correctos, pero si el archivo estaba esparcido por el disco no pueden reensamblarlo. El replay de MFT consciente de NTFS maneja la fragmentación correctamente porque la runlist describe explícitamente cada fragmento.
Paso 4: cuando la recuperación por MFT es el único camino
Los archivos pequeños (bajo ~700 bytes de $DATA) viven enteramente dentro del registro MFT. Aun cuando $Bitmap haya sido sobrescrito docenas de veces, los bytes residentes siguen ahí en el registro hasta que el slot se reutilice. Mira datos residentes.
Para un pequeño archivo de texto, una pequeña config JSON, un script de PowerShell, una exportación de registro, un certificado pequeño o un archivo .lnk, el parser en navegador suele ser el camino más rápido: suelta la $MFT extraída, filtra a entradas eliminadas, busca registros con $DATA residente y copia los bytes fuera. Esto funciona cuando nada más funciona porque los datos nunca salieron de la MFT en primer lugar.
Lo que es genuinamente irrecuperable
Clusters sobrescritos. Los HDD y SSD modernos no ofrecen un camino realista para recuperar datos que han sido escritos una vez encima. La fantasiosa recuperación por "magnetización remanente" de la literatura forense antigua no aplica a discos fabricados esta década. La densidad es demasiado alta, el posicionamiento de la cabeza demasiado preciso.
Bloques SSD reclamados por TRIM. Una vez que el controlador SSD ha hecho TRIM a un bloque, el flash subyacente se cero durante la recolección de basura. Los datos se van, rápido. La ventana entre la eliminación y la finalización del TRIM en Windows moderno es de segundos como mucho.
Volúmenes cifrados sin la clave. Los volúmenes NTFS cifrados con BitLocker, VeraCrypt o LUKS son irrecuperables sin la clave. El texto plano nunca tocó el disco en primer lugar.
Archivos limpiados por un wiper competente. sdelete -p 3 -z -s -q C:\target\* sobrescribe los clusters del archivo tres veces, cero el espacio libre y recursa. La recuperación es imposible para los clusters de datos; el registro MFT puede aún contener metadatos y datos residentes, pero el contenido sustancial del archivo se ha ido.
Datos residentes: el caso donde la física está de tu lado
El caso de los datos residentes sigue sorprendiendo a los analistas junior. Los archivos por debajo del umbral están inline en el registro MFT. El registro persiste hasta que el slot se reutilice. El área de datos es irrelevante; si $Bitmap ha sido sobrescrito mil veces, los bytes residentes siguen ahí.
Una vez recuperé un archivo .config de 400 bytes de un disco que había sido usado dos semanas más después de la eliminación y estaba mayormente sobrescrito. El slot MFT por encima del registro 230.000 no había sido reutilizado. El archivo completo estaba ahí, residente, en el registro. Cinco minutos de trabajo.
Por eso siempre pruebo recuperación-MFT-primero para archivos pequeños antes de tocar el área de datos.
Preguntas frecuentes
¿Cuánto tiempo permanecen recuperables los archivos eliminados en NTFS?
Hasta que el slot MFT se reutilice y los clusters de datos se sobrescriban. En un sistema ocupado son horas. En un sistema inactivo pueden ser meses. No hay un temporizador fijo; lo guía la presión de asignación del volumen.
¿Vaciar la papelera dificulta la recuperación?
No. La papelera es un directorio oculto ($Recycle.Bin) en cada volumen. Vaciarla elimina los archivos en el sentido NTFS normal; aplican las mismas técnicas de recuperación. Antes de vaciar, el archivo sigue siendo un archivo NTFS normal bajo \$Recycle.Bin\<SID>\ con un nombre $R<ID>; el hermano $I<ID> registra la ruta original.
¿Puedo recuperar archivos eliminados con del /F o Shift+Delete?
Sí. Estos saltan la papelera pero eliminan de la misma forma (IN_USE limpio, clusters liberados). El registro MFT sigue ahí hasta que se reutilice.
¿Puedo recuperar archivos de un disco NTFS formateado?
Un formato rápido solo reescribe el sector de arranque y una $MFT fresca. La mayoría de los clusters de datos viejos están intactos y muchos de los registros MFT anteriores (NTFS reutiliza el mismo offset inicial) son recuperables mediante carving por firma de cabeceras FILE por el volumen crudo. Un formato completo cero el volumen; esos datos se han ido.
¿Y un archivo que fue renombrado antes de la eliminación?
El registro MFT después de la eliminación muestra el nombre final (el de después del renombrado). El diario USN preserva el par RENAME_OLD_NAME / RENAME_NEW_NAME, así que puedes recuperar el nombre original de ahí.
Lecturas adicionales
- Brian Carrier, File System Forensic Analysis. Capítulos sobre semántica de eliminación y recuperación en NTFS.
- Documentación de
fls -deicat -rdel Sleuth Kit. Flujo canónico de línea de comandos para enumeración de archivos eliminados y recuperación de datos. - Documentación de PhotoRec. La referencia para carving por firma cuando la MFT ya no es la herramienta adecuada.