XZB-1248/Spark

✨Spark is a web-based, cross-platform and full-featured Remote Administration Tool (RAT) written in Go that allows you control all your devices anywhere. Spark是一个Go编写的,网页UI、跨平台以及多功能的远程控制和监控工具,你可以随时随地监控和控制所有设备。

★ 2,395Forks 583GoGitHub ↗Compare
dashboardgogolangratremote-access-toolremote-admin-toolremote-administration-toolremote-controlserver-monitoringshellsparkwebshell

README


Spark Spark

Spark is a free, safe, open-source, web-based, cross-platform, and full-featured RAT (Remote Administration Tool) that allows you to control all your devices via browser anywhere.

✅ No data collection: Spark does not collect any user information.
✅ No auto-updates: The server will not update itself.
✅ Direct communication: Clients communicate exclusively with your server.


GitHub repo size GitHub issues GitHub closed issues
GitHub downloads GitHub release (latest by date)

⚠️ Disclaimer

THIS PROJECT, ITS SOURCE CODE, AND RELEASES SHOULD ONLY BE USED FOR EDUCATIONAL PURPOSES.

❌ Illegal usage is strictly prohibited.
❌ Authors and developers are not responsible for any misuse.
✅ Use it at your own risk.

If you find security vulnerabilities, do not open an issue. Contact me immediately via email.


🚀 Quick Start

Binary Execution

  1. Download the executable from the releases page.
  2. Follow the Configuration instructions.
  3. Run the executable and access the web interface at http://IP:Port.
  4. Generate a client and run it on the target device.
  5. Start managing your devices!

⚙️ Configuration

The configuration file config.json should be in the same directory as the executable.

Example:

{
    "listen": ":8000",
    "salt": "123456abcdef123456", 
    "auth": {
        "username": "password"
    },
    "log": {
        "level": "info",
        "path": "./logs",
        "days": 7
    }
}

Main Parameters:

  • listen (required): Format IP:Port.
  • salt (required): Max length 24 characters. After modification, all clients need to be regenerated.
  • auth (optional): Authentication credentials (username:password).
    • Hashed passwords are recommended ($algorithm$hashed-password).
    • Supported algorithms: sha256, sha512, bcrypt.
  • log (optional): Logging configuration.
    • level: disable, fatal, error, warn, info, debug.
    • path: Log directory (default: ./logs).
    • days: Log retention days (default: 7).

🛠️ Features

Feature/OS Windows Linux MacOS
Process Manager ✔ ✔ ✔
Kill Process ✔ ✔ ✔
Network Traffic ✔ ✔ ✔
File Explorer ✔ ✔ ✔
File Transfer ✔ ✔ ✔
File Editor ✔ ✔ ✔
Delete File ✔ ✔ ✔
Code Highlighting ✔ ✔ ✔
Desktop Monitor ✔ ✔ ✔
Screenshot ✔ ✔ ✔
OS Info ✔ ✔ ✔
Remote Terminal ✔ ✔ ✔
* Shutdown ✔ ✔ ✔
* Reboot ✔ ✔ ✔
* Log Off ✔ ❌ ✔
* Sleep ✔ ❌ ✔
* Hibernate ✔ ❌ ❌
* Lock Screen ✔ ❌ ❌

🚨 Functions marked with * may require administrator/root privileges.


📸 Screenshots

overview
terminal
desktop
proc_mgr
explorer
overview.cpu
explorer.editor


🔧 Development

Components

This project consists of three main components:

  • Client
  • Server
  • Front-end

For OS support beyond Linux and Windows, additional C compilers may be required. For example, to support Android, install Android NDK.

Build Guide

# Clone the repository
git clone https://github.com/XZB-1248/Spark
cd ./Spark

# Build the front-end
cd ./web
npm install
npm run build-prod

# Embed static resources
cd ..
go install github.com/rakyll/statik
statik -m -src="./web/dist" -f -dest="./server/embed" -p web -ns web

# Build the client
mkdir ./built
go mod tidy
go mod download
./scripts/build.client.sh

# Build the server
mkdir ./releases
./scripts/build.server.sh

Custom Features

If you need to customize some features, please contact me via [email protected].


Dependencies

Spark contains many third-party open-source projects.

Lists of dependencies can be found at go.mod and package.json.

Some major dependencies are listed below.

Back-end

Front-end

Acknowledgements

VPS.Town


Stargazers over time

Stargazers over time


📜 License

Distributed under the BSD-2 License.

Contributors

XZB-1248

Issues