Esteganografia

Conceitos Básicos Sobre Imagens

  • Uma imagem é composta de X linhas e Y colunas;

  • O ponto das coordenadas [a, b] com 0⩽a <X e 0⩽b <Y, é chamado de Pixel;

  • Pixel representa o menor elemento endereçável de uma imagem;

  • Cada Pixel é associado a uma cor, geralmente composta em 3 cores principais (vermelho, verde e azul), que chamamos de RGB (Red, Green e Blue). As intensidades dessas cores, podem variar de 0 a 255, sendo o Branco representado por 255,2555,255 e o Preto por 0,0,0.

  • Cada Pìxel, ocupa 3 bytes de memória, 1 para cada componente principal (daí o valor máximo de 255)

  • Um byte consiste em 8 bits, representando um número binário, como 1010 0101. O valor mais alto que um byte pode receber é 1111 1111, que equivale a 255 em decimal

Magic Numbers

Os Magic Numbers (Números Mágicos) são os 8 primeiros bytes do arquivos (como um cabeçalho), que define o tipo do arquivo. O Magic Number de um arquivo ELF é 0x7F 0x45 0x4C 0x46, que pode ser convertido no Python com o seguinte comando:

python -c 'print "\x7F\x45\x4C\x46"' > <output>

Para gerar um arquivo GIF, podemos utilizar o comando:

echo 'GIF8;sdcsd' > <output.gif>

Chunk (Arquivos PNG)

São esses alguns chunks críticos: IHDR = Image Header. Este é o primeiro pedaço PLTE = Palette Table. Este é um pedaço opcional IDAT = Chunk de dados da imagem. As informações de pixels está contida aqui IEND = Trailer. Marca o final do fluxo de dados PNG

DICA: Um método comum de ocultar flags, é colocar mensagens após o bloco IEND. Os dados adicionados após este bloco não mudarão nada além do tamanho do arquivo

Podemos criar um arquivo com o cabeçalho PNG utilizando o comando:

LSB

Hexdump

Strings

Pegando todas as strings de uma imagem

PARÂMETRO

DESCRIÇÃO

-n

Quantidade mínima de caracteres por linha

-t

Posição da string retornada

Encodando strings

Exiftool

Também podemos uma thumb diferente da imagem que vimos quando abrimos em seu tamanho real. Então pdoe ser útil fazer da imagem thumb, uma imagem maior.

StegSolve

Ferramenta GUI desenvolvida em JAVA com diversos recurso para esteganografia em imagens

BinWalk

Removendo arquivos ocultos incorporados em um arquivo (trabalha com outros tipos de arquivo). Assim que extração for concluída, será criado um diretório chamado _<filename>.

PngCheck

Procura por partes quebradas opcionais/corretas. Isso é útil se a imagem parecer corrompida

PARÂMETRO

DESCRIÇÃO

-v

Verbose

t / 7

Para exibir pedaços de textos

p

Exibe conteúdo de mais pedaços adicionais

f

Força a continuação mesmo após retornar alguns erros

Steghide

zbarimg

Realiza scan e decode de código de barras e QR Code.

Stegbrute

steg_brute

Change_Pallet.py

Gerando várias imagens alterando sua paleta de cores

Zsteg

Extraindo dados ocultos (utilize somente em imagens PNG e BMP)

OBS: Para instalar, basta baixar e executar o comando sudo gem install zsteg.

Steganography

Exploração de Planos de Cores e Bits

As imagens podem ser ocultadas dentro dos planos de cores/bits. Na seção de sites (no fim da desta página) temos o site georgeom, que nos permites alterar os Bits/Cores

Sites

Last updated

Was this helpful?