carrotsh
A simple and lightweight server that allows clients to connect and launch a shell remotely through a browser. Uses xterm.js for the frontend and express for the backend.
Requirements
- node.js
- npm
- python
- python-cryptography
Installation
# Clone the repository
git clone https://github.com/AnnikaV9/carrotsh.git
# Change the working directory
cd carrotsh
# Install the dependencies
npm install
# Start the server
node index.js
Configuration
config.json should be used as the config file.
Available options:
- port: The port the server should listen on.
- shell: Path to the shell executable.
- shell_timeout: The max age (ms) of the spawned shell session.
- python_path: Path to your python interpreter.
- salt: The password hashing salt.
Setting a password:
npm install
will run setpass.py initially, but you will have to run it again if you change the password salt:
python3 setpass.py
Note: Before using carrotsh in production, it is highly recommended to enable TLS support: