
स्टेग्नोग्राफी टूल्स का संग्रह - CTF चुनौतियों में मदद करता है
यह प्रोजेक्ट एक Docker इमेज है जो hackthebox.eu जैसे CTF प्लेटफ़ॉर्म पर मिलने वाली स्टेग्नोग्राफ़ी चुनौतियों को हल करने के लिए उपयोगी है। इमेज में कई लोकप्रिय टूल्स पहले से इंस्टॉल हैं (सूची नीचे देखें) और कई स्क्रीनिंग स्क्रिप्ट्स हैं जिनका उपयोग आप सरल चीज़ों की जाँच करने के लिए कर सकते हैं (उदाहरण के लिए, JPG फ़ाइल के लिए रिपोर्ट प्राप्त करने के लिए check_jpg.sh image.jpg चलाएँ)।
पहले सुनिश्चित करें कि आपके पास Docker इंस्टॉल है (कैसे करें)।
फिर आप इस रेपो में शेल स्क्रिप्ट्स bin/build.sh और bin/run.sh का उपयोग करके इमेज बना सकते हैं और कंटेनर चला सकते हैं।
आपको कंटेनर के अंदर एक bash शेल में डाल दिया जाएगा।
इसमें data फ़ोल्डर माउंटेड होगा, जिसमें आप विश्लेषण करने के लिए फ़ाइलें रख सकते हैं।
यदि आप स्क्रिप्ट्स का उपयोग नहीं करते हैं, तो इन चरणों का पालन करें:
docker build -t <image_name> .) या Docker hub से पुल करें (docker pull dominicbreuker/stego-toolkit)/data फ़ोल्डर में माउंट करते हुए एक कंटेनर शुरू करें (docker run -it <image_name> -v /local/folder/with/data:/data /bin/bash)check_jpg.sh image.jpg चलाएँ, या विभिन्न टूल्स और पासवर्ड के साथ छिपे डेटा को निकालने का प्रयास करने के लिए brute_jpg.sh image.jpg wordlist.txt चलाएँ।start_ssh.sh चलाएँ और X11 फ़ॉरवर्डिंग के साथ अपने कंटेनर से कनेक्ट करेंstart_vnc.sh चलाएँ और अपने ब्राउज़र के माध्यम से कंटेनर के डेस्कटॉप से कनेक्ट करेंअधिक जानकारी के लिए निम्नलिखित अनुभाग देखें:
docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash से शुरू करें।
आपको कंटेनर शेल में वर्क डायर /data में डाल दिया जाएगा।
आपका होस्ट फ़ोल्डर $(pwd)/data माउंट किया जाएगा और उसके अंदर की इमेजेज़ सुलभ होंगी।

