← retour aux outils back to tools

# steghide

Outil de stéganographie pour cacher et extraire des données dans des fichiers JPEG, BMP, WAV et AU. Intègre des données chiffrées dans des fichiers image/audio de manière indétectable. Steganography tool for hiding and extracting data in JPEG, BMP, WAV, and AU files. Embeds encrypted data in image/audio files undetectably.

↗ https://steghide.sourceforge.net/

## Overview

steghide hides data inside image and audio files using steganographic techniques. The embedded data is encrypted (AES-128 by default) and compressed, making it difficult to detect without knowing the passphrase. Widely encountered in CTF challenges and used in covert data exfiltration.

## Basic Usage

Embed a file in an image

    steghide embed -cf cover.jpg -sf secret.txt

Embed with specific passphrase

    steghide embed -cf cover.jpg -sf secret.txt -p "passphrase"

Embed without compression

    steghide embed -cf cover.jpg -sf secret.txt -z 0

Extract hidden data from a file

    steghide extract -sf stego.jpg

Extract with passphrase

    steghide extract -sf stego.jpg -p "passphrase"

Show info about a file (without extracting)

    steghide info stego.jpg

## Embedding Options

Embed with high compression (1-9, default: 9)

    steghide embed -cf cover.jpg -sf secret.txt -z 9

Embed without encryption (just hide, don’t encrypt)

    steghide embed -cf cover.jpg -sf secret.txt -e none

    # Use specific encryption algorithm
    steghide embed -cf cover.jpg -sf secret.txt -e rijndael-128  # AES-128
    steghide embed -cf cover.jpg -sf secret.txt -e rijndael-256  # AES-256
    steghide embed -cf cover.jpg -sf secret.txt -e blowfish

Force embed (overwrite existing data)

    steghide embed -cf cover.jpg -sf secret.txt -f

## Extraction

Extract (will prompt for passphrase)

    steghide extract -sf stego.jpg

Extract without prompt (empty passphrase)

    steghide extract -sf stego.jpg -p ""

Save to specific output file

    steghide extract -sf stego.jpg -xf output.txt

Force overwrite output

    steghide extract -sf stego.jpg -f

## CTF — Cracking Steghide Passwords

Try empty password first

    steghide extract -sf image.jpg -p "" 2>/dev/null

Brute-force with stegcracker

    stegcracker image.jpg /usr/share/wordlists/rockyou.txt

Or use steghide-brute script

    python3 steghide-brute.py -f image.jpg -w rockyou.txt

    # Manual bash brute-force
    while IFS= read -r pass; do
        steghide extract -sf image.jpg -p "$pass" -f 2>/dev/null && echo "Found: $pass" && break
    done < /usr/share/wordlists/rockyou.txt

## Detection

Check if a file might contain hidden data

    steghide info suspect.jpg

→ Shows: capacity, encryption used, secret data size

stegsolve (GUI) for visual analysis stegdetect for statistical analysis

    stegdetect -t p suspect.jpg

Hexdump to look for anomalies

    xxd suspect.jpg | tail -20  # hidden data often appended

## Supported Formats

    Images:  JPEG, BMP
    Audio:   WAV, AU

## Tips

- Always try empty passphrase first in CTFs — many challenges forget to set one
- `steghide info` shows if data is hidden without extracting
- stegcracker is the fastest tool for dictionary attacks against steghide
- For PNG files, use zsteg or OpenStego instead — steghide doesn’t support PNG

Help / Man page

    steghide <command> [options]

    Commands:
      embed       Hide data in cover file
      extract     Extract hidden data
      info        Show info about file
      encinfo     List supported encryption algorithms
      version     Show version

    embed options:
      -cf FILE    Cover file (image/audio)
      -sf FILE    Secret file to hide
      -p PASS     Passphrase
      -e ALGO     Encryption algorithm
      -z LEVEL    Compression level (0-9)
      -f          Force (overwrite)

    extract options:
      -sf FILE    Stego file
      -p PASS     Passphrase
      -xf FILE    Output file
      -f          Force overwrite

## Vue d’ensemble

