Кроссплатформенный Electron GUI для C2-фреймворка Sliver, предоставляющий панели управления сессиями и beacon-ами, генерацию полезных нагрузок, слушатели, добычу и управление развёртыванием в облаке.
Sliver GUI — это кроссплатформенное настольное приложение на Electron для Sliver. Оно объединяет подключения к бэкенду, представления статуса в реальном времени, специализированные рабочие пространства и встроенную консоль Sliver в интерфейсе React, построенном на HeroUI, HeroUI Pro и Font Awesome.
GUI не реализует все вышестоящие команды или опции. Подключения оператора используют mTLS; конфигурации оператора WireGuard распознаются, но подключиться не могут. См. отчёт о паритете оператора для отслеживаемого покрытия и приведённые ниже документы о функциях для конкретных границ.
npm run setup:rdp устанавливает закреплённый
инструментарий Rust 1.94.1 и платформенные цели.Поддерживаемые версии и зафиксированные зависимости записаны в package.json и package-lock.json. Код приложения использует строгий TypeScript; вспомогательные скрипты сборки используют ES-модули Node.js.
npm ci --strict-allow-scripts
npx heroui-pro login
npx heroui-pro install --yes
npm run setup:rdp
npm run dev
Шаги входа/установки HeroUI необходимы для первоначальной настройки рабочей станции; их можно пропустить, если HEROUI_AUTH_TOKEN уже настроен для установки. Не храните учётные данные в отслеживаемых файлах.
npm run dev собирает и запускает статическое приложение по адресу sliver://app/index.html, используя политику безопасности содержимого production. Он также собирает хост-помощник RDP из закреплённого форка IronRDP. Обычные сборки TypeScript и модульные тесты не требуют компиляции Rust. Перезапустите команду после изменения исходного кода; этот рабочий процесс не использует HMR.
Клиент TypeScript устанавливается из закреплённого npm-пакета sliver-script. Смежная копия клиента не требуется. Обычная разработка приложения не требует копии исходного кода Sliver; для сборки нативной консоли — требует.
Корневой каталог клиента Sliver по умолчанию — ~/.sliver-client; SLIVER_CLIENT_ROOT_DIR может выбрать другой корень. Настройки приложения, включая параметры графа Overview, сохраняются в gui/application-settings.json; масштаб рабочей области сохраняется в gui/workspace-zoom.json, а настройки текстового редактора — в gui/text-editor-settings.json в этом корне. GUI обнаруживает существующие конфигурации оператора в configs/ и обновляет открытый селектор при сохранении туда действительной конфигурации. Он сохраняет конфигурации, выбранные через Import, как приватные файловые ссылки в gui/operator-configs.json. Import и Forget не копируют и не удаляют исходные конфигурации.
Профили Remote Desktop и закреплённые сертификаты конечных точек хранятся в gui/rdp.json. Пароли по умолчанию не сохраняются, могут храниться до выхода из приложения или могут быть зашифрованы с помощью защищённого хранилища операционной системы. Постоянные пароли недоступны, когда Linux выбирает незашифрованное хранилище ключей. Передача буфера обмена выполняется явно и ограничена текстом; закрытие вкладки RDP отключает соединение без выхода из учётной записи удалённого Windows.
Settings → General → Appearance → Disable window transparency немедленно отключает нативную прозрачность окон во всём приложении. Переключатель по умолчанию выключен, поэтому прозрачность остаётся включённой там, где поддерживается. Он сохраняется вместе с другими настройками приложения и имеет приоритет над прозрачностью терминала.
Цвета терминала, совместимые с Ghostty, настраиваются в Settings → Terminal и сохраняются в gui/ghostty/config. Пользовательские темы следует размещать в gui/ghostty/themes/; установленные нативные темы Ghostty обнаруживаются автоматически. См. terminal appearance and Ghostty themes для совместного использования конфигурации, редактора Monaco, поддержки прозрачности на платформах и ограничений времени выполнения.