कई अलग-अलग लिनक्स और विंडोज़ टूल्स इंस्टॉल हैं। विंडोज़ टूल्स को Wine के साथ सपोर्ट किया गया है। कुछ टूल्स कमांड लाइन पर उपयोग किए जा सकते हैं जबकि अन्य को GUI सपोर्ट की आवश्यकता होती है!
ये टूल्स कमांड लाइन पर उपयोग किए जा सकते हैं। आपको बस एक कंटेनर शुरू करना है और जिन स्टेग्नोग्राफ़ी फ़ाइलों की जाँच करनी है उन्हें माउंट करना है।
शुरुआत में चलाने के लिए टूल्स। आपको एक व्यापक विचार देते हैं कि आप किसके साथ काम कर रहे हैं।
फ़ाइलों में स्टेग्नोग्राफ़ी का पता लगाने के लिए डिज़ाइन किए गए टूल्स। अधिकतर सांख्यिकीय परीक्षण करते हैं। वे केवल सरल मामलों में छिपे संदेशों को प्रकट करेंगे। हालाँकि, यदि वे दिलचस्प अनियमितताएँ पाते हैं तो वे संकेत दे सकते हैं कि क्या देखना चाहिए।
वे टूल्स जिनका उपयोग आप संदेशों को छिपाने और बाद में उन्हें प्रकट करने के लिए कर सकते हैं। कुछ छिपाने से पहले संदेशों को एन्क्रिप्ट करते हैं। यदि वे ऐसा करते हैं, तो उन्हें पासवर्ड की आवश्यकता होती है। यदि आपको कोई संकेत है कि किस प्रकार के टूल का उपयोग किया गया था या कौन सा पासवर्ड सही हो सकता है, तो इन टूल्स को आज़माएँ। कुछ टूल्स इस Docker इमेज में उपलब्ध ब्रूट फ़ोर्स स्क्रिप्ट्स द्वारा समर्थित हैं।
नीचे दिए गए सभी टूल्स में ग्राफ़िकल यूज़र इंटरफ़ेस हैं और कमांड लाइन के माध्यम से उपयोग नहीं किए जा सकते। उन्हें चलाने के लिए, आपको कंटेनर के अंदर एक X11 सर्वर उपलब्ध कराना होगा। दो तरीके समर्थित हैं:
start_ssh.sh चलाएँ। बाद में X11 फ़ॉरवर्डिंग के साथ कनेक्ट करें। आपके होस्ट पर X11 सर्वर की आवश्यकता है!start_vnc.sh चलाएँ। बाद में अपने ब्राउज़र से पोर्ट 6901 से कनेक्ट करें और आपको Xfce डेस्कटॉप मिलता है। कोई होस्ट निर्भरता नहीं!वैकल्पिक रूप से, कंटेनर के अंदर X11 उपलब्ध कराने के अन्य तरीके खोजें। कई अलग-अलग तरीके संभव हैं (जैसे, UNIX सॉकेट माउंट करना)।
उपरोक्त कई टूल्स को GUI के साथ इंटरैक्शन की आवश्यकता नहीं है। इसलिए, आप संभावित रूप से छिपे संदेशों वाली फ़ाइलों की बुनियादी स्क्रीनिंग करने के लिए कुछ वर्कफ़्लो को आसानी से स्वचालित कर सकते हैं। चूँकि लागू टूल्स फ़ाइल प्रकार के अनुसार भिन्न होते हैं, प्रत्येक फ़ाइल प्रकार के लिए अलग-अलग स्क्रिप्ट होती हैं।
प्रत्येक फ़ाइल प्रकार के लिए, दो प्रकार की स्क्रिप्ट होती हैं:
XXX_check.sh <stego-file>: बुनियादी स्क्रीनिंग टूल्स चलाता है और एक रिपोर्ट बनाता है (+ संभवतः रिपोर्ट वाली एक निर्देशिका)XXX_brute.sh <stego-file> <wordlist>: एक स्टेगो फ़ाइल से विभिन्न टूल्स के साथ वर्डलिस्ट का उपयोग करके एक छिपे संदेश को निकालने का प्रयास करता है (cewl, john और crunch सूचियाँ उत्पन्न करने के लिए इंस्टॉल हैं - उन्हें छोटा रखें)।निम्नलिखित फ़ाइल प्रकार समर्थित हैं:
check_jpg.h और brute_jpg.sh (ब्रूट steghide, outguess, outguess-0.13, stegbreak, stegoveritas.py -bruteLSB चला रहा है)check_png.h और brute_png.sh (ब्रूट openstego और stegoveritas.py -bruteLSB चला रहा है)उपरोक्त ब्रूट फ़ोर्सिंग स्क्रिप्ट्स को वर्डलिस्ट की आवश्यकता होती है। मेरी राय में, rockyou जैसी विशाल मानक वर्डलिस्ट का उपयोग करने से मदद मिलने की संभावना बहुत कम है। स्क्रिप्ट्स इसके लिए बहुत धीमी हैं और ऐसा प्रतीत होता है कि स्टेगो चुनौतियाँ इसके लिए डिज़ाइन नहीं की गई हैं। अधिक संभावित परिदृश्य यह है कि आपको पता है कि पासवर्ड क्या हो सकता है, लेकिन आप ठीक से नहीं जानते हैं।
ऐसे मामलों के लिए, वर्डलिस्ट उत्पन्न करने के लिए कई टूल्स शामिल हैं:
john का उपयोग करें। व्यापक नियम (~x1000) लागू करने के लिए john -wordlist:/path/to/your/wordlist -rules:Single -stdout > /path/to/expanded/wordlist का उपयोग करें, कम किए गए नियमसेट (~x50) के लिए john -wordlist:/path/to/your/wordlist -rules:Wordlist -stdout > /path/to/expanded/wordlist का उपयोग करें।crunch 6 6 abcdefghijklmnopqrstuvwxyz -t @@1984 का उपयोग करने से 26 * 26 = 676 पासवर्ड aa1984, ab1984, ... से zz1984 तक उत्पन्न होंगे। प्रारूप crunch <min-length> <max-length> <charset> <options> है और हमने टेम्प्लेटिंग विकल्प का उपयोग किया। crunch के साथ आने वाले कैरेक्टर सेट देखने के लिए less /usr/share/crunch/charset.lst देखें।cewl -d 0 -m 8 https://en.wikipedia.org/wiki/Donald_Trump चलाएँ। कमांड साइट को स्क्रैप करता है और कम से कम 8 वर्ण लंबे स्ट्रिंग निकालता है।इमेज में विभिन्न प्रारूपों में एक नमूना इमेज और ऑडियो फ़ाइल है:
/examples/ORIGINAL.jpg/examples/ORIGINAL.png/examples/ORIGINAL.mp3/examples/ORIGINAL.wavइसमें एक स्क्रिप्ट /examples/create_examples.sh भी है जिसे आप कई अलग-अलग विधियों के साथ इन फ़ाइलों में एक छिपा संदेश ("This is a very secret message!") एम्बेड करने के लिए चला सकते हैं।
इस स्क्रिप्ट को चलाने के बाद, आपको ये फ़ाइलें /examples/stego-files में मिलेंगी जिनके नाम बताएँगे कि संदेश को एम्बेड करने के लिए किस टूल का उपयोग किया गया था।
आप यह देखने के लिए स्क्रीनिंग स्क्रिप्ट चला सकते हैं कि क्या वे उन पर कुछ पाते हैं या अन्यथा उन्हें तोड़ने का प्रयास कर सकते हैं।
डिफ़ॉल्ट रूप से, Docker कंटेनर में कोई GUI टूल नहीं चलाया जा सकता क्योंकि कोई X11 सर्वर उपलब्ध नहीं है। उन्हें चलाने के लिए, आपको इसे बदलना होगा। ऐसा करने के लिए क्या आवश्यक है यह आपके होस्ट मशीन पर निर्भर करता है। यदि आप:
brew install Xquartz)यदि आप इस तरह से जाना चाहते हैं तो SSH के माध्यम से X11 फ़ॉरवर्डिंग का उपयोग करें। कंटेनर के अंदर सर्वर शुरू करने के लिए start_ssh चलाएँ, सुनिश्चित करें कि कंटेनर शुरू करते समय आप पोर्ट 22 को एक्सपोज़ करते हैं: docker run -p 127.0.0.1:22:22 ..., फिर कनेक्ट करते समय ssh -X ... का उपयोग करें (स्क्रिप्ट पासवर्ड प्रिंट करती है)।
X11 पर निर्भर न होने के लिए, इमेज एक TigerVNC सर्वर और noVNC क्लाइंट के साथ आती है।
आप इसका उपयोग अपने ब्राउज़र के साथ एक HTML5 VNC सत्र खोलने के लिए कर सकते हैं ताकि कंटेनर के Xfce डेस्कटॉप से कनेक्ट हो सकें। ऐसा करने के लिए, सर्वर और क्लाइंट शुरू करने के लिए कंटेनर के अंदर start_vnc.sh चलाएँ, सुनिश्चित करें कि कंटेनर शुरू करते समय आप पोर्ट 6901 को एक्सपोज़ करते हैं docker run -p 127.0.0.1:6901:6901 ... और localhost:6901/?password=<the_password> पर जाएँ (स्क्रिप्ट पासवर्ड प्रिंट करती है)।

GIF में कॉपी और पेस्ट के लिए कमांड:
# पहले होस्ट शेल में
docker run -it --rm -p 127.0.0.1:22:22 dominicbreuker/stego-toolkit /bin/bash
# कंटेनर शेल के अंदर
start_ssh.sh
# दूसरे होस्ट शेल में (GUI ऐप्स लॉन्च करने के लिए बाद में इसका उपयोग करें)
ssh -X -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@localhost

GIF में कॉपी और पेस्ट के लिए कमांड:
# पहले होस्ट शेल में
docker run -it --rm -p 127.0.0.1:6901:6901 dominicbreuker/stego-toolkit /bin/bash
# कंटेनर शेल के अंदर
start_vnc.sh
# ब्राउज़र में, इससे कनेक्ट करें: http://localhost:6901/?password=<start_vnc से पासवर्ड>
यह उपयोगी स्टेग्नोग्राफ़ी लिंक का एक संग्रह है:
निम्नलिखित उदाहरण मीडिया फ़ाइलें इस रिपॉजिटरी में शामिल हैं:
| Tool | विवरण | कैसे उपयोग करें |
|---|
| file | जाँचें कि आपके पास किस प्रकार की फ़ाइल है | file stego.jpg |
| exiftool | मीडिया फ़ाइलों के मेटाडेटा की जाँच करें | exiftool stego.jpg |
| binwalk | जाँचें कि क्या अन्य फ़ाइलें एम्बेडेड/अपेंडेड हैं | binwalk stego.jpg |
| strings | जाँचें कि फ़ाइल में कोई दिलचस्प पढ़ने योग्य वर्ण हैं | strings stego.jpg |
| foremost | एम्बेडेड/अपेंडेड फ़ाइलों को निकालें | foremost stego.jpg |
| pngcheck | PNG फ़ाइल का विवरण प्राप्त करें (या पता लगाएँ कि क्या यह वास्तव में कुछ और है) | pngcheck stego.png |
| identify | GraphicMagick टूल यह जाँचने के लिए कि फ़ाइल किस प्रकार की इमेज है। यह भी जाँचता है कि इमेज दूषित है या नहीं। | identify -verbose stego.jpg |
| ffmpeg | ffmpeg का उपयोग ऑडियो फ़ाइलों की अखंडता की जाँच करने और जानकारी और त्रुटियों की रिपोर्ट करने के लिए किया जा सकता है | ffmpeg -v info -i stego.mp3 -f null - फ़ाइल को रीकोड करने और परिणाम को त्यागने के लिए |
| Tool | फ़ाइल प्रकार | विवरण | कैसे उपयोग करें |
|---|
| stegoVeritas | इमेजेज़ (JPG, PNG, GIF, TIFF, BMP) | सरल और उन्नत जाँचों की एक विस्तृत विविधता। stegoveritas.py -h देखें। मेटाडेटा की जाँच करता है, कई रूपांतरित इमेजेज़ बनाता है और उन्हें एक निर्देशिका में सहेजता है, LSB को ब्रूट फ़ोर्स करता है, ... | सभी जाँचें चलाने के लिए stegoveritas.py stego.jpg |
| zsteg | इमेजेज़ (PNG, BMP) | विभिन्न LSB स्टेगो का पता लगाता है, साथ ही openstego और Camouflage टूल का भी पता लगाता है | सभी जाँचें चलाने के लिए zsteg -a stego.jpg |
| stegdetect | इमेजेज़ (JPG) | सांख्यिकीय परीक्षण करता है यह पता लगाने के लिए कि क्या किसी स्टेगो टूल का उपयोग किया गया था (jsteg, outguess, jphide, ...)। विवरण के लिए man stegdetect देखें। | stegdetect stego.jpg |
| stegbreak | इमेजेज़ (JPG) | JPG इमेजेज़ के लिए ब्रूट फ़ोर्स क्रैकर। दावा करता है कि यह outguess, jphide और jsteg को क्रैक कर सकता है। | stegbreak -t o -f wordlist.txt stego.jpg, outguess के लिए -t o, jphide के लिए -t p या jsteg के लिए -t j का उपयोग करें |
| Tool | फ़ाइल प्रकार | विवरण | कैसे छिपाएँ | कैसे पुनर्प्राप्त करें |
|---|
| AudioStego | ऑडियो (MP3 / WAV) | यह कैसे काम करता है इसके बारे में विवरण इस ब्लॉग पोस्ट में हैं | hideme cover.mp3 secret.txt && mv ./output.mp3 stego.mp3 | hideme stego.mp3 -f && cat output.txt |
| jphide/jpseek | इमेज (JPG) | यहाँ से काफी पुराना टूल। यहाँ, यहाँ से संस्करण इंस्टॉल है क्योंकि मूल संस्करण हर समय क्रैश होता था। यह इंटरैक्टिव रूप से एक पासफ़्रेज़ माँगता है! | jphide cover.jpg stego.jpg secret.txt | jpseek stego.jpg output.txt |
| jsteg | इमेज (JPG) | LSB स्टेगो टूल। संदेश को एन्क्रिप्ट नहीं करता। | jsteg hide cover.jpg secret.txt stego.jpg | jsteg reveal cover.jpg output.txt |
| mp3stego | ऑडियो (MP3) | पुराना प्रोग्राम। एक संदेश को एन्क्रिप्ट करता है और फिर छिपाता है (3DES एन्क्रिप्शन!)। Wine में चलने वाला विंडोज़ टूल। WAV इनपुट की आवश्यकता है (कुछ WAV फ़ाइलों के लिए त्रुटियाँ फेंक सकता है। मेरे लिए जो काम करता है वह है: ffmpeg -i audio.mp3 -flags bitexact audio.wav)। महत्वपूर्ण: केवल निरपेक्ष पथ का उपयोग करें! | mp3stego-encode -E secret.txt -P password /path/to/cover.wav /path/to/stego.mp3 | mp3stego-decode -X -P password /path/to/stego.mp3 /path/to/out.pcm /path/to/out.txt |
| openstego | इमेजेज़ (PNG) | विभिन्न LSB स्टेगो एल्गोरिदम (यह ब्लॉग देखें)। अभी भी अनुरक्षित है। | openstego embed -mf secret.txt -cf cover.png -p password -sf stego.png | openstego extract -sf openstego.png -p abcd -xf output.txt (मूल नाम के साथ फ़ाइल बनाने के लिए -xf को हटा दें!) |
| outguess | इमेजेज़ (JPG) | डेटा छिपाने के लिए "रिडंडेंट बिट्स" का उपयोग करता है। दो संस्करणों में आता है: पुराना=outguess-0.13 यहाँ से लिया गया और नया=outguess पैकेज रिपॉजिटरी से। पुनर्प्राप्त करने के लिए, आपको वही उपयोग करना होगा जो छिपाने के लिए उपयोग किया गया था। | outguess -k password -d secret.txt cover.jpg stego.jpg | outguess -r -k password stego.jpg output.txt |
| spectrology | ऑडियो (WAV) | एक ऑडियो फ़ाइल के स्पेक्ट्रोग्राम में एक इमेज को एन्कोड करता है। | TODO | GUI टूल sonic-visualiser का उपयोग करें |
| stegano | इमेजेज़ (PNG) | विभिन्न (LSB-आधारित) विधियों के साथ डेटा छिपाता है। कुछ स्क्रीनिंग टूल्स भी प्रदान करता है। | stegano-lsb hide --input cover.jpg -f secret.txt -e UTF-8 --output stego.png या stegano-red hide --input cover.png -m "secret msg" --output stego.png या विभिन्न जनरेटर के लिए stegano-lsb-set hide --input cover.png -f secret.txt -e UTF-8 -g $GENERATOR --output stego.png (stegano-lsb-set list-generators) | stegano-lsb reveal -i stego.png -e UTF-8 -o output.txt या stegano-red reveal -i stego.png या stegano-lsb-set reveal -i stego.png -e UTF-8 -g $GENERATOR -o output.txt |
| Steghide | इमेजेज़ (JPG, BMP) और ऑडियो (WAV, AU) | डेटा को एन्क्रिप्ट और छिपाने के लिए बहुमुखी और परिपक्व टूल। | steghide embed -f -ef secret.txt -cf cover.jpg -p password -sf stego.jpg | steghide extract -sf stego.jpg -p password -xf output.txt |
| cloackedpixel | इमेजेज़ (PNG) | इमेजेज़ के लिए LSB स्टेगो टूल | cloackedpixel hide cover.jpg secret.txt password cover.jpg-stego.png बनाता है | cloackedpixel extract cover.jpg-stego.png output.txt password |
| LSBSteg | इमेजेज़ (PNG, BMP, ...) असम्पीडित प्रारूपों में | बहुत अच्छे और पढ़ने योग्य Python कोड के साथ सरल LSB टूल्स | LSBSteg encode -i cover.png -o stego.png -f secret.txt | LSBSteg decode -i stego.png -o output.txt |
| f5 | इमेजेज़ (JPG) | F5 स्टेग्नोग्राफ़िक एल्गोरिदम जिसमें प्रक्रिया के बारे में विस्तृत जानकारी है | f5 -t e -i cover.jpg -o stego.jpg -d 'secret message' | f5 -t x -i stego.jpg 1> output.txt |
| stegpy | इमेजेज़ (PNG, GIF, BMP, WebP) और ऑडियो (WAV) | LSB विधि पर आधारित सरल स्टेग्नोग्राफ़ी प्रोग्राम | stegpy secret.jpg cover.png | stegpy _cover.png |
| Tool | फ़ाइल प्रकार | विवरण | कैसे शुरू करें |
|---|
| Steg | इमेजेज़ (JPG, TIFF, PNG, BMP) | कई फ़ाइल प्रकारों को संभालता है और विभिन्न विधियाँ लागू करता है | steg |
| Steganabara (मूल लिंक टूटा है) | इमेजेज़ (???) | जब तक आपको कुछ न मिल जाए, तब तक इंटरैक्टिव रूप से इमेजेज़ को रूपांतरित करें | steganabara |
| Stegsolve | इमेजेज़ (???) | इंटरैक्टिव रूप से इमेजेज़ को रूपांतरित करें, रंग योजनाओं को अलग-अलग देखें, ... | stegsolve |
| SonicVisualiser | ऑडियो (???) | तरंग रूप में ऑडियो फ़ाइलों की विज़ुअलाइज़ेशन, स्पेक्ट्रोग्राम प्रदर्शित करना, ... | sonic-visualiser |
| Stegosuite | इमेजेज़ (JPG, GIF, BMP) | इमेजेज़ में डेटा को एन्क्रिप्ट और छिपा सकता है। सक्रिय रूप से विकसित किया जा रहा है। | stegosuite |
| OpenPuff | इमेजेज़, ऑडियो, वीडियो (कई प्रारूप) | लंबे इतिहास वाला परिष्कृत टूल। अभी भी अनुरक्षित है। Wine में चलने वाला विंडोज़ टूल। | openpuff |
| DeepSound | ऑडियो (MP3, WAV) | ऑडियो स्टेगो टूल जिस पर Mr. Robot खुद भरोसा करते हैं। Wine में चलने वाला विंडोज़ टूल (बहुत हैकी, VNC की आवश्यकता है और वर्चुअल डेस्कटॉप में चलता है, गुम DLL के कारण MP3 टूटा हुआ है!) | deepsound केवल VNC सत्र में |
| cloackedpixel-analyse | इमेजेज़ (PNG) | PNG के लिए LSB स्टेगो विज़ुअलाइज़ेशन - इमेजेज़ में संदिग्ध रूप से यादृच्छिक LSB मानों का पता लगाने के लिए इसका उपयोग करें (0.5 के करीब मान एन्क्रिप्टेड डेटा एम्बेडेड होने का संकेत दे सकते हैं) | cloackedpixel-analyse image.png |