Interface graphique Electron multiplateforme pour le framework C2 Sliver, offrant des tableaux de bord de sessions et de balises, la génération de payloads, des listeners, le loot et la gestion du déploiement cloud.
Télécharger la dernière version
Sliver GUI est une application de bureau Electron multiplateforme pour Sliver. Elle combine les connexions au backend, des vues d'état en direct, des espaces de travail dédiés et une console Sliver native dans une interface React construite avec HeroUI, HeroUI Pro et Font Awesome.
L'interface graphique n'implémente pas toutes les commandes ou options en amont. Les connexions d'opérateur utilisent mTLS ; les configurations d'opérateur WireGuard sont reconnues mais ne peuvent pas se connecter. Voir le rapport de parité des opérateurs pour la couverture suivie et les documents de fonctionnalités ci-dessous pour les limites spécifiques.
npm run setup:rdp installe la chaîne d'outils
Rust 1.94.1 épinglée et les cibles de plateforme.Les versions prises en charge et les dépendances verrouillées sont enregistrées dans package.json et package-lock.json. Le code de l'application utilise TypeScript strict ; les assistants de build utilisent les modules ES de Node.js.
npm ci --strict-allow-scripts
npx heroui-pro login
npx heroui-pro install --yes
npm run setup:rdp
npm run dev
Les étapes de connexion/installation de HeroUI sont nécessaires pour la configuration initiale du poste de travail ; elles peuvent être ignorées lorsque HEROUI_AUTH_TOKEN est déjà configuré pour l'installation. Gardez les identifiants hors des fichiers suivis.
npm run dev compile et lance l'application statique à l'adresse sliver://app/index.html, en utilisant la politique de sécurité du contenu de production. Il compile également l'assistant RDP hôte à partir du fork IronRDP épinglé. Les compilations TypeScript ordinaires et les tests unitaires ne nécessitent pas de compiler Rust. Redémarrez la commande après des modifications du code source ; ce flux de travail n'utilise pas le HMR.
Le client TypeScript est installé à partir du paquet npm sliver-script épinglé. Un checkout client adjacent n'est pas nécessaire. Le développement ordinaire de l'application ne nécessite pas de checkout des sources de Sliver ; la compilation de la console native, si.
La racine par défaut du client Sliver est ~/.sliver-client ; SLIVER_CLIENT_ROOT_DIR peut sélectionner une autre racine. Les préférences de l'application, y compris les options du graphique Overview, sont enregistrées dans gui/application-settings.json ; le zoom de l'espace de travail est enregistré dans gui/workspace-zoom.json, et les préférences de l'éditeur de texte dans gui/text-editor-settings.json sous cette racine. L'interface graphique découvre les configurations d'opérateur existantes dans configs/ et met à jour le sélecteur ouvert lorsqu'une configuration valide y est enregistrée. Elle enregistre les configurations sélectionnées via Import sous forme de références de fichiers privés dans gui/operator-configs.json. Import et Forget ne copient ni ne suppriment les configurations sources.
Les profils de bureau à distance et les épingles de certificat des points de terminaison résident dans gui/rdp.json. Les mots de passe sont omis par défaut, peuvent être conservés jusqu'à la fermeture de l'application, ou peuvent être chiffrés avec le stockage sécurisé du système d'exploitation. Les mots de passe persistants ne sont pas disponibles lorsque Linux sélectionne un magasin de clés non chiffré. Le transfert du presse-papiers est explicite et limité au texte ; la fermeture d'un onglet RDP déconnecte sans fermer la session du compte Windows distant.
Settings → General → Appearance → Disable window transparency désactive immédiatement le verre natif des fenêtres dans toute l'application. L'interrupteur est désactivé par défaut, la transparence reste donc activée là où elle est prise en charge. Il est enregistré avec les autres préférences de l'application et prévaut sur la transparence du terminal.
Les couleurs de terminal compatibles Ghostty sont configurées dans Settings → Terminal et enregistrées dans gui/ghostty/config. Les thèmes personnalisés appartiennent à gui/ghostty/themes/ ; les thèmes Ghostty natifs installés sont découverts automatiquement. Voir apparence du terminal et thèmes Ghostty pour le partage de configuration, l'éditeur Monaco, la prise en charge de la transparence par plateforme et les limites d'exécution.