1/9 XZB-1248 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、跨平台以及多功 能的远程控制和监控工具,你可以随时随地监控和控制所有设 备。 github.com/XZB-1248/Spark [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. repo size 29.8 MB issues 16 open issues 28 closed downloads 4.1k downloads@latest 1.4k 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. Quick start https://github.com/XZB-1248/Spark https://github.com/XZB-1248/Spark/blob/master/README.ZH.md https://github.com/XZB-1248/Spark/blob/master/API.md https://github.com/XZB-1248/Spark/blob/master/API.ZH.md https://camo.githubusercontent.com/16c134fe81af67b93c8998dca47bb97f500ae1b2069ab005327a1b2f7ca75470/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f4447502d53747564696f2f536e61702e47656e7368696e3f7374796c653d666c61742d737175617265 https://camo.githubusercontent.com/afa14fef15fd64662526514014e1f9c847f94e3aa88504e1feb7adaff1f39708/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f585a422d313234382f537061726b3f7374796c653d666c61742d737175617265 https://camo.githubusercontent.com/01e852e3eb1fbdc16f93fdeb9adc4c0b8ae63d8cd1fe2ae7f698fa72e17c2d2d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d636c6f7365642f585a422d313234382f537061726b3f7374796c653d666c61742d737175617265 https://github.com/XZB-1248/Spark/releases https://github.com/XZB-1248/Spark/releases/latest 2/9 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 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$123456abcdefg 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 { "listen": ":8000", "salt": "123456abcdefg", "auth": { "username": "password" }, "log": { "level": "info", "path": "./logs", "days": 7 } } https://github.com/XZB-1248/Spark/releases 3/9 Feature/OS Windows Linux MacOSFeature/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 4/9 https://github.com/XZB-1248/Spark/blob/master/screenshots/overview.png https://github.com/XZB-1248/Spark/blob/master/screenshots/terminal.png Spark Hostname LOCALHOST Username 1248 Ping Oms CPU Usage RAM Usage _Disk Usage Terminal os windows Arch amd64. RAM 7.85 GB MAC 00:00:00:00:00:00 Function Keys LAN 0.0.0.0 0.0.0.0 Uptime 22h 53m Network 2.2 Kbps 1 /4.4 Kbps Generate client Cc Operations Terminal Process Explorer Run Desktop Screenshot Lock Logott Hibernate Suspend Restart Shutdown Offline 4/9 5/9 https://github.com/XZB-1248/Spark/blob/master/screenshots/desktop.png https://github.com/XZB-1248/Spark/blob/master/screenshots/procmgr.png 22:50 7A12Ba— Desktop 95.14 KB/s FPS: 5 GA © 127.0.0.1:3000 .o Spark Hostname Username Ping CPUUsage = RAM Usage LOCALHOST 1248, om @ = Spark 1 192.168.0.5 Disk Usage OS ‘Arch RAM = MAC LAN windows amd64--7,85GB_—_00:00:00:00:0000192.168.1.5 Process Manager Process msedge.exe BridgeCommunication.exe explorer.exe WeChatexe WeChatAppEx.exe msedge.exe msedge.exe dilhost.exe WAN 127004 Traffic O Kbps 1 / 1.6 Kbps 1 Operations Terminal ProcMgr Explorer Screenshot Desktop Lock Logott Hibernate Suspend Restart Shutdown Offline @ © 48%8 5/9 6/9 https://github.com/XZB-1248/Spark/blob/master/screenshots/explorer.png https://github.com/XZB-1248/Spark/blob/master/screenshots/overview.cpu.png File Explorer Q Selected 0 item(s), 25 item(s) in total Modify Time Download dev Download etc Download home Download lost+found Download media Download mnt Download opt Download CPU Usage: 2.07 Logical Pro Hostname VESGEEME Physical Proces: b Disk Usage OS Arch RAM MAC LAN WAN Uptime Traffic Operations LOCALHOST 1248 Oms au « windows amd64-7.85GB —_00:00:00:00:00:00 192.168.1.5 127.0.0.1 Th 11m O Kbps 1 / 0 Kbps | Terminal ProcMgr Explorer 6/9 7/9 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 https://github.com/XZB-1248/Spark/blob/master/screenshots/explorer.editor.png https://developer.android.com/ndk/downloads 8/9 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. 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 Go (License) gin-gonic/gin (MIT License) # 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 https://github.com/golang/go https://github.com/golang/go/blob/master/LICENSE https://github.com/gin-gonic/gin 9/9 imroc/req (MIT License) kbinani/screenshot (MIT License) shirou/gopsutil (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 rate limited, please try again later License BSD-2 License https://github.com/imroc/req https://github.com/kbinani/screenshot https://github.com/shirou/gopsutil https://github.com/shirou/gopsutil/blob/master/LICENSE https://github.com/gorilla/websocket https://github.com/orcaman/concurrent-map https://github.com/facebook/react https://github.com/ant-design/ant-design https://github.com/axios/axios https://github.com/xtermjs/xterm.js https://github.com/brix/crypto-js https://github.com/lwch/natpass https://starchart.cc/XZB-1248/Spark https://github.com/XZB-1248/Spark/blob/master/LICENSE