Interfaz gráfica Electron multiplataforma para el framework C2 Sliver, que proporciona paneles de sesiones y beacons, generación de payloads, listeners, loot y gestión de despliegue en la nube.
Sliver GUI es una aplicación de escritorio Electron multiplataforma para Sliver. Combina conexiones de backend, vistas de estado en vivo, espacios de trabajo dedicados y una consola Sliver nativa en una interfaz React construida con HeroUI, HeroUI Pro y Font Awesome.
La GUI no implementa todos los comandos u opciones del upstream. Las conexiones de operador usan mTLS; las configuraciones de operador WireGuard se reconocen pero no pueden conectarse. Consulte el informe de paridad de operador para la cobertura registrada y los documentos de características a continuación para límites específicos.
Las versiones compatibles y las dependencias bloqueadas se registran en package.json y package-lock.json. El código de la aplicación usa TypeScript estricto; los ayudantes de compilación usan módulos ES de Node.js.
npm ci --strict-allow-scripts
npx heroui-pro login
npx heroui-pro install --yes
npm run dev
Los pasos de inicio de sesión/instalación de HeroUI son necesarios para la configuración inicial de la estación de trabajo; se pueden omitir cuando HEROUI_AUTH_TOKEN ya está configurado para la instalación.
Mantenga las credenciales fuera de los archivos rastreados.
npm run dev compila y lanza la aplicación estática en
sliver://app/index.html, usando la política de seguridad de contenido de producción.
Reinicie el comando después de cambios en el código fuente; este flujo de trabajo no usa HMR.
El cliente TypeScript se instala desde el paquete npm sliver-script fijado.
No se necesita un checkout del cliente adyacente. El desarrollo ordinario de la aplicación no requiere un checkout del código fuente de Sliver; compilar la consola nativa sí lo requiere.
La raíz predeterminada del cliente Sliver es ~/.sliver-client; SLIVER_CLIENT_ROOT_DIR
puede seleccionar otra raíz. Las preferencias de la aplicación, incluidas las opciones del gráfico general, se guardan en gui/application-settings.json; el zoom del espacio de trabajo se guarda en
gui/workspace-zoom.json, y las preferencias del editor de texto en
gui/text-editor-settings.json bajo esa raíz. La GUI descubre configuraciones de operador existentes en configs/ y actualiza el
selector abierto cuando se guarda una configuración válida allí. Guarda las configuraciones seleccionadas
a través de Importar como referencias de archivo privadas en gui/operator-configs.json.
Importar y Olvidar no copian ni eliminan las configuraciones de origen.
Los colores de terminal compatibles con Ghostty se configuran en Configuración → Terminal y
se guardan en gui/ghostty/config. Los temas personalizados pertenecen a gui/ghostty/themes/;
los temas nativos de Ghostty instalados se descubren automáticamente. Consulte
apariencia de terminal y temas de Ghostty para compartir configuración, el editor Monaco, soporte de transparencia de plataforma y límites de tiempo de ejecución.
| Comando | Propósito |
|---|---|
npm run typecheck | Verifica los proyectos TypeScript de main/preload y renderer. |
npm test | Ejecuta pruebas unitarias y de componentes de Vitest. |
npm run test:watch | Ejecuta Vitest de forma interactiva. |
npm run test:e2e:electron | Compila y ejercita Electron a través de su renderer, preload e IPC. |
npm run protocol:check | Verifica el cliente fijado, la línea base upstream y los artefactos de paridad. |
npm run build | Verifica tipos y compila la salida de la aplicación en dist/. |
npm run build:console | Compila la consola Sliver nativa fijada. |
npm run package | Crea una aplicación desempaquetada bajo release/. |
npm run dist | Crea instaladores de plataforma bajo release/. |
npm run test:e2e:packaged | Verifica y prueba una aplicación desempaquetada existente contra un fixture local. |
Las pruebas unitarias y de componentes se encuentran junto a los archivos fuente; los escenarios de Electron se encuentran en
src/e2e/. Las pruebas de servidor real son verificaciones separadas y opcionales que requieren infraestructura desechable configurada. Una prueba de fixture no establece compatibilidad con servidor en vivo o paquete instalado.
La verificación de protocolo usa Go y obtiene el código fuente upstream fijado en un directorio temporal. Consulte documentación de protocolo para verificaciones de procedencia y uso de una línea base local seleccionada explícitamente.
Las compilaciones de consola y distribución requieren Go 1.27.1 y un checkout limpio de Sliver
en el commit y árbol registrados en
procedencia de consola. Colóquelo en
sliver/ o configure SLIVER_SOURCE_DIR. La compilación de la consola valida el código fuente;
no obtiene ni modifica ese checkout.
La compilación deshabilita el cambio automático de la cadena de herramientas de Go. Coloque el binario de Go requerido
en PATH o configure SLIVER_GO_BINARY con su ruta absoluta. Las compilaciones universales de consola para macOS
requieren macOS y /usr/bin/lipo.
npm run package y npm run dist preparan el tiempo de ejecución nativo, la consola y
el inventario de licencias antes del empaquetado. La salida generada bajo dist/, release/,
native/sliver-console/ y .e2e-dist/ es ignorada por Git.
La matriz de empaquetado de CI es:
| Plataforma | Paquetes | Actualizaciones automáticas |
|---|---|---|
| macOS universal | DMG y ZIP | La aplicación instalada descarga la actualización ZIP. |
| Windows x64 | Instalador NSIS y EXE portátil | Solo instalaciones NSIS; las compilaciones portátiles se actualizan manualmente. |
| Linux x64 | AppImage y DEB | Solo AppImage; los paquetes DEB se actualizan manualmente. |
Los paquetes compatibles están configurados para verificar GitHub Releases, descargar actualizaciones en segundo plano e instalar en Reiniciar para actualizar o al salir normalmente de la aplicación. Las compilaciones estables no aceptan actualizaciones preliminares. No hay ningún token de GitHub incrustado en la aplicación.