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