steghide cache des données dans des fichiers image et audio à l’aide de techniques stéganographiques. Les données intégrées sont chiffrées (AES-128 par défaut) et compressées, ce qui rend leur détection difficile sans connaître la phrase secrète. Fréquemment rencontré dans les challenges CTF et utilisé pour l’exfiltration de données discrète.

## Utilisation de base

    # Intégrer un fichier dans une image
    steghide embed -cf cover.jpg -sf secret.txt

    # Intégrer avec une phrase secrète spécifique
    steghide embed -cf cover.jpg -sf secret.txt -p "passphrase"

    # Intégrer sans compression
    steghide embed -cf cover.jpg -sf secret.txt -z 0

    # Extraire des données cachées d'un fichier
    steghide extract -sf stego.jpg

    # Extraire avec une phrase secrète
    steghide extract -sf stego.jpg -p "passphrase"

    # Afficher les infos d'un fichier (sans extraire)
    steghide info stego.jpg

## Options d’intégration

    # Intégrer avec une compression élevée (1-9, par défaut : 9)
    steghide embed -cf cover.jpg -sf secret.txt -z 9

    # Intégrer sans chiffrement (juste cacher, sans chiffrer)
    steghide embed -cf cover.jpg -sf secret.txt -e none

    # Utiliser un algorithme de chiffrement spécifique
    steghide embed -cf cover.jpg -sf secret.txt -e rijndael-128  # AES-128
    steghide embed -cf cover.jpg -sf secret.txt -e rijndael-256  # AES-256
    steghide embed -cf cover.jpg -sf secret.txt -e blowfish

    # Forcer l'intégration (écraser des données existantes)
    steghide embed -cf cover.jpg -sf secret.txt -f

## Extraction

    # Extraire (demandera la phrase secrète)
    steghide extract -sf stego.jpg

    # Extraire sans invite (phrase secrète vide)
    steghide extract -sf stego.jpg -p ""

    # Sauvegarder dans un fichier de sortie spécifique
    steghide extract -sf stego.jpg -xf output.txt

    # Forcer l'écrasement de la sortie
    steghide extract -sf stego.jpg -f

## CTF : casser les mots de passe steghide

    # Essayer d'abord le mot de passe vide
    steghide extract -sf image.jpg -p "" 2>/dev/null

    # Force brute avec stegcracker
    stegcracker image.jpg /usr/share/wordlists/rockyou.txt

    # Ou utiliser le script steghide-brute
    python3 steghide-brute.py -f image.jpg -w rockyou.txt

    # Force brute manuelle en bash
    while IFS= read -r pass; do
        steghide extract -sf image.jpg -p "$pass" -f 2>/dev/null && echo "Found: $pass" && break
    done < /usr/share/wordlists/rockyou.txt

## Détection

    # Vérifier si un fichier pourrait contenir des données cachées
    steghide info suspect.jpg

→ Affiche : capacité, chiffrement utilisé, taille des données secrètes

    # stegsolve (GUI) pour analyse visuelle, stegdetect pour analyse statistique
    stegdetect -t p suspect.jpg

    # Hexdump pour repérer des anomalies
    xxd suspect.jpg | tail -20  # les données cachées sont souvent ajoutées à la fin

## Formats supportés

    Images:  JPEG, BMP
    Audio:   WAV, AU

## Conseils

- Toujours essayer la phrase secrète vide en premier dans les CTF : de nombreux challenges oublient d’en définir une
- `steghide info` montre si des données sont cachées sans les extraire
- stegcracker est l’outil le plus rapide pour les attaques par dictionnaire contre steghide
- Pour les fichiers PNG, utiliser zsteg ou OpenStego à la place : steghide ne supporte pas le PNG

Aide / Page de manuel

    steghide <command> [options]

    Commands:
      embed       Hide data in cover file
      extract     Extract hidden data
      info        Show info about file
      encinfo     List supported encryption algorithms
      version     Show version

    embed options:
      -cf FILE    Cover file (image/audio)
      -sf FILE    Secret file to hide
      -p PASS     Passphrase
      -e ALGO     Encryption algorithm
      -z LEVEL    Compression level (0-9)
      -f          Force (overwrite)

    extract options:
      -sf FILE    Stego file
      -p PASS     Passphrase
      -xf FILE    Output file
      -f          Force overwrite