O que é o ExifTool?

ExifTool é uma aplicação de linha de comando e biblioteca Perl para ler, escrever e editar metadados em arquivos. É uma ferramenta que suporta uma vasta gama de formatos de arquivo.

Conceito por Trás dos Metadados

Metadados são "dados sobre dados" - informações embutidas nos arquivos que descrevem suas características:

  • Informações técnicas: dimensões, resolução, configurações da câmera
  • Informações descritivas: título, autor, comentários, palavras-chave
  • Informações administrativas: datas de criação, software usado, direitos autorais
  • Dados de localização: coordenadas GPS, altitude

Detalhes de Uso com Exemplos

1. Ler todos os metadados de um arquivo

exiftool imagem.jpg

2. Ler metadados específicos

exiftool -Título -Autor -Data arquivo.jpg

3. Escrever/alterar metadados

exiftool -Título="Minha Foto" -Autor="João Silva" imagem.jpg

4. Remover todos os metadados

exiftool -all= arquivo.jpg

5. Remover metadados específicos

exiftool -GPS*= arquivo.jpg  # Remove dados de localização

6. Extrair apenas comentários

exiftool -Comment arquivo.jpg

7. Trabalhar com múltiplos arquivos

exiftool -Data *.jpg                    # Todos os JPEGs
exiftool -Título -Autor pasta/*.png     # Múltiplos atributos

8. Salvar saída em arquivo

exiftool foto.jpg > metadados.txt

Casos de Uso

1. Forense Digital

#Verificar autenticidade de imagens
exiftool -CreateDate -ModifyDate -Software imagem_suspeita.jpg

#Buscar por dados sensíveis
exiftool -GPS* fotos/*.jpg  # Localização GPS

2. OSINT (Open Source Intelligence)

#Extrair informações de imagens de redes sociais
exiftool foto_perfil.jpg | grep -i "camera\|model\|software"

3. CTFs e Pentesting

#Buscar flags escondidas em metadados
exiftool arquivo_desafio.jpg | grep -E "flag|comment|description"

#Verificar todos os campos possíveis
exiftool -a -u -g1 arquivo.jpg

4. Privacidade

#Limpar metadados antes de compartilhar fotos
exiftool -all= -overwrite_original foto.jpg

Exemplo Prático de CTF

Cenário comum:

#1. Baixar imagem do desafio
wget http://ctf.example.com/challenge.jpg

#2. Analisar metadados básicos
exiftool challenge.jpg

#3. Se nada for encontrado, verificar todos os campos
exiftool -a -u -g1 challenge.jpg

#4. Procurar por strings específicas
exiftool challenge.jpg | grep -i "flag\|secret\|key\|password"

#5. Extrair thumbnails embutidos
exiftool -b -ThumbnailImage challenge.jpg > thumbnail.jpg

Comandos avançados úteis:

#Listar todos os grupos de metadados
exiftool -g1 -s arquivo.jpg

#Extrair metadados em formato JSON
exiftool -json arquivo.jpg

#Verificar estrutura hexadecimal
exiftool -v -s arquivo.jpg | less

#Buscar por strings em todos os campos
exiftool -a arquivo.jpg | strings | grep "padrão"

Uso Prático

Comando executado:

exiftool nothing.png

Saída analisada:

ExifTool Version Number         : 13.30           #Versão do ExifTool
File Name                       : nothing.png     #Nome do arquivo
Directory                       : /path/to/file   #Localização
File Size                       : 675 bytes       #Tamanho
File Modification Date/Time     : 2025:06:06 16:04:24-03:00
File Access Date/Time           : 2026:06:06 16:04:24-03:00
File Inode Change Date/Time     : 2025:06:06 16:04:24-03:00
File Permissions                : -rw-r--r--      #Permissões
File Type                       : PNG             #Tipo de arquivo
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 300            #Largura em pixels
Image Height                    : 100            #Altura em pixels
Bit Depth                       : 8              #Profundidade de cor
Color Type                      : RGB            #Espaço de cor
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Comment                         : FLAG{welcome_to_the_red_team}  #FLAG!
Image Size                      : 300x100
Megapixels                      : 0.030          #Resolução em megapixels

Flag Identificada:

Comment: FLAG{welcome_to_the_red_team}