O que é o zsteg?

zsteg é uma ferramenta especializada em detectar esteganografia em arquivos PNG e BMP. Ele é especificamente projetado para encontrar dados ocultos usando várias técnicas de LSB (Least Significant Bit - Bit Menos Significativo).

Conceito por Trás do zsteg

O zsteg foca na esteganografia LSB, onde:

  • Bits menos significativos de cada byte de pixel são modificados
  • Alterações mínimas que são imperceptíveis ao olho humano
  • Múltiplas técnicas de codificação e ordenação de bits

Técnicas que o zsteg detecta:

  • LSB primeiro vs MSB primeiro
  • Diferentes planos de bits (1º, 2º, 3º bit, etc.)
  • Ordem de varredura dos pixels (linha por linha, coluna por coluna)
  • Combinações de canais de cor (R, G, B, Alpha)
  • Codificações como Base64, ZIP, etc.

Uso Básico

Alguns Exemplos

#Análise básica
zsteg imagem.png

#Testar todas as combinações possíveis (mais lento, mas completo)
zsteg -a imagem.png

#Ver apenas resultados positivos
zsteg -v imagem.png

#Extrair dados específicos
zsteg -E "b1,rgb,lsb" imagem.png > dados_extraidos.bin

Opções Principais

-a, --all                 #Testar todos os métodos conhecidos
-v, --verbose             #Mostrar mais informações
-c, --checksum            #Calcular checksum dos dados
-p, --prime               #Usar apenas varredura em primos
-t, --threshold           #Definir limite para detecção
--strings                 #Executar 'strings' nos dados extraídos

Análise com Exemplo

Comando:

zsteg -a caminho/para/arquivo.png

Saída do zsteg:

b1,r,lsb,xy         .. text: "FUXC2LJAFUWS2IBOFYWSALJOFYXC4LJAFYWS2IBOFYQC2LRAFYXC4IBNFYWS4LJN"

Decodificação:

FUXC2LJAFUWS2IBOFYWSALJOFYXC4LJAFYWS2IBOFYQC2LRAFYXC4IBNFYWS4LJN → you-wins-!

Técnicas de Esteganografia que o zsteg Detecta

1. LSB Básico

zsteg -a image.png | grep "lsb,xy"

2. LSB com Diferentes Planos de Bits

#b1 = primeiro bit, b2 = segundo bit, etc.
zsteg image.png | grep "b[1-8],"

3. Diferentes Canais de Cor

#r=vermelho, g=verde, b=azul, a=alpha, rgb=combinação
zsteg image.png | grep -E "r|g|b|a|rgb"

4. Ordens Diferentes

#xy = linha por linha, yx = coluna por coluna
zsteg image.png | grep -E "xy|yx"