Tanto foremost como scalpel son herramientas clásicas y extremadamente potentes en el mundo del análisis forense digital y la recuperación de datos en Linux. Su especialidad es una técnica llamada File Carving (tallado de archivos).
Cuando haces un volcado de la memoria RAM (un archivo .raw, .dmp o .img que contiene gigabytes de datos puros en binario), no hay una estructura de carpetas ni un índice que te diga dónde empieza o termina un archivo. Todo es un "mar" continuo de unos y ceros.
Aquí te explico cómo funcionan y cómo se usan específicamente para buscar tesoros ocultos dentro de un volcado de RAM.
El secreto de su funcionamiento: Las firmas de archivos
Tanto foremost como scalpel no leen el contenido de la memoria como lo haría un humano; buscan números mágicos (magic numbers), que son firmas de bytes únicas que los sistemas operativos colocan al principio y al final de cada tipo de archivo.
Un archivo PDF siempre empieza por los bytes en hexadecimal
25 50 44 46(%PDF).Un archivo PNG siempre empieza por
89 50 4E 47(.PNG).
Las herramientas escanean el archivo de la RAM de arriba a abajo. Cuando encuentran una firma de inicio, abren un grifo y empiezan a guardar datos en un archivo nuevo en tu disco duro hasta que encuentran la firma de cierre de ese formato (o hasta que alcanzan un límite de tamaño máximo configurado).
1. Foremost: El explorador automático y rápido
foremost es la herramienta ideal para empezar porque es muy sencilla de usar, automática y requiere muy poca configuración. Viene con una base de datos interna de formatos comunes ya preconfigurada.
Cómo usarlo para analizar un volcado de RAM:
Supongamos que ya has hecho un volcado de la RAM de tu navegador o de todo el sistema y lo has guardado en un archivo llamado memoria_ram.raw.
Para procesarlo con foremost, abre tu terminal de Linux y ejecuta:
foremost -t pdf,png,jpg -i memoria_ram.raw -o /home/diego/Escritorio/extraccion_ram
Desglose del comando:
-t: Especifica los tipos de archivos que quieres buscar (separados por comas). Si quieres buscar todo lo que reconozca, puedes poner-t all.-i: El archivo de entrada (input), que es tu volcado de RAM.-o: La carpeta de salida (output) dondeforemostcreará carpetas automáticas (/pdf,/png, etc.) con todo lo que logre rescatar de la RAM.
2. Scalpel: El bisturí de precisión quirúrgica
scalpel nació originalmente como una optimización de foremost. Es mucho más eficiente con el uso de la memoria de tu propia máquina y es el preferido cuando el archivo de la RAM es gigantesco (decenas de gigabytes), ya que realiza el escaneo en pasadas mucho más rápidas.
La principal diferencia es que scalpel te obliga a revisar su archivo de configuración antes de trabajar, porque por defecto viene con todos los formatos de archivo desactivados (comentados).
Paso 1: Configurar el bisturí
Antes de ejecutarlo, tienes que abrir su archivo de configuración (normalmente en /etc/scalpel/scalpel.conf) con tu editor de texto favorito:
sudo nano /etc/scalpel/scalpel.conf
Verás una lista enorme de líneas como esta:
# pdf y 5000000 \x25\x50\x44\x46 \x25\x25\x45\x4F\x46
Para activar la búsqueda de PDFs, tienes que quitar el símbolo # (descomentar la línea). Esa línea le dice a scalpel: "Busca archivos PDF, que tienen un tamaño máximo de 5MB, empiezan por \x25\x50\x44\x46 y terminan en \x25\x25\x45\x4F\x46". Guarda el archivo (Ctrl+O y Ctrl+X).
Paso 2: Ejecutar el escaneo
Una vez configurado lo que buscas, ejecutas el comando:
scalpel -o /home/diego/Escritorio/extraccion_scalpel memoria_ram.raw
(Nota: A diferencia de foremost, en scalpel no hace falta poner -i, el archivo de la RAM se pone simplemente al final).
⚖️ ¿Cuál deberías usar para analizar la RAM?
| Característica | Foremost | Scalpel |
| Facilidad | ⭐⭐⭐⭐⭐ (Listo para usar) | ⭐⭐⭐ (Requiere editar el .conf) |
| Rendimiento | Pesado con archivos muy grandes | Muy rápido y eficiente con la CPU/RAM |
| Personalización | Más rígido | Permite definir tamaños máximos exactos |
El gran problema del Carving en la RAM (La fragmentación)
Hay algo muy importante que debes tener en cuenta al usar estas herramientas con la RAM: la fragmentación. La memoria RAM guarda los datos en pequeños bloques dispersos (páginas de memoria). Si el archivo que buscas (por ejemplo, un vídeo de un
blob:https:) era muy grande, es muy probable que sus datos no estuvieran seguidos en la RAM, sino repartidos en "islas" de memoria.Tanto
foremostcomoscalpelasumen que los archivos son contiguos (que todo el archivo está del tirón). Por eso, al analizar la RAM, es muy común que muchos archivos extraídos te salgan corruptos o cortados por la mitad. ¡Aun así, para rescatar imágenes, textos, fragmentos de código o PDFs indexados en memoria, son herramientas mágicas!
No hay comentarios:
Publicar un comentario