
Bob the Smuggler: أداة تستخدم هجوم HTML Smuggling وتسمح لك بإنشاء ملفات HTML تحتوي على أرشيفات 7z/zip مضمنة. ستقوم الأداة بضغط ملفك الثنائي (EXE/DLL) إلى تنسيق ملف 7z/zip، ثم تشفير الأرشيف باستخدام XOR ثم إخفاؤه داخل تنسيق ملف صورة PNG/GIF (Image Polyglots).

15 يناير 2024 - تمت إضافة دعم لضغط ملفات متعددة. إذا كان لديك عدة ملفات تم إنشاؤها للحمولة النهائية (مثل ملفات DLL-Sideloading أو ملفات تسليم متعددة المراحل)، يمكنك الآن استخدام الخيار '-i' لتحديد مسار الدليل. إذا تم توفير مسار دليل، سيقوم BobTheSmuggler بأرشفة جميع الملفات في ذلك الدليل تلقائيًا، وتشفير الأرشيف باستخدام XOR، ثم تضمينه داخل PNG/GIF.
اطلع على مدونتي للحصول على فهم شامل لكيفية استخدام هذه الأداة: BobTheSmuggler: سكين سويسري إلكتروني متخفي لتسليم الحمولات غير القابلة للكشف.
"Bob the Smuggler" هي أداة تستغل هجوم HTML Smuggling وتسمح لك بإنشاء ملفات HTML تحتوي على أرشيفات 7z/zip مضمنة. تقوم الأداة بضغط ملفك الثنائي (EXE/DLL) إلى تنسيق 7z/zip، ثم تشفير الأرشيف باستخدام XOR، ثم إخفاؤه داخل صيغة ملف صورة PNG/GIF (Image Polyglots). سيقوم JavaScript المضمن داخل HTML بتنزيل ملف PNG/GIF وتخزينه في ذاكرة التخزين المؤقت. بعد ذلك، سيقوم JavaScript باستخراج البيانات المضمنة في PNG/GIF، وتجميعها، وإجراء فك تشفير XOR، ثم تخزينها ككتلة في الذاكرة.

تدعم هذه الأداة حاليًا سلاسل تسليم الحمولة التالية:
قبل تشغيل الأداة، تحتاج إلى المتطلبات الأساسية التالية:
pip install python-magic py7zr pyminizip
ملاحظة: لتثبيت python-magic، ستحتاج إلى تثبيت مكتبة libmagic على نظامك. اتبع هذا الرابط لتثبيت مكتبة libmagic: https://pypi.org/project/python-magic/
بمجرد تثبيت المكتبات المطلوبة، يمكنك المتابعة في تثبيت الأداة باستخدام الأوامر التالية:
git clone https://github.com/TheCyb3rAlpha/BobTheSmuggler.git
cd BobTheSmuggler
بمجرد التثبيت، يمكنك استخدام الأداة بتنفيذ الأمر التالي:
python3 BobTheSmuggler.py -h

