This project is a cross-platform Remote Administration Tool (RAT) written in Python, featuring a web-based control panel and a modular client.
- Web-based Control Panel: A modern, responsive web interface for managing clients.
- Cross-Platform Client: The client is designed to run on Windows, macOS, and Linux.
- Modular Architecture: The client's functionality is broken down into modules, making it easy to extend.
- Real-time Communication: Uses WebSockets for low-latency communication between the server and clients.
- Core Features:
- Interactive Shell
- Screen Streaming
- Webcam Streaming
- File Manager (list, upload, download, remove, mkdir)
- Process Manager (list, kill)
- System Information
- Keylogger
- Persistence
.
├── modules/ # Client-side modules
├── tests/ # Unit and integration tests
├── .dockerignore # Files to ignore in Docker builds
├── .env # Environment variables (local)
├── client.py # Main client application
├── Dockerfile # Dockerfile for the server
├── Dockerfile.client # Dockerfile for the client
├── Dockerfile.test # Dockerfile for running tests
├── docker-compose.yml # Docker Compose for local development
├── README.md # This file
├── requirements.txt # Python dependencies
├── run_local.py # Script to run the server locally
└── server.py # Main server application
- Python 3.10+
- Docker and Docker Compose (for containerized setup)
-
Clone the repository:
git clone <repository-url> cd <repository-name>
-
Install dependencies:
pip install -r requirements.txt
-
Run the server:
python run_local.py
The server will be running at
http://127.0.0.1:8000. -
Run the client: In a separate terminal, run the client with the
--localflag:python client.py --local
-
Create a
.envfile: Copy the contents of the provided.envfile and replace the placeholder values with your own secrets. -
Build and run with Docker Compose:
docker compose up --build
This will build and start the server and a client container. The server will be accessible at
http://127.0.0.1:8000.
To run the tests directly on your machine, make sure you have installed the dependencies from requirements.txt and then run:
python -m pytestTo run the tests in a containerized environment, use the test service defined in docker-compose.yml:
docker compose run --rm testThis application is designed to be easily deployed to platforms like Koyeb.
-
Push your code to a GitHub repository.
-
Create a new App on Koyeb:
- Choose GitHub as the deployment method and select your repository.
- Koyeb should automatically detect the
Dockerfileand configure the build.
-
Configure Environment Variables: In the Koyeb service configuration, set the following environment variables:
ADMIN_USERNAME: Your desired admin username.ADMIN_PASSWORD: A strong and secret password.JWT_SECRET: A long, random, and secret key for signing JWTs.
-
Deploy: Koyeb will build and deploy your application. The server will be available at the public URL provided by Koyeb.
-
Client Configuration: To connect a client to your deployed server, you need to set the
SERVER_URIenvironment variable on the client machine to your Koyeb WebSocket URL (e.g.,wss://<your-app-name>-<your-org>.koyeb.app/rat).