# Exif

### Manipulação da Ferramenta Exif

### Metadados

* São informações que descrevem outros dados. Eles fornecem detalhes sobre o conteúdo, estrutura, contexto e características de um arquivo ou conjunto de dados. Metadados são amplamente utilizados em vários tipos de arquivos, como imagens, documentos, áudios, vídeos e outros tipos de mídia.

### Exif (Exchangeable Image File Format)

* Exif é um formato específico de metadados utilizado em arquivos de imagem, especialmente em fotografias digitais. O padrão Exif foi criado para incluir informações técnicas e descritivas sobre as fotos tiradas com câmeras digitais.

### Tipos de Metadados EXIF Registrados nas Fotos:

* **Data e Hora**: a maioria das câmeras digitais registra a data e a hora na captura.
* **Localização Física**: câmeras com GPS podem georreferenciar fotos com coordenadas exatas.
* **Dimensões**: resolução, compactação, largura e altura da imagem.
* **Configurações da Câmera**: velocidade do obturador, tempo de exposição, abertura, ISO, orientação da câmera e uso de flash.
* **Informações da Câmera**: marca, modelo, número de série e tipo de lente utilizada.

### ExifTool

* Criado por Phil Harvey, ExifTool é uma ferramenta poderosa para ler, escrever e editar metadados em arquivos de imagem, áudio e vídeo.
* Muito utilizado por fotógrafos, desenvolvedores e profissionais de TI.
* Na cibersegurança, tem grande importância na análise forense digital e investigação de incidentes.

### Principais Características

* Suporta diversos formatos: JPEG, PNG, TIFF, MP4, MP3, WAV, PDF, etc.
* Permite manipulação de metadados:
  * Edição
  * Renomeação de arquivos
  * Extração de informações
  * Automação e scripts
  * Uso via linha de comando ou interface gráfica

### ExifTool na Cibersegurança

* **Análise Forense Digital**:
  * Identificação de informações cruciais
  * Detecção de manipulações
* **Mitigação de Riscos**:
  * Prevenção de vazamento de informações
  * Limpeza de metadados
* **Análise de Malware**:
  * Investigação de metadados em arquivos maliciosos
* **Compliance e Auditoria**:
  * Verificação de metadados
  * Auditoria de arquivos

### Exemplos de Uso

* **Visualizar metadados de uma imagem**:

  ```bash
  exiftool imagem.jpg
  ```
* **Adicionar metadados personalizados**:

  ```bash
  exiftool -Artist="Nome do Artista" imagem.jpg
  ```
* **Modificar a data de captura**:

  ```bash
  exiftool -DateTimeOriginal="2024:01:01 12:00:00" imagem.jpg
  ```
* **Remover todos os metadados**:

  ```bash
  exiftool -all= imagem.jpg
  ```
* **Esconder mensagens dentro dos metadados**:

  ```bash
  exiftool -Comment="Mensagem secreta" imagem.jpg
  ```
* **Comparar metadados de arquivos**:

  ```bash
  exiftool -G -a -u arquivo_original.jpg > metadados_original.txt
  exiftool -G -a -u arquivo_modificado.jpg > metadados_modificado.txt
  diff metadados_original.txt metadados_modificado.txt
  ```

### Automação e Scripts

* **Renomear arquivos com base em metadados**:

  ```bash
  #!/bin/bash
  DIR="/caminho/para/imagens"
  exiftool -d "%Y%m%d_%H%M%S" "-FileName<DateTimeOriginal" "$DIR"/*.jpg
  ```
* **Extrair informações de GPS**:

  ```bash
  #!/bin/bash
  DIR="/caminho/para/imagens"
  OUTPUT="gps_info.csv"
  echo "Filename,Latitude,Longitude" > $OUTPUT
  for FILE in "$DIR"/*.jpg; do
    LAT=$(exiftool -n -p '$GPSLatitude' "$FILE")
    LON=$(exiftool -n -p '$GPSLongitude' "$FILE")
    if [[ ! -z "$LAT" && ! -z "$LON" ]]; then
      echo "$(basename "$FILE"),$LAT,$LON" >> $OUTPUT
    fi
  done
  ```
* **Backup automático baseado na data de captura**:

  ```bash
  #!/bin/bash
  SRC_DIR="/caminho/para/imagens"
  BACKUP_DIR="/caminho/para/backup"
  exiftool '-Directory<DateTimeOriginal' -d "$BACKUP_DIR/%Y/%m/%d" "$SRC_DIR"/*.jpg
  ```
* **Conversão de formato preservando metadados**:

  ```bash
  #!/bin/bash
  DIR="/caminho/para/imagens"
  for FILE in "$DIR"/*.jpg; do
    BASENAME=$(basename "$FILE" .jpg)
    exiftool -tagsfromfile "$FILE" -all:all -ext png "$DIR"/"$BASENAME".png
  done
  ```

### Exemplos Práticos

1. **Medium-Steg-Image**:
   * [Ocean.jpg](https://github.com/mkmety/Medium-Steg-Image/blob/master/ocean.jpg)
2. **DownUnder CTF 2023 Write-up: Excellent Vista!**

   * [Imagem do Desafio](https://github.com/DownUnderCTF/Challenges_2023_Public/blob/main/osint/excellent-vista/publish/ExcellentVista.jpg)

   **Etapas do Desafio:**

   * Baixar a imagem "ExcellentVista.jpg"
   * Executar `exiftool ExcellentVista.jpg` para visualizar metadados
   * Identificar informações úteis, incluindo data, configurações e coordenadas GPS
   * Converter as coordenadas GPS para graus
   * Pesquisar no Google Maps para identificar o local
   * Montar a flag `DUCTF{Durrangan Lookout}`

### Referências

* [O que são dados EXIF? - Tecnoblog](https://tecnoblog.net/responde/o-que-sao-dados-exif-de-fotos-e-como-encontra-los-ou-esconde-los/)
* [Desafios OSINT - Medium](https://medium.com/@0xMr_Robot/downunder-ctf-2023-osint-challenges-55fd8765a3a0)
