[English] [中文] [API Document] [API文档]
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.
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.
- Download the executable from the releases page.
- Follow the Configuration instructions.
- Run the executable and access the web interface at
http://IP:Port
. - Generate a client and run it on the target device.
- Start managing your devices!
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
}
}
listen
(required): FormatIP: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
.
- Hashed passwords are recommended (
log
(optional): Logging configuration.level
:disable
,fatal
,error
,warn
,info
,debug
.path
: Log directory (default:./logs
).days
: Log retention days (default:7
).
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.
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.
# 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
If you need to customize some features, please contact me via [email protected].
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.
-
gin-gonic/gin (MIT License)
-
imroc/req (MIT License)
-
kbinani/screenshot (MIT License)
-
gorilla/websocket (BSD-2-Clause License)
-
orcaman/concurrent-map (MIT License)
-
React (MIT License)
-
Ant-Design (MIT License)
-
axios (MIT License)
-
xterm.js (MIT License)
-
crypto-js (MIT License)
- natpass (MIT License)
- Image difference algorithm inspired by natpass.
Distributed under the BSD-2 License.