XZB-1248/Spark
Fork: 505 Star: 1852 (更新于 2024-12-01 12:40:12)
license: BSD-2-Clause
Language: Go .
✨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、跨平台以及多功能的远程控制和监控工具,你可以随时随地监控和控制所有设备。
最后发布版本: v0.2.1 ( 2023-02-01 17:37:57)
[English] [中文] [API Document] [API文档]
Spark
Spark is a free, safe, open-source, web-based, cross-platform and full-featured RAT (Remote Administration Tool) that allow you to control all your devices via browser anywhere.
We won't collect any data, thus the server will never self-upgrade. Your clients will only communicate with your server forever.
Disclaimer
THIS PROJECT, ITS SOURCE CODE, AND ITS RELEASES SHOULD ONLY BE USED FOR EDUCATIONAL PURPOSES.
ALL ILLEGAL USAGE IS PROHIBITED!
YOU SHALL USE THIS PROJECT AT YOUR OWN RISK.
THE AUTHORS AND DEVELOPERS ARE NOT RESPONSIBLE FOR ANY DAMAGE CAUSED BY YOUR MISUSE OF THIS PROJECT.
YOUR DATA IS PRICELESS. THINK TWICE BEFORE YOU CLICK ANY BUTTON OR ENTER ANY COMMAND.
If you found any security vulnerability, please DO NOT open an issue and immediately contact me via email.
Quick start
binary
- Download executable from releases.
- Following this to complete configuration.
- Run executable and browse to
http://IP:Port
to access the web interface. - Generate a client and run it on your target device.
- Enjoy!
Configuration
Configuration file config.json
should be placed in the same directory as the executable file.
Example:
{
"listen": ":8000",
"salt": "123456abcdef",
"auth": {
"username": "password"
},
"log": {
"level": "info",
"path": "./logs",
"days": 7
}
}
-
listen
required
, format:IP:Port
-
salt
required
, length <= 24- after modification, you need to re-generate all clients
-
auth
optional
, format:username:password
- hashed-password is highly recommended
- format:
$algorithm$hashed-password
, example:$sha256$11223344556677AABBCCDDEEFF
- supported algorithms:
sha256
,sha512
,bcrypt
- if you don't follow the format, password will be treated as plain-text
-
log
optional
-
level
optional
, possible value:disable
,fatal
,error
,warn
,info
,debug
-
path
optional
, default:./logs
-
days
optional
, default:7
-
Features
Feature/OS | Windows | Linux | MacOS |
---|---|---|---|
Process manager | ✔ | ✔ | ✔ |
Kill process | ✔ | ✔ | ✔ |
Network traffic | ✔ | ✔ | ✔ |
File explorer | ✔ | ✔ | ✔ |
File transfer | ✔ | ✔ | ✔ |
File editor | ✔ | ✔ | ✔ |
Delete file | ✔ | ✔ | ✔ |
Code highlight | ✔ | ✔ | ✔ |
Desktop monitor | ✔ | ✔ | ✔ |
Screenshot | ✔ | ✔ | ✔ |
OS info | ✔ | ✔ | ✔ |
Terminal | ✔ | ✔ | ✔ |
* Shutdown | ✔ | ✔ | ✔ |
* Reboot | ✔ | ✔ | ✔ |
* Log off | ✔ | ❌ | ✔ |
* Sleep | ✔ | ❌ | ✔ |
* Hibernate | ✔ | ❌ | ❌ |
* Lock screen | ✔ | ❌ | ❌ |
- Blank cell means the situation is not tested yet.
- The Star symbol means the function may need administration or root privilege.
Screenshots
Development
note
There are three components in this project, so you have to build them all.
Go to Quick start if you don't want to make yourself boring.
- Client
- Server
- Front-end
If you want to make client support OS except linux and windows, you should install some additional C compiler.
For example, to support android, you have to install Android NDK.
tutorial
# Clone this repository.
$ git clone https://github.com/XZB-1248/Spark
$ cd ./Spark
# Here we're going to build front-end pages.
$ cd ./web
# Install all dependencies and build.
$ npm install
$ npm run build-prod
# Embed all static resources into one single file by using statik.
$ cd ..
$ go install github.com/rakyll/statik
$ statik -m -src="./web/dist" -f -dest="./server/embed" -p web -ns web
# Now we should build client.
# When you're using unix-like OS, you can use this.
$ mkdir ./built
$ go mod tidy
$ go mod download
$ ./scripts/build.client.sh
# Finally we're compiling the server side.
$ mkdir ./releases
$ ./scripts/build.server.sh
Then create a new directory with a name you like.
Copy executable file inside releases
to that directory.
Copy the whole built
directory to that new directory.
Copy configuration file mentioned above to that new directory.
Finally, run the executable file in that directory.
Custom Features
If you need to customize some features, please contact me via i@1248.ink.
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
-
gin-gonic/gin (MIT License)
-
imroc/req (MIT License)
-
kbinani/screenshot (MIT License)
-
gorilla/websocket (BSD-2-Clause License)
-
orcaman/concurrent-map (MIT License)
Front-end
-
React (MIT License)
-
Ant-Design (MIT License)
-
axios (MIT License)
-
xterm.js (MIT License)
-
crypto-js (MIT License)
Acknowledgements
- natpass (MIT License)
- Image difference algorithm inspired by natpass.
Stargazers over time
License
最近版本更新:(数据更新于 2024-09-27 04:34:51)
2023-02-01 17:37:57 v0.2.1
2022-11-01 13:11:36 v0.2.0
2022-10-21 23:40:20 v0.1.9
2022-10-17 23:21:15 v0.1.8
2022-10-15 12:57:44 v0.1.7
2022-10-09 08:06:59 v0.1.6
2022-09-20 10:36:55 v0.1.5
2022-09-11 00:05:22 v0.1.4
2022-07-09 12:19:13 v0.1.3
2022-06-19 21:52:41 v0.1.2
主题(topics):
dashboard, go, golang, rat, remote-access-tool, remote-admin-tool, remote-administration-tool, remote-control, server-monitoring, shell, spark, webshell
XZB-1248/Spark同语言 Go最近更新仓库
2024-12-22 07:52:58 navidrome/navidrome
2024-12-21 20:15:12 SagerNet/sing-box
2024-12-21 03:25:54 SpecterOps/BloodHound
2024-12-19 23:11:24 shadow1ng/fscan
2024-12-19 21:50:56 minio/minio
2024-12-19 10:04:39 istio/istio