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:
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:
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 |
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:
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 |
3. Extrair a mensagem da imagem:
steghide extract -sf jardim-botanico.JPG |
4. Mostrar informações sobre os algoritmos de criptografia e modos suportados:
steghide encinfo |
É isso aí! No próximo artigo vamos abordar mais ferramentas de segurança. Até mais!
Show de bola, muito bacana o artigo. Obrigado!
Valeu Eduardo!
como extraio para .png? tem como fazer bruteforce?!