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 infoshows 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 infomontre 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