ZIP Disfarçado: Lendo os Magic Bytes do Arquivo em Vez da Extensão

Forense Digital & Resposta a Incidentes Nível 3/4 ~5 min 8 de julho de 2026

O desafio

Um analista extraiu report.pdf do notebook de um suspeito, mas ele nunca abre num leitor de PDF. Abra-o no visualizador hexadecimal, compare os primeiros bytes com as assinaturas de referência e digite o formato real do contêiner.

O que você vai aprender

  • Ler os primeiros bytes de um arquivo em um visualizador hexadecimal e reconhecer uma assinatura de arquivo conhecida
  • Associar a assinatura 50 4B 03 04 ('PK') à família de contêineres ZIP
  • Explicar por que a extensão de um arquivo é metadado e os magic bytes são a verdade absoluta
  • Reconhecer que documentos do Office e APKs são, por baixo, contêineres ZIP
  • Descartar PDF, RAR e 7-Zip comparando suas assinaturas iniciais distintas

Habilidades testadas

Identificação de assinatura de arquivo / magic bytesLeitura de cabeçalho hexadecimalTriagem de tipo de arquivo durante resposta a incidentes

Pré-requisitos

  • Familiaridade com a leitura de valores de bytes em hexadecimal
  • Consciência de que a extensão de um arquivo pode ser alterada livremente sem modificar o conteúdo

Como funciona

Todo formato de arquivo comum começa com uma sequência fixa de bytes chamada de número mágico ou assinatura. O sistema operacional e a maioria dos visualizadores, porém, decidem qual aplicativo abrir com base na extensão do arquivo, um dado de metadado no nome que qualquer usuário pode renomear em segundos. É exatamente essa brecha que este desafio explora: um arquivo chamado report.pdf cujo conteúdo real não é um PDF.

Um PDF genuíno começa com os bytes ASCII 25 50 44 46, que formam %PDF. O arquivo à sua frente, no entanto, começa com 50 4B 03 04. Os dois primeiros bytes, 50 4B, são o ASCII PK, as iniciais de Phil Katz, criador do formato ZIP, e 03 04 é o marcador de cabeçalho de arquivo local. Essa sequência de quatro bytes é a assinatura inconfundível de um arquivo ZIP.

Isso importa muito além de arquivos renomeados. Documentos modernos do Office (.docx, .xlsx, .pptx), JARs Java e APKs do Android são todos contêineres ZIP usando uma extensão diferente. Um defensor que confia na extensão vai classificar mal todos eles. A ação confiável é sempre a mesma: abrir o cabeçalho e ler os magic bytes.

Erros comuns

  • Confiar na extensão. Presumir que report.pdf é um PDF só porque o nome diz isso. O nome é metadado; os bytes são o arquivo.
  • Interpretar mal 50 4B como 'PK ilegível'. Ignorar a coluna ASCII, onde 50 4B claramente aparece como PK, o sinal revelador da família ZIP.
  • Confundir ZIP com RAR ou 7-Zip. O RAR começa com 52 61 72 21 ('Rar!') e o 7-Zip começa com 37 7A BC AF; apenas 50 4B 03 04 é ZIP.
  • Parar em 'é um arquivo compactado'. O enunciado pede o formato de contêiner específico, e a assinatura aponta para apenas um: ZIP.

Como se proteger

Detecção e triagem devem se basear no conteúdo, não no nome do arquivo, e uploads precisam ser validados pelo tipo real antes de serem armazenados ou processados.

  • Use um identificador baseado em conteúdo (uma verificação no estilo libmagic) em todo arquivo enviado ou colocado em quarentena, em vez de confiar na extensão.
  • Em uma allow-list de upload, verifique se os magic bytes correspondem ao tipo declarado e rejeite as inconsistências, já que ZIP disfarçado de PDF é um truque clássico de contrabando.
  • Trate qualquer assinatura da família ZIP (50 4B 03 04) com extensão que não seja de arquivo compactado como suspeita e encaminhe para inspeção mais profunda.
  • Ao descompactar arquivos desconhecidos, faça isso em uma sandbox e proteja-se contra path traversal (Zip Slip) dentro das entradas.

Solução completa

Membros Pro e Max desbloqueiam o passo a passo completo.

Assinar Pro

Estatísticas da comunidade

79 resoluções
76% taxa de sucesso
Vicusol Primeiro sangue

Hacks de hoje relacionados

24.000+ Hackers 100+ Labs & Cursos Grátis
Comece Grátis