Parte: 9 — Forense digital y respuesta a incidentes · Fuente: Brian Carrier — File System Forensic Analysis ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Aprender a recuperar archivos borrados incluso cuando el sistema de archivos ya no los referencia, mediante file carving: reconstruir archivos a partir de sus firmas (headers/footers) en el espacio no asignado. Al terminar sabrás usar PhotoRec, Scalpel, foremost y bulk_extractor para rescatar evidencia perdida.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Borrado vs. destrucción | Qué se puede recuperar |
| 2 | Recuperación por metadatos | La vía rápida cuando existe |
| 3 | File carving por firmas | Cuando no hay metadatos |
| 4 | Magic numbers | Cómo se reconocen los archivos |
| 5 | PhotoRec / foremost / Scalpel | Herramientas de carving |
| 6 | Fragmentación | El gran enemigo del carving |
| 7 | bulk_extractor | Extraer artefactos a granel |
| 8 | Validación de recuperados | Evitar falsos positivos |
File carving recupera contenido por firmas y estructura sin depender del directorio. Es útil en espacio no asignado o sistemas dañados, pero pierde con frecuencia nombre, ruta y tiempos. Un resultado es un conjunto de bytes candidato, no automáticamente «el archivo que usó el atacante».
Firmas de cabecera/pie pueden aparecer en datos aleatorios; fragmentación puede truncar o mezclar objetos. Se valida estructura interna y se compara con metadatos residuales, thumbnails, logs o hashes. El análisis ocurre sobre copia, registra offsets y parámetros, y evita contar duplicados como eventos separados. SSD/TRIM y cifrado pueden limitar la recuperación de forma irreversible.
Eliminar una entrada suele cambiar metadatos y marcar unidades como disponibles; no describe cuánto contenido permanece ni por cuánto tiempo. Si MFT, inodo o entrada de directorio conserva punteros válidos, la recuperación por metadatos puede mantener nombre, ruta y asignación con mayor fidelidad. Por eso se examina primero la estructura del filesystem y se usa carving cuando los metadatos faltan, están dañados o no cubren la pregunta.
Espacio no asignado, slack, copias de volumen, contenedores y memoria son ámbitos distintos. La herramienta debe registrar exactamente qué rango procesó. Recuperar los mismos bytes desde una shadow copy y desde espacio no asignado no significa dos acciones del usuario; el hash y la procedencia permiten deduplicar sin perder las dos ubicaciones.
Los magic numbers son patrones compatibles con un formato, no identificadores únicos. PK aparece en ZIP y en múltiples formatos basados en ZIP; %PDF puede existir dentro de texto o datos comprimidos. Un carver simple busca cabecera y pie, calcula un rango y escribe bytes. Si el archivo estaba fragmentado puede unir fragmentos ajenos, truncar contenido o exceder el objeto real.
La validación combina parser específico, estructura interna, tamaño coherente, apertura segura, hash y comparación con metadatos residuales. En imágenes se verifican marcadores y dimensiones; en PDF, tabla xref, objetos y páginas; en ZIP, directorio central y CRC. Que una aplicación «abra» el archivo no basta, porque muchas toleran corrupción.
Cada objeto recuperado lleva hash, offset inicial y final, fuente, herramienta, configuración y mensajes de error. bulk_extractor busca características como correos o URLs sin depender del filesystem; estas características pueden pertenecer a contenido válido, borrado o fragmentos duplicados. Sirven para pivotar, no para atribuir automáticamente una comunicación.
El valor probatorio aparece al correlacionar: un PDF recuperado comparte hash con un adjunto, su nombre sobrevive en la MFT y una miniatura confirma apertura aproximada. Si faltan esos vínculos, se informa que el contenido estaba presente en el rango analizado, sin inventar nombre, propietario o uso.
FFD8 JPEG, %PDF PDF, PK ZIP y derivados). Característica: inicia la detección, pero exige validación estructural.En una imagen, la recuperación por MFT rescata un JPEG con nombre y clusters; PhotoRec recupera el mismo contenido y otro JPEG desde espacio no asignado. Los hashes revelan que el primero es duplicado, mientras que el segundo posee estructura completa pero carece de ruta. Se conserva como hallazgo de contenido presente, sin atribuir quién lo creó.
Un candidato PDF comienza con %PDF pero su tabla xref apunta a sectores sobrescritos. El visor muestra una página, aunque el parser reporta objetos faltantes. El informe lo clasifica como recuperación parcial, anota offsets y evita compararlo mediante «hash original vs. recuperado» si no existe un original conocido. La validez se expresa por estructura observada y limitaciones, no por apariencia visual.
Dominas la clase cuando eliges recuperación por metadatos antes de carving cuando corresponde, delimitas el espacio procesado, registras offsets y parámetros, validas cada formato con estructura interna, deduplicas por hash y redactas conclusiones que distinguen presencia de bytes, archivo válido, identidad y uso.
photorec, foremost, scalpel.bulk_extractor.icat, fls -d), extundelete (ext4), testdisk (particiones)..dd propia donde borraste archivos a propósito.Usa una imagen propia donde tú borraste archivos conocidos (para verificar la recuperación).
bash
fls -d -r -o 2048 imagen.dd # lista borrados
icat -o 2048 imagen.dd 512 > recuperado_meta.bin
bash
foremost -t jpg,pdf,doc,zip -i imagen.dd -o salida_foremost
bash
photorec imagen.dd
bash
scalpel -c /etc/scalpel/scalpel.conf -o salida_scalpel imagen.dd
bash
bulk_extractor -o salida_bulk imagen.dd
Revisa email.txt, url.txt, ccn.txt.
6. Valida cada archivo recuperado: ábrelo, verifica su firma y compara su hash con el original que borraste. Descarta falsos positivos.
7. Documenta qué recuperó cada herramienta y por qué unas funcionaron mejor (fragmentación, tipo de archivo).
Borra cinco archivos conocidos (de tipos distintos) de una imagen propia, recupéralos por carving y demuestra —comparando hashes— cuáles se recuperaron íntegros y cuáles no, explicando la causa.
Criterio de aceptación: entregas los archivos recuperados, una tabla con hash, offset, método y resultado de validación por cada uno; si existe un original de referencia, comparas hashes, y si no existe, no inventas esa equivalencia. Explicas corrupción o límites mediante evidencia de fragmentación, sobrescritura o estructura.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Muchos archivos corruptos | Fragmentación; el carving por firmas no la maneja. Prueba PhotoRec con validación. |
| Falsos positivos abundantes | Firmas genéricas. Valida cada recuperado por su estructura. |
| No recupera nada | Espacio ya sobrescrito o SSD con TRIM. Busca en otras fuentes. |
| foremost trunca archivos | Tamaño máximo por defecto. Ajusta la config de tipos. |
| bulk_extractor tarda mucho | Imagen grande. Es normal; corre en background. |
❓ ¿Metadatos o carving primero? Metadatos primero (más fiable y rápido). Carving cuando el FS ya no referencia el archivo.
❓ ¿Por qué falla el carving con archivos grandes? Porque suelen estar fragmentados, y el carving por header/footer asume contigüidad.
❓ ¿Qué recupera bulk_extractor? Artefactos como emails, URLs, números de tarjeta y dominios, sin necesidad de parsear el sistema de archivos. Ideal para triage.
❓ ¿Cómo sé si un recuperado es válido? Ábrelo, verifica su firma/estructura y, si tienes el original, compara hashes. No confíes solo en la extensión.
Clase 213 — Anti-forense y sus contramedidas