Steghide – Esteganografia no Linux (esconder dados em imagens e outros arquivos)

Esteganografia com steghide

O steghide é um software para esteganografia, que roda em Linux, e que pode ser utilizado para ocultar dados secretos em diversos tipos de arquivos de áudio e imagens.
Com o steghide é possível comprimir os dados incorporados, além de criptografá-los e realizar verificação de integridade por meio de checksums.
Os formatos de arquivo portador suportados pelo steghide são os seguintes: JPEG, BMP, WAV e AU.

Sintaxe do steghide:

steghide comando [argumentos]

Comandos principais:

embed, --embed
Incorporar os dados secretos em um arquivo portador, criando um arquivo
esteganografado.

extract, --extract
Extrair os dados secretos de um arquivo esteganografado

info, --info
Mostrar informações sobre um arquivo (portador ou esteganografado)

encinfo, --encinfo
Mostrar uma lista de algoritmos de criptografia e os modos que podem ser
usados. Não precisa de argumentos.

version, --version
Mostrar informações resumidas da versão do softrware.Também Não precisa
de argumentos.

license, --license
Mostrar a licença do steghide. Não precisa de argumentos.

help, --help
Mostrar a ajuda. Não precisa de argumentos.

Para ocultar uma mensagem em um arquivo de imagem ou som, usamos o comando embed
seguido dos argumentos apropriados. Os principais argumentos são os seguintes:

-ef, --embedfile arquivo
Especificar o arquivo que será incorporado ou seja, o arquivo que contém
a mensagem secreta. Se este argumento for omitido ou o nome do arquivo for o caractere
-, os dados secretos serão lidos diretamente da entrada padrão (teclado).

-cf, --coverfile arquivo
Especificar o arquivo portador que será usado para incorporar os dados
secretos. Esse arquivo deve estar em um dos formatos a seguir: AU, BMP,
JPEG ou WAV. Se este argumento for omitido ou o nome do arquivo for o
caractere -, o steghide lerá o arquivo portador a partir da entrada padrão.

-sf, --stegofile nome_arquivo
Especificar o nome para o arquivo esteganografado que será criado. Se
não for especificado um nome, então os dados secretos serão incorporados diretamente
no arquivo portador sem salvá-lo com outro nome.

-e, --encryption algoritmo [ modo ] | modo [ algoritmo ]
Especificar os parâmetros de criptografia. Esta opção deve ser seguida
por uma ou duas strings que identifiquem um algoritmo de criptografia e/ou modo. Use o
comando encinfo para obter os nomes de todos os algoritmos de criptografia disponíveis
e modos suportados. A criptografia padrão é a Rijndael-128 (AES), no modo CBC. Caso
você não queira usar criptografia, use o argumento -e none

-z, --compress nível
Especificar o nível de compressão. O nível de compressão pode ser
qualquer número entre 1 e 9, onde 1 significa mais velocidade e 9 significa melhor
compressão.

-Z, --dontcompress
Não comprimir os dados secretos antes de incorporá-los.it.

-K, --nochecksum
Não embutir um checksum CRC32 checksum.

-N, --dontembedname
Não embutir o nome do arquivo que contém a mensagem secreta. Ao usarmos
essa opção, o extrator precisará especificar um nome de arquivo para que o steghide
saiba onde escrever os dados.

Para extrairmos uma mensagem oculta de um arquivo esteganografado usamos o comando
extract, que possui os argumentos a seguir:

sf, --stegofile arquivo
Especificar o arquivo esteganografado (que contém os dados secretos
embutidos). Se este argumento for omitido ou o nome do arquivo for o caractere -, o
steghide lerá o arquivo esteganografado a partir da entrada padrão.

-xf, --extractfile arquivo
Permite criar um arquivo com o nome fornecido e então escrever os dados
secretos que estão embutidos no arquivo esteganografado nesse arquivo. Se este
argumento for omitido, os dados incorporados serão salvos no diretório atual com seu
nome original.

Opções comuns
Há algumas opções comuns que podem ser usadas em conjunto com todos os comandos
(obviamente quando a operação for aplicável). São elas:

-p, --passphrase string
Usar a string como passphrase. Se a passphrase contiver espaços, use aspas para envolvê-la toda, como no exemplo -p "esta é minha passphrase".

-v, --verbose
Mostrar informações detalhadas sobre o status do processo de incorporação ou extração dos dados.

-q, --quiet
Não mostrar mensagens informativas.

-f, --force
Sempre sobrescrever arquivos existentes.

Instalação do steghide:

Para instalar o programa use o comando a seguir (sistemas Debian e derivados; estou usando o Kali Linux):

apt-get install steghide

Exemplos de uso:

Vamos a alguns exemplos do uso do steghide. Para isso vou usar uma fotografia do Jardim Botânico de São Paulo, em um arquivo de nome jardim-botanico.JPG, que pode ser vista a seguir, como imagem portadora da mensagem oculta:

Jardim Botânico de São Paulo

Podemos ver do lado direito da tela as propriedades da imagem, que compararemos posteriormente com a imagem esteganografada. A mensagem que irei incorporar será salva em um arquivo de nome "mensagem.txt", no mesmo diretório da imagem, e tem o conteúdo a seguir (citação de Carl Sagan):

Saber muito não lhe torna inteligente. A inteligência se traduz na forma que você recolhe, julga, maneja e, sobretudo, onde e como aplica esta informação.

Vamos aos comandos.

1. Ocultar a mensagem na imagem:

steghide embed -cf jardim-botanico.JPG -ef mensagem.txt

Steghide no Linux - ocultando mensagem

Mensagem ocultada na imagem. Caso queira criar uma nova imagem com mensagem oculta sem alterar a imagem original, basta acrescentar a opção -sf seguida do nome desejado para o novo arquivo:

steghide embed -cf jardim-botanico.JPG -ef mensagem.txt -sf novo-arquivo.JPG

Vamos ver as propriedades da imagem agora:

Jardim Botânico - Esteganografia com steghide no Linux

Note que a imagem aparentemente continua a mesma, sendo impossível detectar qualquer alteração somente olhando para ela. A única diferença em relação à imagem original é que o tamanho do arquivo mudou - era 51,7 KB e agora é de 51,8 KB.

2. Obter informações sobre o arquivo esteganografado (pressione "y" quando solicitado e informa a passphrase para obter informações sobre a mensagem embutida):

steghide info jardim-botanico.JPG

Obtendo dados de um arquivo esteganografado com steghide no Linux

3. Extrair a mensagem da imagem:

steghide extract -sf jardim-botanico.JPG

Steghide no Linux Kali - Extraindo dados secretos

4. Mostrar informações sobre os algoritmos de criptografia e modos suportados:

steghide encinfo

Steghide - Algoritmos de criptografia e modos suportados

 

É isso aí! No próximo artigo vamos abordar mais ferramentas de segurança. Até mais!

Sobre Fábio dos Reis (1199 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

3 Comentários em Steghide – Esteganografia no Linux (esconder dados em imagens e outros arquivos)

  1. Eduardo Dieguez // 27/05/2016 em 21:01 // Responder

    Show de bola, muito bacana o artigo. Obrigado!

  2. como extraio para .png? tem como fazer bruteforce?!

Escreva um comentário

Seu e-mail não será divulgado


*