O que é Esteganografia?
No mundo de hoje, onde são trafegados números exacerbantes de informações a cada segundo em redes internas e externas, se tornou cada vez mais difícil manter essas informações em perfeita segurança e ocultá-las de hackers e de espiões do governo que tendem cada vez mais interceptá-las. Portanto, o uso da criptografia simétrica e assimétrica com algoritmos cada vez mais sofisticados tem ganho um valor inimaginável no mercado, e a esteganografia, que se baseia na técnica de esconder texto e informações criptografadas ou não dentro de imagens, áudios e vídeos tem chamado cada vez mas a atenção de pesquisadores.No quesito imagens digitais, podemos classificá-las em dois meios, sendo eles os vetoriais que são imagens constituídas de definições geométricas em um sistema de coordenadas cartesianas e as Bitmaps, que são definidas por ser uma matriz de pontos de pixels, como as imagens PNG, JPG e GIFS animados ou não.
Nessas imagens bitmaps, as cores são representadas normalmente dentro do padrão RGB, famoso Red, Green e Blue, sistema de cores que usam os padrões vermelhos, verdes e azuis para compor a sua gama de cores.
Cada um dos três tons de cor dentro do padrão RGB é composto por uma pixel, que por sua vez é composto por um inteiro de 8 bits, que por sua vez proporciona 2^24 cores possíveis, cerca de 16 milhões de cores possíveis com 24 bits por píxel descendente do padrão, e algumas extensões como o GIF e PNG permitem transparência em imagens, chamamos isso de camada ALFA do Bitmap, inclusive muito obrigado Rafael Alencar pela explicação.
O principio da esteganografia é pegar alguns desses bits gerados pelo padrão, os menos importantes possíveis e convertê-los em bits do arquivo de texto, de forma que o mapa desses bits seja somente revelado a partir do algoritmos de uma senha. Esse bit é conhecido como LSB (Least Significant Bit), ou o bit menos significante da cadeia, normalmente o primeiro bit da direita com menos valor, que quando é trocado, normalmente só altera o valor de uma unidade, causando o menos de perda possível na imagem original e por ser de menos valor, o torna o mais aconselhável possível na hora de aplicar um algoritmo de esteganografia.
É meio chover no molhado quando digo que a qualidade da imagem deriva de acordo com a quantidade de pixels da mesma, portanto quando acontece o processo de esteganografia, não ocorre a mudança de tamanho do arquivo, porque não foram inseridos bits extras dentro a imagem, apenas trocaram seus valores, como apresentado no artigo a seguir.
Vamos fazer um pequeno lab utilizando uma ferramentinha chamada steghide para esconder alguns dados dentro de uma imagem aleatória. Ela é Open Source e é capaz e introduzir dados dentro de arquivos de imagens de audio.
Site do Projeto: http://steghide.sourceforge.net/
Instalando o Steghide
O Steghide está na maioria dos grandes repositórios da maioria das distribuições, ele pode ser baixado diretamente do site do projeto também.
# sudo apt-get install steghide // Debian Distros
# sudo yum install steghide // Fedora, CentOS/RHEL
Helper --help
root@fidelis:/home/matheus# steghide --help
steghide version 0.5.1
the first argument must be one of the following:
embed, --embed embed data
extract, --extract extract data
info, --info display information about a cover- or stego-file
info <filename> display information about <filename>
encinfo, --encinfo display a list of supported encryption algorithms
version, --version display version information
license, --license display steghide's license
help, --help display this usage information
embedding options:
-ef, --embedfile select file to be embedded
-ef <filename> embed the file <filename>
-cf, --coverfile select cover-file
-cf <filename> embed into the file <filename>
-p, --passphrase specify passphrase
-p <passphrase> use <passphrase> to embed data
-sf, --stegofile select stego file
-sf <filename> write result to <filename> instead of cover-file
-e, --encryption select encryption parameters
-e <a>[<m>]|<m>[<a>] specify an encryption algorithm and/or mode
-e none do not encrypt data before embedding
-z, --compress compress data before embedding (default)
-z <l> using level <l> (1 best speed...9 best compression)
-Z, --dontcompress do not compress data before embedding
-K, --nochecksum do not embed crc32 checksum of embedded data
-N, --dontembedname do not embed the name of the original file
-f, --force overwrite existing files
-q, --quiet suppress information messages
-v, --verbose display detailed information
extracting options:
-sf, --stegofile select stego file
-sf <filename> extract data from <filename>
-p, --passphrase specify passphrase
-p <passphrase> use <passphrase> to extract data
-xf, --extractfile select file name for extracted data
-xf <filename> write the extracted data to <filename>
-f, --force overwrite existing files
-q, --quiet suppress information messages
-v, --verbose display detailed information
options for the info command:
-p, --passphrase specify passphrase
-p <passphrase> use <passphrase> to get info about embedded data
To embed emb.txt in cvr.jpg: steghide embed -cf cvr.jpg -ef emb.txt
To extract embedded data from stg.jpg: steghide extract -sf stg.jpg
Escondendo uma texto dentro de uma imagem JPG
Antes de mais nada, por default a ferramenta não tem suporte para imagens do tipo PNG, portanto você pode utilizar a ferramenta Convert para realizar converter o png em jpg rapidamente. Fizemos um post sobre ela, caso queira saber mais. # convert pic.png pic.jpg
para converter é só passar a imagem como parâmetro -cf 'coverfile' e o texto a ser encriptado no parâmetro -ef 'embedfile'.
# steghide embed -cf pic.jpg -ef texto.txt
Você vai precisar inserir uma senha para encriptar a imagem, no caso a extração correta só poderá acontecer caso você tenha a mesma. Depois disso, será gerada uma nova imagem com o conteúdo sobrescrito dentro dos bits da mesma.Extraindo o arquivo encriptado
Para extrair o arquivo encriptado dentro da imagem que geramos, precisamos utilizar o parâmetro -sf, onde precisaremos informar a senha que utilizamos na criptografia. Mas e aí, como vamos saber se o arquivo que utilizamos abrindo é o mesmo? Antes de extrair podemos consultar o parâmetro info para saber o conteúdo encriptado # steghide --info pic.jpg
Para extrair é simples, como foi dito anteriormente, é só utilizar o extract -sf e informar a senha de criptografia que criamos de antemão para termos acesso a mensagem # steghide extract -sf pic.jpg
Como identificar imagens modificadas?
Como dissemos, não há um aumento muito significativo no tamanho da imagem dependendo a quantidade de bits, porém a assinatura MD5 do arquivo muda por conta da soma das hashs. Você mesmo pode comprovar. Criei um arquivo original.jpg e uma cópia dele chamada modificado.jpg e comparei as duas hashs dos arquivos. Dentro o modificado.jpg eu inseri um texto criptografado e comparei as duas hashes novamente. Note que não são mais as mesmas. Esse é um jeito bem simples de comparar autenticidade de arquivos, porém existem muitos outros softwares e técnicas forense para identificar essas modificações:)
QUE SISTEMA ESTAS UTILIZANDO ?? QUE SISTEMA TAS A UTILIZAR PARA ESTE TUTORIAL????
ResponderExcluirDebian 8 Jessie.
ExcluirPara instalar Steghide no Arch Linux, apenas digite: sudo pacman -S steghide
ResponderExcluirOpa, obrigado pela contribuição Elite Linux!!!
ExcluirQue artigo perfeito! Parabéns pelo conteúdo, brother! Hehehe
ResponderExcluirBom dia a todos que estão lendo esta mensagem
ResponderExcluirse você está passando por momentos difíceis ou pobreza
se você tem dívidas e precisa de ajuda urgente para pagá-las
se você precisa de dinheiro para iniciar um negócio ou para qualquer situação importante
Então aconselho você a solicitar o cartão master/ATM já carregado, com este cartão master/ATM você pode fazer saques grátis de até $67.000,00 dólares todas as semanas de 6 meses a 3 anos dependendo dos meses/anos que você precisa. Eu usei esse cartão master/ATM e gosto que você também use e seja feliz. Para obter este cartão master / ATM, entre em contato com o e-mail para respostas imediatas thomasunlimitedhackers@gmail.com