Image Steganography
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Τα περισσότερα CTF image stego καταλήγουν σε μία από τις παρακάτω κατηγορίες:
- LSB/bit-planes (PNG/BMP)
- Metadata/comment payloads
- PNG chunk weirdness / corruption repair
- JPEG DCT-domain tools (OutGuess, etc)
- Frame-based (GIF/APNG)
Γρήγορη αξιολόγηση
Δώστε προτεραιότητα σε στοιχεία επιπέδου container πριν από βαθιά ανάλυση περιεχομένου:
- Επικυρώστε το αρχείο και ελέγξτε τη δομή:
file,magick identify -verbose, format validators (e.g.,pngcheck). - Εξαγάγετε metadata και ορατά strings:
exiftool -a -u -g1,strings. - Ελέγξτε για embedded/appended περιεχόμενο:
binwalkκαι έλεγχος τέλους αρχείου (tail | xxd). - Διαχωρίστε ανά container:
- PNG/BMP: bit-planes/LSB και ανωμαλίες σε επίπεδο chunk.
- JPEG: metadata + DCT-domain tooling (OutGuess/F5-style families).
- GIF/APNG: εξαγωγή frames, frame differencing, κόλπα με palette.
Bit-planes / LSB
Τεχνική
Τα PNG/BMP είναι δημοφιλή σε CTFs επειδή αποθηκεύουν pixels με τρόπο που κάνει εύκολη την bit-level manipulation. Ο κλασικός μηχανισμός απόκρυψης/εξαγωγής είναι:
- Κάθε κανάλι pixel (R/G/B/A) έχει πολλαπλά bits.
- Το least significant bit (LSB) κάθε καναλιού αλλάζει την εικόνα πολύ λίγο.
- Οι επιτιθέμενοι κρύβουν δεδομένα σε αυτά τα low-order bits, μερικές φορές με stride, permutation, ή επιλογή ανά κανάλι.
Τι να περιμένετε σε προκλήσεις:
- Το payload βρίσκεται σε ένα κανάλι μόνο (π.χ.,
RLSB). - Το payload βρίσκεται στο alpha channel.
- Το payload είναι συμπιεσμένο/κωδικοποιημένο μετά την εξαγωγή.
- Το μήνυμα είναι διασκορπισμένο σε planes ή κρυμμένο μέσω XOR ανάμεσα σε planes.
Επιπλέον οικογένειες που μπορεί να συναντήσετε (εξαρτάται από την υλοποίηση):
- LSB matching (όχι απλώς αναστροφή του bit, αλλά προσαρμογές +/-1 για να ταιριάξει το target bit)
- Palette/index-based hiding (indexed PNG/GIF: payload σε color indices αντί για raw RGB)
- Alpha-only payloads (εντελώς αόρατο στην RGB προβολή)
Εργαλεία
zsteg
zsteg απαριθμεί πολλά μοτίβα εξαγωγής LSB/bit-plane για PNG/BMP:
zsteg -a file.png
Αποθετήριο: https://github.com/zed-0xff/zsteg
StegoVeritas / Stegsolve
stegoVeritas: τρέχει μια σειρά μετασχηματισμών (metadata, image transforms, brute forcing LSB variants).stegsolve: χειροκίνητα οπτικά φίλτρα (channel isolation, plane inspection, XOR, etc).
Stegsolve download: https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve
FFT-based visibility tricks
Το FFT δεν είναι LSB extraction· χρησιμοποιείται σε περιπτώσεις όπου το περιεχόμενο κρύβεται σκόπιμα στον συχνοτικό χώρο ή σε λεπτά μοτίβα.
- EPFL demo: http://bigwww.epfl.ch/demo/ip/demos/FFT/
- Fourifier: https://www.ejectamenta.com/Fourifier-fullscreen/
- FFTStegPic: https://github.com/0xcomposure/FFTStegPic
Web-based triage που χρησιμοποιείται συχνά σε CTFs:
- Aperi’Solve: https://aperisolve.com/
- StegOnline: https://stegonline.georgeom.net/
PNG internals: chunks, corruption, and hidden data
Technique
Το PNG είναι μια μορφή που βασίζεται σε chunks. Σε πολλές προκλήσεις το payload αποθηκεύεται σε επίπεδο container/chunk αντί για τις τιμές των pixels:
- Επιπλέον bytes μετά το
IEND(πολλοί viewers αγνοούν τα trailing bytes) - Non-standard ancillary chunks που φέρουν payloads
- Κατεστραμμένοι headers που κρύβουν διαστάσεις ή σπάνε parsers μέχρι να διορθωθούν
High-signal chunk locations to review:
tEXt/iTXt/zTXt(μεταδεδομένα κειμένου, μερικές φορές συμπιεσμένα)iCCP(ICC profile) και άλλα ancillary chunks που χρησιμοποιούνται ως φορέαςeXIf(EXIF δεδομένα σε PNG)
Triage commands
magick identify -verbose file.png
pngcheck -v file.png
Τι να προσέξετε:
- Ασυνήθιστοι συνδυασμοί πλάτους/ύψους/βάθους bit/τύπου χρώματος
- Σφάλματα CRC ή chunk (pngcheck συνήθως δείχνει την ακριβή μετατόπιση)
- Προειδοποιήσεις για πρόσθετα δεδομένα μετά το
IEND
Αν χρειάζεστε πιο λεπτομερή προβολή των chunk:
pngcheck -vp file.png
exiftool -a -u -g1 file.png
Χρήσιμες αναφορές:
- PNG προδιαγραφή (structure, chunks): https://www.w3.org/TR/PNG/
- Κόλπα μορφής αρχείου (PNG/JPEG/GIF corner cases): https://github.com/corkami/docs
JPEG: metadata, DCT-domain tools, and ELA limitations
Τεχνική
Το JPEG δεν αποθηκεύεται ως raw pixels· συμπιέζεται στο DCT domain. Γι’ αυτό τα JPEG stego εργαλεία διαφέρουν από τα PNG LSB εργαλεία:
- Metadata/comment payloads είναι σε επίπεδο αρχείου (υψηλό σήμα και γρήγορος στον έλεγχο)
- DCT-domain stego εργαλεία ενσωματώνουν bits σε συντελεστές συχνότητας
Σε λειτουργικό επίπεδο, θεωρήστε το JPEG ως:
- Ένα δοχείο για metadata segments (υψηλό σήμα, γρήγορος έλεγχος)
- Ένας συμπιεσμένος τομέας σήματος (DCT coefficients) όπου λειτουργούν εξειδικευμένα stego εργαλεία
Γρήγοροι έλεγχοι
exiftool file.jpg
strings -n 6 file.jpg | head
binwalk file.jpg
High-signal locations:
- EXIF/XMP/IPTC metadata
- τμήμα σχολίου JPEG (
COM) - Τμήματα εφαρμογής (
APP1για EXIF,APPnγια δεδομένα προμηθευτή)
Συνήθη εργαλεία
- OutGuess: https://github.com/resurrecting-open-source-projects/outguess
- OpenStego: https://www.openstego.com/
If you are specifically facing steghide payloads in JPEGs, consider using stegseek (faster bruteforce than older scripts):
Error Level Analysis
ELA επισημαίνει διάφορα ίχνη επανασυμπίεσης· μπορεί να υποδείξει περιοχές που έχουν επεξεργαστεί, αλλά δεν είναι από μόνη της ένας stego detector:
Κινούμενες εικόνες
Τεχνική
Για κινούμενες εικόνες, υποθέστε ότι το μήνυμα είναι:
- Σε ένα καρέ (εύκολο), ή
- Διασπαρμένο σε καρέ (η σειρά έχει σημασία), ή
- Ορατό μόνο όταν κάνετε diff σε διαδοχικά καρέ
Εξαγωγή καρέ
ffmpeg -i anim.gif frame_%04d.png
Στη συνέχεια χειριστείτε τα frames όπως κανονικά PNGs: zsteg, pngcheck, channel isolation.
Εναλλακτικά εργαλεία:
gifsicle --explode anim.gif(γρήγορη εξαγωγή frames)imagemagick/magickγια μετασχηματισμούς ανά frame
Το Frame differencing είναι συχνά καθοριστικό:
magick frame_0001.png frame_0002.png -compose difference -composite diff.png
APNG pixel-count encoding
- Εντοπίστε κοντέινερ APNG:
exiftool -a -G1 file.png | grep -i animationorfile. - Εξάγετε καρέ χωρίς επαναχρονισμό:
ffmpeg -i file.png -vsync 0 frames/frame_%03d.png. - Ανακτήστε τα payloads που κωδικοποιήθηκαν ως αριθμοί pixel ανά καρέ:
from PIL import Image
import glob
out = []
for f in sorted(glob.glob('frames/frame_*.png')):
counts = Image.open(f).getcolors()
target = dict(counts).get((255, 0, 255, 255)) # adjust the target color
out.append(target or 0)
print(bytes(out).decode('latin1'))
Οι κινούμενες προκλήσεις μπορεί να κωδικοποιούν κάθε byte ως τον αριθμό ενός συγκεκριμένου χρώματος σε κάθε καρέ· η συνένωση των μετρήσεων ανασυνθέτει το μήνυμα.
Ενσωμάτωση προστατευμένη με κωδικό
Αν υποψιάζεστε ότι η ενσωμάτωση προστατεύεται με passphrase αντί για χειραγώγηση σε επίπεδο pixel, αυτός είναι συνήθως ο ταχύτερος τρόπος.
steghide
Υποστηρίζει JPEG, BMP, WAV, AU και μπορεί να embed/extract κρυπτογραφημένα payloads.
steghide info file
steghide extract -sf file --passphrase 'password'
Δεν βλέπω το περιεχόμενο του αρχείου src/stego/images/README.md. Μπορείς να επικολλήσεις εδώ το κείμενο που θέλεις να μεταφράσω (ή να υποδείξεις ακριβώς ποιο τμήμα); Θα το μεταφράσω στα Ελληνικά διατηρώντας απείραχτα tags, links και paths.
stegcracker file.jpg wordlist.txt
Αποθετήριο: https://github.com/Paradoxis/StegCracker
stegpy
Υποστηρίζει PNG/BMP/GIF/WebP/WAV.
Αποθετήριο: https://github.com/dhsdshdhk/stegpy
Αναφορές
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


