# Introducción
La esteganografía es la técnica de ocultamiento de información, archivos multimedia o mensajes en otra pieza de información (imagen o audio) para pasar de desapercibida. A diferencia de la criptografía, está intenta que la información no sea visible de su existencia, mientras que la primera codifica la información sin importar que el intruso conozca la existencia de la misma. Los contenedores preferidos de los estenógrafos son los archivos multimedia (imágenes, audios, videos, documentos, etc) ya que, para empezar, suelen ser bastante grandes, lo que permite pasar desapercibido el tamaño del mismo. La información también se puede escribir mediante metadatos del archivo. Por ejemplo, una imagen esta compuesta por miles de píxeles y cada uno contiene información descriptiva, es decir, su color RGB. El formato RGB ocupa 24 bits de memoria en imágenes a color, lo que significa que dado el gran número de píxeles en imágenes, se pueden escribir muchos datos en ellos y extraerlos con herramientas especiales.

# STEGHIDE
Existen una variedad de herramientas de esteganografía disponibles, tanto para Windows como para GNU/Linux, pero su diferencia reside en los algoritmos que utiliza cada una para cifrar los datos. Steghide permite ocultar los datos en cualquier formato de imagen (jpg, png, gif, bmp) y también en audio (mp3, wav). Por defecto, utiliza el algoritmo Rijndael (AES), nombrado en otras oportunidades por su popularidad y su nivel fuerte de cifrado que hasta incluso la NSA lo aplica en documentos clasificados.
La principal ventaja de esta herramienta es que utiliza un proceso de cálculo propulsado para envolver el documento en cualquier registro de imagen o sonido sin cambiar la apariencia del documento, lo que implica que sin utilizar steghide es casi imposible extraer los documentos ocultos de la imagen.
Instalar herramienta en Debian:
$ sudo apt-get install steghide➤ Incrustar datos en una IMAGEN
Ocultaremos datos en una imagen con Steghide para que solo la persona pueda leerlo. Entonces, creamos el archivo o documento en el que escribiremos nuestro mensaje confidencial, y seleccionamos una imagen (puede ser cualquiera de internet, siempre y cuando la extensión sea compatible). Para lograr esto, ejecutamos el siguiente comando:
$ steghide embed -ef <archivoSECRETO> -cf <IMAGEN>ef = embedded file - archivo incrustado.
cf = cover file - archivo de cubierta.

➤ Extraer datos de la IMAGEN
En el ejemplo anterior, Steghide agrega una capa de seguridad adicional al permitirnos usar contraseña para ello. Ahora bien, para extraer los datos ocultos, ejecutamos lo siguiente:
$ steghide extract -sf <IMAGEN>sf = secret file - archivo secreto.

➤ Recuperar información del archivo incrustado
En caso de que sospechemos de que una imagen tiene datos ocultos y, de ser así, entonces utilizamos el siguiente comando:
$ steghide info <IMAGEN>
Archivo: test.txt
Tipo de encriptación: Rijndael (AES) con longitud de bloque de 128 bits.
➤ Algoritmo de Cifrado
Podemos escoger el tipo de algoritmo de cifrado para ocultar nuestros datos. Steghide contiene una lista de los algoritmo que soporta.
$ steghide --encinfo
Para escogerlo, se puede lograr fácilmente con solo usar el siguiente comando:
$ steghide embed -ef <ARCHIVO> -cf <IMAGEN> -e <ALGORITMO>
➤ Sobrescribir los archivos existentes
Al extraer el archivo, aún nos queda el mismo archivo en el directorio con el mismo nombre. Entonces lo mejor sería utilizar el siguiente comando para sobrescribir el archivo existente:
$ steghide extract -sf <IMAGEN> -f 
➤ Modo de Comprensión
Si lo deseas, puedes comprimir el archivo antes de ocultarlo. El nivel de compresión varia 1 y 9, el primer nivel brinda velocidad de comprensión mientras que, en el noveno nivel, te proporciona mejores técnicas de comprensión.
$ steghide embed -ef <ARCHIVO> -cf <IMAGEN> -z 5
➤ Modo de Anti-Comprensión
Ahora, si no queremos comprimir un archivo antes de ocultarlo, utilizamos el siguiente comando:
$ steghide embed -ef <ARCHIVO> -cf <IMAGEN> -Z➤ Modo Detallado
Mostrar información muy detallada sobre el estado del proceso de adjuntado o del de extracción.
$ steghide embed -v -ef <ARCHIVO> -cf <IMAGEN>
➤ Incrustar archivo sin nombre
A su vez, también podemos ocultar el archivo sin necesidad de nombrarlo. Si se usa esta opinión, el extractor necesitará declarar un nombre de archivo para decirle a steghide en donde escribiremos los datos adjuntos.
$ steghide embed -ef <ARCHIVO> -cf <IMAGEN> -N
xf = Esta opción sobrescribe el nombre del archivo adjuntado en el archivo stego.
# ➤ Incrustar datos en una pista de AUDIO
Ahora, en vez de ocultar los datos en una imagen, lo haremos en un audio de formato WAV:
$ steghide embed -ef <ARCHIVO> -cf <AUDIO.wav>
➤ Extraer datos de la pista de AUDIO
Por último, extraemos los datos:
$ steghide extract -sf <AUDIO.wav>
Tanto la imagen como el audio pueden ser ejecutados sin generar sospecha alguna.