
مجموعة من أدوات إخفاء المعلومات - تساعد في تحديات CTF
هذا المشروع هو صورة Docker مفيدة لحل تحديات إخفاء البيانات (Steganography) مثل تلك الموجودة في منصات CTF مثل hackthebox.eu.
تأتي الصورة مثبتة مسبقاً مع العديد من الأدوات الشائعة (انظر القائمة أدناه) والعديد من البرامج النصية للفحص التي يمكنك استخدامها للتحقق من الأمور البسيطة (على سبيل المثال، قم بتشغيل check_jpg.sh image.jpg للحصول على تقرير لملف 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 واتصل بالحاوية مع إعادة توجيه X11start_vnc.sh واتصل بسطح المكتب للحاوية عبر المتصفحاطلع على الأقسام التالية لمزيد من المعلومات:
ابدأ باستخدام docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash.
سيتم إسقاطك في قشرة الحاوية في دليل العمل /data.
سيتم تثبيت مجلد المضيف $(pwd)/data وستكون الصور الموجودة بداخله متاحة.

تم تثبيت العديد من أدوات Linux و Windows المختلفة. أدوات Windows مدعومة بـ Wine. يمكن استخدام بعض الأدوات من سطر الأوامر بينما يتطلب البعض الآخر دعم واجهة المستخدم الرسومية!
يمكن استخدام هذه الأدوات من سطر الأوامر. كل ما عليك فعله هو بدء حاوية وتثبيت ملفات إخفاء البيانات التي ترغب في فحصها.
أدوات لتشغيلها في البداية. تتيح لك الحصول على فكرة عامة عما تتعامل معه.
أدوات مصممة لكشف إخفاء البيانات في الملفات. تقوم في الغالب بإجراء اختبارات إحصائية. ستكشف الرسائل المخفية فقط في الحالات البسيطة. ومع ذلك، قد توفر تلميحات عما يجب البحث عنه إذا وجدت مخالفات مثيرة للاهتمام.
أدوات يمكنك استخدامها لإخفاء الرسائل والكشف عنها لاحقاً. بعضها يقوم بتشفير الرسائل قبل إخفائها. إذا كانت تفعل ذلك، فإنها تتطلب كلمة مرور. إذا كان لديك تلميح حول نوع الأداة المستخدمة أو كلمة المرور الصحيحة، جرب هذه الأدوات. بعض الأدوات مدعومة ببرامج القوة الغاشمة المتوفرة في صورة Docker هذه.
جميع الأدوات أدناه تحتوي على واجهات مستخدم رسومية ولا يمكن استخدامها عبر سطر الأوامر. لتشغيلها، يجب عليك توفير خادم X11 داخل الحاوية. طريقتان مدعومتان:
start_ssh.sh لتشغيل خادم SSH. اتصل بعد ذلك بإعادة توجيه X11. يتطلب وجود خادم X11 على المضيف الخاص بك!start_vnc.sh لتشغيل خادم VNC + عميل. اتصل بعد ذلك بالمتصفح عبر المنفذ 6901 وستحصل على سطح مكتب Xfce. لا توجد تبعيات للمضيف!بدلاً من ذلك، ابحث عن طرق أخرى لتوفير X11 داخل الحاوية. هناك العديد من الطرق المختلفة الممكنة (على سبيل المثال، تثبيت مآخذ UNIX).
العديد من الأدوات أعلاه لا تتطلب التفاعل مع واجهة رسومية. لذلك، يمكنك بسهولة أتمتة بعض سير العمل للقيام بفحص أساسي للملفات التي قد تحتوي على رسائل مخفية. نظراً لأن الأدوات المناسبة تختلف حسب نوع الملف، فإن كل نوع ملف له نصوص مختلفة.
لكل نوع ملف، هناك نوعان من البرامج النصية:
XXX_check.sh <stego-file>: تشغيل أدوات الفحص الأساسية وإنشاء تقرير (+ ربما دليل مع تقارير في الملفات)XXX_brute.sh <stego-file> <wordlist>: محاولة استخراج رسالة مخفية من ملف stego باستخدام أدوات مختلفة باستخدام قائمة كلمات (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. البرامج النصية بطيئة جداً لذلك وتبدو تحديات stego غير مصممة لهذا. السيناريو الأكثر احتمالاً هو أن يكون لديك حدس حول ما يمكن أن تكون كلمة المرور ولكنك لا تعرف بالضبط.
لهذه الحالات، تم تضمين عدة أدوات لإنشاء قوائم الكلمات:
john لإنشاء العديد من المتغيرات منها. استخدم john -wordlist:/path/to/your/wordlist -rules:Single -stdout > /path/to/expanded/wordlist لتطبيق قواعد واسعة (~x1000) john -wordlist:/path/to/your/wordlist -rules:Wordlist -stdout > /path/to/expanded/wordlist لمجموعة قواعد مخفضة (~x50).crunch 6 6 abcdefghijklmnopqrstuvwxyz -t @@1984 سينشئ 26 * 26 = 676 كلمة مرور aa1984، ab1984، ... حتى zz1984. التنسيق هو crunch <min-length> <max-length> <charset> <options> واستخدمنا خيار القالب. تحقق من less /usr/share/crunch/charset.lst لرؤية مجموعات الأحرف التي تأتي مع crunch.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 لأنه لا يتوفر خادم X11. لتشغيلها، يجب عليك تغيير ذلك. ما هو مطلوب للقيام بذلك يعتمد على جهاز المضيف الخاص بك. إذا كنت:
brew install Xquartz)استخدم إعادة توجيه X11 عبر SSH إذا كنت ترغب في اتباع هذا الطريق. قم بتشغيل start_ssh داخل الحاوية لبدء الخادم، وتأكد من كشف المنفذ 22 عند بدء الحاوية: docker run -p 127.0.0.1:22:22 ...، ثم استخدم ssh -X ... عند الاتصال (يقوم البرنامج النصي بطباعة كلمة المرور).
لتجنب الاعتماد على X11، تأتي الصورة مع خادم TigerVNC وعميل noVNC.
يمكنك استخدامه لفتح جلسة VNC HTML5 مع المتصفح للاتصال بسطح مكتب Xfce للحاوية. للقيام بذلك، قم بتشغيل start_vnc.sh داخل الحاوية لبدء الخادم والعميل، وتأكد من كشف المنفذ 6901 عند بدء الحاوية docker run -p 127.0.0.1:6901:6901 ... واذهب إلى localhost:6901/?password=<password> (يقوم البرنامج النصي بطباعة كلمة المرور).

الأوامر في GIF للنسخ واللصق:
# في أول قشرة مضيف
docker run -it --rm -p 127.0.0.1:22:22 dominicbreuker/stego-toolkit /bin/bash
# داخل قشرة الحاوية
start_ssh.sh
# في قشرة المضيف الثانية (استخدمها لتشغيل تطبيقات واجهة المستخدم الرسومية بعد ذلك)
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=<password_from_start_vnc>
هذه مجموعة من روابط إخفاء البيانات المفيدة:
تم تضمين ملفات الوسائط النموذجية التالية في هذا المستودع:
| الأداة | الوصف | كيفية الاستخدام |
|---|
| 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 - لإعادة ترميز الملف والتخلص من النتيجة |
| الأداة | أنواع الملفات | الوصف | كيفية الاستخدام |
|---|
| stegoVeritas | الصور (JPG, PNG, GIF, TIFF, BMP) | مجموعة واسعة من الفحوصات البسيطة والمتقدمة. تحقق من stegoveritas.py -h. تتحقق من البيانات الوصفية، وتنشئ العديد من الصور المحولة وتحفظها في دليل، وتجرب القوة الغاشمة لـ LSB، ... | stegoveritas.py stego.jpg لتشغيل جميع الفحوصات |
| zsteg | الصور (PNG, BMP) | يكشف مختلف أنواع LSB stego، بالإضافة إلى openstego وأداة Camouflage | zsteg -a stego.jpg لتشغيل جميع الفحوصات |
| stegdetect | الصور (JPG) | يقوم بإجراء اختبارات إحصائية لمعرفة ما إذا تم استخدام أداة stego (jsteg, outguess, jphide, ...). تحقق من man stegdetect للحصول على التفاصيل. | stegdetect stego.jpg |
| stegbreak | الصور (JPG) | أداة كسر بالقوة الغاشمة لصور JPG. تدعي أنها تستطيع كسر outguess, jphide و jsteg. | stegbreak -t o -f wordlist.txt stego.jpg, استخدم -t o لـ outguess، و -t p لـ jphide أو -t j لـ jsteg |
| الأداة | أنواع الملفات | الوصف | كيفية الإخفاء | كيفية الاسترداد |
|---|
| 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 stego. لا تقوم بتشفير الرسالة. | jsteg hide cover.jpg secret.txt stego.jpg | jsteg reveal cover.jpg output.txt |
| mp3stego | الصوت (MP3) | برنامج قديم. يقوم بتشفير ثم إخفاء رسالة (تشفير 3DES!). أداة Windows تعمل عبر 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 stego مختلفة (تحقق من هذه المدونة). لا يزال قيد الصيانة. | 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) | يستخدم "bits الزائدة عن الحاجة" لإخفاء البيانات. يأتي بإصدارين: قديم=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 | استخدم أداة واجهة المستخدم الرسومية 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 stego للصور | cloackedpixel hide cover.jpg secret.txt password ينشئ cover.jpg-stego.png | cloackedpixel extract cover.jpg-stego.png output.txt password |
| LSBSteg | الصور (PNG, BMP, ...) بتنسيقات غير مضغوطة | أدوات LSB بسيطة مع كود Python لطيف وقابل للقراءة | 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 |
| الأداة | أنواع الملفات | الوصف | كيفية التشغيل |
|---|
| Steg | الصور (JPG, TIFF, PNG, BMP) | يتعامل مع العديد من أنواع الملفات وينفذ طرق مختلفة | steg |
| Steganabara (الرابط الأصلي معطل) | الصور (???) | تحويل الصور بشكل تفاعلي حتى تجد شيئاً | steganabara |
| Stegsolve | الصور (???) | تحويل الصور بشكل تفاعلي، عرض أنظمة الألوان بشكل منفصل، ... | stegsolve |
| SonicVisualiser | الصوت (???) | عرض ملفات الصوت بشكل موجي، عرض الطيف الطيفي، ... | sonic-visualiser |
| Stegosuite | الصور (JPG, GIF, BMP) | يمكن تشفير وإخفاء البيانات في الصور. يتم تطويره بنشاط. | stegosuite |
| OpenPuff | الصور، الصوت، الفيديو (العديد من التنسيقات) | أداة متطورة ذات تاريخ طويل. لا تزال قيد الصيانة. أداة Windows تعمل عبر wine. | openpuff |
| DeepSound | الصوت (MP3, WAV) | أداة صوت stego موثوق بها من قبل السيد روبوت نفسه. أداة Windows تعمل عبر wine (hacky جداً، تتطلب VNC وتعمل في سطح مكتب افتراضي، MP3 معطل بسبب فقدان DLL!) | deepsound فقط في جلسة VNC |
| cloackedpixel-analyse | الصور (PNG) | تصور LSB stego لصور PNG - استخدمه لاكتشاف قيم LSB المشبوهة العشوائية في الصور (القيم القريبة من 0.5 قد تشير إلى بيانات مشفرة مضمنة) | cloackedpixel-analyse image.png |