推荐一个 GitHub 开源项目 XZB-1248/Spark,该项目在 GitHub 有超过 600 Star,用一句话介绍该项目就是:“✨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、跨平台以及多功能的远程控制和监控工具,可以随时随地监控和控制所有设备。”。
- 基于 web,只要是现代浏览器,基本上都能跑
- 提供 API,可以让你自己远程控制设备
- 全平台支持,目前支持 macOS ,linux ,windows
- 私有化部署,不会有任何数据传输到外网,服务端不包含自动更新
- 支持 web shell,也是支持全平台(不是 Guacamole !)
- 文件管理,文件上传,打包下载,文本编辑,代码高亮,图片查看
- 系统信息,MAC ,WAN ,LAN ,内存,CPU ,磁盘,带宽吞吐等
- 基本功能,关机、重启、注销、睡眠,均由系统 API 实现,不是运行命令
- 设备截屏( windows 下需要用户权限,计划任务或者服务没法用)
- 进程管理,目前只有结束进程,查看进程和进程 PID 等功能
- All in one,go 编写,不需要安装任何环境
以下是 Spark 项目的部分使用页面。
1、设备列表及操作列表
2、登录机器 Shell 执行命令
3、桌面远程访问
4、远程设备的进程管理
5、远程设备文件管理
Spark 完全基于浏览器 UI 进行管理,所以在任何的设备上安装对应的 Agent 就可以通过浏览器进行远程的控制和管理。
以下是该项目 Star 趋势图(代表项目的活跃程度):
通过下载二进制的文件即可快速开始试用:
- 下载服务端,按照配置文件说明,设置好配置文件。
- 运行服务端,访问IP:端口,例如 http://localhost:8000/ 。
- 在管理页面中生成客户端,并部署到设备上。
配置文件
在服务端的根目录下,创建config.json文件,按照以下格式填写:
{
"listen": ":8000",
"salt": "123456abcdef",
"auth": {
"username": "password"
},
"log": {
"level": "info",
"path": "./logs",
"days": 7
}
}
- listen 必填,格式为 IP:端口
- salt 必填,修改后需要重新部署客户端,长度不大于24
- auth 选填,格式为 用户名:密码 - 密码强烈建议使用hash加密 - 格式为$算法$密文,例如$sha256$11223344556677AABBCCDDEEFF - 支持的算法有:sha256,sha512和bcrypt - 如果不按照格式填写,将会被视为明文密码
- log 选填,日志配置 - level 选填,可选值:disable, fatal, error, warn, info, debug - path 选填,默认为./logs - days 选填,默认为7
目前 Spark 支持主流的三个系统 Windows、Linux、MacOS,功能基本在三个系统上都支持,有部分差异。功能列表如下图: