Giter VIP home page Giter VIP logo

sliver-gui's Introduction

Sliver GUI

Sliver GUI client.

⚠️ THIS PROJECT IS PRE-ALPHA AND FOR DEVELOPERS ONLY ⚠️

  • The GUI client is NOT feature complete, expect bugs and missing features.
  • Not accepting any issues/bug reports at this time, however feel free to submit PRs.
  • There's no documentation or tutorials aside from this readme (and the repo wiki).

Tagged Release License: GPL v3

Install

Download the latest release and connect to a Sliver server using a standard operator profile. See the wiki for more details.

Features

  • You can click on stuff!
  • Sandboxed JavaScript scripting engine (with built-in script editor)
  • i18n Language Support (French, Spanish, Japanese, Chinese)

FAQ

Why Electron!?

Because I value my development time more than your RAM.

Are Electron Apps Secure?

I tried ¯\(ツ)/¯. Having personally written multiple exploits for Electron apps, I like to think I have a fighting chance, and I really did go thru a lot of effort to make the Sliver GUI as secure as possible (the UI code is sandboxed and I even patched all of the evals out of the protobuf code). You can read more about the application architecture here. In short:

  • The renderer process is sandboxed, and preload scripts have context isolation enabled. Methods in the main process can only be called via postMessage(), and all JSON arguments must pass JSON-Schema checks.
  • No content runs in a file:// origin, all content is served from internal Electron protocol handlers (i.e. app://).
  • A strict content content security policy (CSP) is applied to all origins (script-src does not allow unsafe-inline or unsafe-eval).
  • Nearly the entire interface is implemented via Angular data binding; there are zero calls to bypassSecurityTrustHtml().

If you're concerned about security, I also encourage you to audit the code! See the repo security policy for bounties.

Why Not a Web Interface?

Sliver clients connect using gRPC over Mutual TLS (mTLS), which is not available from within a browser. Even sandboxed, Electron also lets us implement other native app integrations that would otherwise not be possible.

Build

From the root of the git repo, to build your local platform:

npm install
cd main/workers/worker && npm install && cd ../../..
sudo npm install -g electron-packager
sudo npm install -g @angular/cli
npm run electron:local

If that works, then you should be able to do platform specific builds (publish:macos will build both x64 and arm64):

npm run publish:macos
npm run publish:windows
npm run publish:linux

You can also use publish:windows_exe to build a portable (i.e., no installer) Windows executable.

To work on i18n/translations, you'll likely need to install the ngx-i18nsupport package:

npm install -g ngx-i18nsupport

sliver-gui's People

Contributors

dependabot[bot] avatar jamesgol avatar moloch-- avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.