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.
$ 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.