Herramientas: de file a zsteg
Cuatro comandos de casi cualquier Linux le dicen qué es el archivo, qué metadatos tiene y si hay algo pegado al final. binwalk y zsteg hacen el trabajo pesado. En Ubuntu 24.04:
sudo apt install file libimage-exiftool-perl binutils xxd binwalk ruby
sudo gem install zstegLas cuatro de siempre
file ARCHIVO
exiftool [-a] [-u] ARCHIVO
strings [-n MIN] ARCHIVO
xxd ARCHIVO | tail [-n LINEAS]| Comando | De dónde viene el nombre | Qué le dice en un reto de imagen |
|---|---|---|
file | file, "archivo" | El tipo real según los primeros bytes, no según la extensión |
exiftool | EXIF tool; EXIF es Exchangeable Image File Format | Metadatos: autor, programa, comentarios y avisos de estructura rara |
strings | strings, "cadenas" | El texto imprimible de 4 caracteres o más |
xxd | volcado hexadecimal que viene con Vim | Los bytes crudos; con tail ve lo que hay después del final del PNG |
Todo PNG termina con un bloque IEND. Si xxd archivo.png | tail muestra bytes después, alguien los pegó; los visores los ignoran y la foto se ve igual.
Ficha de binwalk
- Nombre: de binary y walk, "recorrer el binario".
- Qué hace: busca firmas de otros formatos dentro del archivo y dice en qué posición empieza cada una: un ZIP, un JPEG, datos zlib.
binwalk [OPCIONES] ARCHIVO| Opción | Qué hace | Ejemplo |
|---|---|---|
| sin opciones | Lista las firmas encontradas | binwalk foto.png |
-e | Extrae lo que reconoce a una carpeta _foto.png.extracted | binwalk -e foto.png |
El error que verá si extrae como root en binwalk 2.3:
Extractor Exception: Binwalk extraction uses many third party utilities, which may not be secure. If you wish to have extraction utilities executed as the current user, use '--run-as=root' (binwalk itself must be run as root).No le ponga --run-as=root: corra binwalk -e como usuario normal, porque un archivo malicioso puede aprovechar un extractor vulnerable. binwalk 3, reescrito en Rust, muestra otra salida; aquí se usa la 2.3 de Ubuntu.
Ficha de zsteg
- Nombre: steg viene de steganography, esteganografía.
- Qué hace: prueba decenas de combinaciones de bits, canales y órdenes de lectura en PNG y BMP, y avisa cuáles dan texto o un archivo reconocible. No sirve para JPG.
zsteg [OPCIONES] IMAGEN [CARGA]| Opción | Qué hace | Ejemplo |
|---|---|---|
| sin opciones | Prueba las combinaciones comunes | zsteg foto.png |
-a | Prueba todas, con más ruido | zsteg -a foto.png |
-E CARGA | Extrae una combinación concreta | zsteg -E b1,r,lsb,xy foto.png |
La etiqueta b1,r,lsb,xy se lee así: 1 bit por píxel, canal rojo (red), el bit menos significativo (lsb), recorrido por filas (xy). Si después de instalarlo ve zsteg: command not found, la carpeta de gemas de Ruby no está en su PATH (gem environment la muestra).
Las herramientas web
Aperi'Solve y StegOnline hacen lo mismo en el navegador: separan planos de bits, leen metadatos y prueban LSB. CyberChef tiene la operación Extract LSB. Con una imagen de un caso real, no: subirla a un servicio de terceros saca la evidencia de su custodia y puede filtrar lo que intenta proteger. CyberChef se descarga y funciona sin conexión; esa copia sí sirve.