Giter Club home page Giter Club 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 ../../..
npm install -g electron-packager
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 moloch-- 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.