
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>