======================================================================
██████╗ ██████╗ ██████╗ ████████╗██╗ ██╗███████╗
██╔══██╗██╔═══██╗██╔══██╗ ╚══██╔══╝██║ ██║██╔════╝
██████╔╝██║ ██║██████╔╝ ██║ ███████║█████╗
██╔══██╗██║ ██║██╔══██╗ ██║ ██╔══██║██╔══╝
██████╔╝╚██████╔╝██████╔╝ ██║ ██║ ██║███████╗
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
███████╗███╗ ███╗██╗ ██╗ ██████╗ ██████╗ ██╗ ███████╗██████╗
██╔════╝████╗ ████║██║ ██║██╔════╝ ██╔════╝ ██║ ██╔════╝██╔══██╗
███████╗██╔████╔██║██║ ██║██║ ███╗██║ ███╗██║ █████╗ ██████╔╝
╚════██║██║╚██╔╝██║██║ ██║██║ ██║██║ ██║██║ ██╔══╝ ██╔══██╗
███████║██║ ╚═╝ ██║╚██████╔╝╚██████╔╝╚██████╔╝███████╗███████╗██║ ██║
╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═╝
======================================================================
usage: BobTheSmuggler.py [-h] -i EXE_FILE [-p PASSWORD] -f OUTPUT_HTML -o OUTPUT_FILENAME -t {html,svg,png,gif} [-c {7z,zip}] [-u PNG_URL] [-png PNG_FILE] [-gif GIF_FILE] [-e CUSTOM_FILE] [-v]
Hides EXE/DLL file inside an HTML/SVG file.
optional arguments:
-h, --help show this help message and exit
-i EXE_FILE Path to the EXE/DLL file.
-p PASSWORD Password for compression.
-f OUTPUT_HTML HTML Smuggled file (.html)
-o OUTPUT_FILENAME Downloaded file name (Your payload is in this file.)
-t {html,svg,png,gif} Type of embedded template.
-c {7z,zip} Compression format: 7z or zip (default: zip)
-u PNG_URL URL for the embedded PNG image.
-png PNG_FILE Path to the PNG file for embedding EXE/DLL.
-gif GIF_FILE Path to the GIF file for embedding EXE/DLL.
-e CUSTOM_FILE HTML file to clone as template.
-v, --verbose Enable verbose logging.
إذا كنت ترغب في ضغط SharpHound.exe إلى تنسيق 7z (محمي بكلمة مرور) وتخزينه في ملف HTML، يمكنك استخدام الأمر التالي:
python3 BobTheSmuggler.py -i path/to/SharpHound.exe -p 123456 -c 7z -f SharpHound.html -o SharpHound.7z -t html

لإنشاء ملف HTML مع الحمولة المضمنة المخفية داخل ملف PNG، يمكنك استخدام الأمر التالي:
python3 BobTheSmuggler.py -i <Input_file_path> -p <password_to_encrypt> -f <output_HTML_filename> -o <Output 7z/zip filename stored inside HTML> -t png test.png

ملاحظة: تأكد من استضافة ملفات PNG/GIF على CDN. (موصى به: يجب استخدام الخيار -u لتوفير رابط CDN حيث ستستضيف ملف PNG/GIF). لأغراض الاختبار، يمكنك استخدام تطبيق flask (app.py) الذي سيقوم باستضافة banner.gif و banner.png على localhost:8000
وبالمثل، يمكنك استخدام الأمر التالي لإنشاء ملف HTML مع الحمولة المضمنة المخفية داخل ملف GIF:
python3 BobTheSmuggler.py -i <Input_file_path> -p <password_to_encrypt> -f <output_HTML_filename> -o <Output 7z/zip filename stored inside HTML> -t gif test.gif

بمجرد إنشاء الصورة النهائية (PNG/GIF)، سيزداد حجم الصورة لأنها ستحتوي على ملفك المضمن.

سلسلة بسيطة بنهج مختلف. يتم ضغط ملف EXE/DLL إلى ملف .7z/.zip، ثم يتم تخزينه داخل ملف PNG/GIF. يتم استدعاء ملف PNG/GIF بواسطة JS داخل ملف SVG المضمن داخل HTML. بمجرد استدعاء JS، يقوم بتنزيل ملف PNG/ZIP، واستخراج البيانات المضغوطة المشفرة بـ XOR من أجزاء الصورة، وفك تشفير الملف، واستدعاء وظيفة التنزيل.
python3 BobTheSmuggler.py -i <Input_file_path> -p <password_to_encrypt> -f <output_HTML_filename> -o <Output 7z/zip filename stored inside HTML> -t svg -e <Custom_SVG_Template>
تمت إضافة القوالب التالية إلى هذا المشروع:

هذه الأداة مخصصة للأغراض التعليمية فقط. يُنصح المستخدمون باستخدامها فقط بطريقة تعزز التعلم والفهم. يتنصل مؤلف هذه الأداة صراحةً من أي مسؤولية عن استخدامها خارج السياقات التعليمية. المستخدمون الذين يختارون استخدام هذه الأداة لأغراض غير تعليمية يفعلون ذلك على مسؤوليتهم الشخصية، ولا يتحمل المؤلف أي مسؤولية عن أي عواقب ناتجة عن هذا الاستخدام.