Esteganografía: Ocultar y Descubrir Información con Steghide, Foremost, Binwalk y Strings

La esteganografía es una técnica utilizada para ocultar información dentro de los archivos aparentemente inofensivos como imágenes, audios o documentos. En el hacking ético, analizar estos archivos es una práctica habitual para detectar posibles fugas de datos, cargas maliciosas, etc...

Las herramientas clave para detectar información oculta son:

Steghide
Es una herramienta muy utilizada en esteganografía que permite ocultar y extraer datos en archivos portadores de imágenes (JPEG, BMP) y audios (WAV, AU).

$ steghide [opciones]

Las opciones principales de steghide son:

  • --help: Muestra la ayuda.
  • embed: Oculta un archivo dentro de otro (imagen o audio).
  • extract: Extrae un archivo oculto dentro de otro.
  • info: Muestra información del archivo portador (si contiene datos ocultos, método, etc...).
  • --encrypt, --compress: Habilita o desactiva cifrado o compresión (por defecto: cifrado activado, comprensión activada).
  • -cf: Archivo portador (cover file).
  • -ef: Archivo a ocultar (embed file).
  • -sf: Archivo portador con información oculta (stego file) para extraer.
  • -p: Contraseña para cifrar o descifrar.
  • --force: Fuerza la sobreescritura de archivos si ya existen.
Foremost
Es una herramienta de informática forense de línea de comandos para la recuperación de archivos borrados de discos duros o imágenes de disco.

$ foremost -i <imagen/disco> -o <directorio_salida>

Las opciones principales de foremost son:
  • -h: Muestra la ayuda.
  • -i <archivo>: Especifica la imagen de disco o archivo de entrada. 
  • -o <dorectorio>: Define el directorio de salida donde se guardarán los archivos recuperados.
  • -v: Modo detallado (verbose). Muestra el progreso durante el análisis.
  • -t <extensiones>: Especifica los tipos de archivos a recuperar (jpg, pdf, png, exe, etc...), ejemplo: -t jpg,png,doc
  • -c: Usa un archivo de configuración personalizado (foremost.conf).
  • -q: Modo rápido, no realiza verificación del encabezado del archivo.
Binwalk
Es una herramienta de informática de línea de comandos para analizar y extraer archivos y código incrustados en imágenes binarias, especialmente en firmware.

$ binwalk <archivo>

Las opciones principales de binwalk son:
  • -h: Muestra la ayuda.
  • -e: Extrae automáticamente los archivos detectados (carveo).
  • -E: Igual que -e, pero no extrae archivos conocidos comprimidos (por ejemplo, zlib).
  • -M: Modo recursivo, vuelve a analizar los archivos extraídos.
  • -B: Detecta firmas de firmware comunes.
  • -r: Usa una base de firmas personalizada.
  • -A: Realiza análisis de strings ASCII (similares a strings) y los resalta.
  • -D <tipo>:<cmd>: Define como extraer tipos de archivos específicos.
Por ejemplo, para analizar el archivo firmware.bin, extraer automáticamente lo que encuentre y analizar recursivamente lo extraído:

$ binwalk -eM firmware.bin

Strings
Es una herramienta que se utiliza para extraer cadenas de texto legibles desde archivos binarios.

$ strings <archivo>

Las opciones principales de strings son:
  • -n <n>/-<n>: Establece el mínimo de caracteres consecutivos para considerar una cadena (por defecto 4).
  • -t: Muestra la posición de la cadena en formato:
    • x: Hexadecimal.
    • d: Decimal.
    • o: Octal.
  • -e: define la codificación:
    • s: single-7-bit-bytes.
    • S: single-8-bit.
    • b: 16-bit big-endian.
    • l: 16-bit little-endian.
    • B o L.
  • -f: Muestra el nombre del archivo antes de cada cadena (útil si analizas varios archivos a la vez).
  • -a: Analiza todo el archivo, incluso si no es un ejecutable reconocido (modo completo).
Por ejemplo, este comando buscará cadenas de mínimo 5 caracteres, mostrara su offset en hexadecimal y analizara todo el archivo:

$ strings -n 5 -t x -a imagen.jpg

En la página de hacktricks página muy recomendable con información sobre las distintas técnicas de esteganografia.

Conclusión
Estas herramientas son básicas en cualquier kit de hacking ético o análisis forense. Utilizadas juntas, permiten detectar y extraer información oculta de forma eficiente.