Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/wangyihang/platypus
Сетевая безопасностьТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного Доступа
GitHubwangyihang/platypus

Platypus

🔨 Современный кроссплатформенный менеджер машин

Репозиторий
1.7k2279013 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Platypus

GitHub stars GitHub license GitHub Release Downloads Sponsors

Центральный узел управления парками Linux-машин. Установите агент Platypus на каждый из ваших хостов; агент подключается к вашему серверу Platypus через TLS + protobuf; с сервера вы получаете интерактивную оболочку, управление файлами и сетевые туннели на каждом управляемом хосте — через единую панель управления.

Скриншоты

Плоский интерфейс в стиле Vercel с панелью проектов, браузером хостов/слушателей/сессий, консолью для управления несколькими хостами и менеджером пользователей-администраторов. Полную галерею смотрите в docs/screenshots/. Повторный запуск make screenshots перегенерирует их из работающего приложения.

Панель обзора проекта

Архитектура

Platypus поставляется в виде двух серверных бинарников и отдельного десктопного клиента:

БинарникРоль
platypus-serverДемон. Принимает входящие соединения агентов на TLS-портах; предоставляет REST + WebSocket API для инструментов администрирования; раздаёт бинарники агентов.
platypus-agentПроцесс, запускаемый на каждом управляемом хосте. Подключается к серверу через TLS + protobuf.
platypus-desktopНативное (Wails v2) десктопное GUI. Подключается к любому доступному серверу по URL + секрету; интерфейс с вкладками для сессий, терминалов, слушателей, файлов, туннелей. См. desktop/.

Сервер — чисто API, без встроенного веб-интерфейса. Несколько десктопных клиентов могут одновременно подключаться к одному серверу.

Возможности

  • TLS + protobuf канал между агентом и сервером
  • Несколько входящих портов, чтобы парки в разных сетях могли использовать единый хаб
  • Интерактивная оболочка на каждом хосте, передаваемая через WebSocket
  • Чтение/запись/загрузка/скачивание файлов с передачей по частям
  • Сетевые туннели: проброс локального порта, проброс удалённого порта, динамический SOCKS5
  • [REST API](. /docs/RESTful.md) с аутентификацией по токену Bearer
  • Python SDK
  • Автозапуск слушателей из config.yml
  • Корректное завершение работы (сбрасывает соединения при SIGINT/SIGTERM в течение 30 с)

Документация

  • Chinese | 中文文档

Быстрый старт

Развертывание в один клик (рекомендуется)

Самый быстрый способ получить полноценную систему Platypus (включая сервер, веб-интерфейс и дистрибьютор агентов на базе MinIO) — использовать Docker Compose:

root@kitploit:~
git clone https://github.com/WangYihang/Platypus
cd Platypus
docker-compose up -d
  • Веб-интерфейс: Откройте https://localhost:9443 в браузере (контейнер поставляется с самоподписанным сертификатом; при первом посещении браузер попросит принять его).
  • Вход: bootstrap_secret записывается в /app/data/bootstrap.secret внутри контейнера при первом запуске (режим 0600). Прочитайте его с помощью docker compose exec platypus-server cat /app/data/bootstrap.secret, используйте один раз для создания первого администратора, затем удалите файл. После завершения инициализации секрет больше не принимается.
  • Добавление агентов: Нажмите «Add Agent» в интерфейсе, чтобы получить однострочную команду curl ... | sh, подписанную и привязанную к CA проекта, для развертывания агентов на ваших хостах.

Сборка из исходников

Требуются Go 1.24+ и protoc (только если вы перегенерируете protobuf код).

root@kitploit:~
git clone https://github.com/WangYihang/Platypus
cd Platypus
make build              # → . /build/{platypus-server,platypus-agent}

Другие полезные цели: make test, make lint, make snapshot (кроссплатформенная сборка через goreleaser), make help.

Разработка (pre-commit хуки)

Участникам следует установить git-хуки, чтобы gofmt / goimports / go vet / golangci-lint выполнялись перед каждым коммитом:

root@kitploit:~
pip install pre-commit   # или: pipx install pre-commit
make hooks               # однократно: настраивает .git/hooks/pre-commit
make pre-commit          # опционально: запустить все хуки сейчас для всех файлов

Сборка десктопного приложения

Требуются Node 22+, зависимости Wails CLI (wails doctor) и библиотеки WebView платформы (webkit2gtk-4.1 на Linux, WebView2 на Windows, WKWebView на macOS).

root@kitploit:~
make desktop-deps       # однократно: установка Wails CLI + пакеты pnpm
make desktop-build      # → desktop/build/bin/platypus-desktop
make desktop-dev        # режим разработки с горячей перезагрузкой

Или: используйте отдельный веб-интерфейс (без установки)

Те же страницы, те же возможности (за исключением push-уведомлений в реальном времени), работает в любом браузере:

root@kitploit:~
make web-ui             # → desktop/frontend/dist-web/ (статический bundle)
make web-ui-serve       # предпросмотр на http://localhost:8080

dist-web/ полностью статический; разместите его на GitHub Pages / S3 / nginx. Укажите в нём любой platypus-server через форму входа.

Полные заметки в desktop/README.md.

Установка из релизных бинарников

Загрузите подходящий архив для вашей ОС/архитектуры со страницы релизов, распакуйте и запустите.

Запуск с Docker

root@kitploit:~
docker build -t platypus-server .
docker run --rm -p 9443:9443 \
  -e PLATYPUS_DEV=1 \
  -v $(pwd)/config.yml:/config.yml \
  platypus-server

PLATYPUS_DEV=1 включает запасной вариант хранения KEK на диске, чтобы свежий запуск сразу «работал»; для продакшена удалите эту переменную окружения и задайте PLATYPUS_CA_KEK (32 байта в hex; openssl rand -hex 32), чтобы ключ шифрования закрытого ключа CA никогда не записывался рядом с зашифрованной базой данных.

Запуск

root@kitploit:~
./build/platypus-server                # на переднем плане; Ctrl-C для корректного завершения

Для продакшена запускайте сервер под systemd, а не вручную в фоне.

Предостережения для продакшена

  • Только один экземпляр. Верификатор непрозрачных токенов кеширует проверенные токены в LRU на процесс. Отзыв (выход, смена пароля, отзыв AAT, удаление пользователя) удаляет запись в том же процессе синхронно — но в многопоточной конфигурации сегодня нет канала инвалидации между процессами, поэтому отозванный токен может продолжать работать на других репликах до истечения TTL кеша (30 с). Не запускайте более одного platypus-server на одной БД, пока не появится межпроцессная инвалидация. Поддерживаемая конфигурация: вертикальное масштабирование + HA резервирование; горизонтальные реплики под балансировщиком нагрузки не поддерживаются.
  • PLATYPUS_CA_KEK в окружении. Закрытый ключ CA запечатан с помощью AES-256-GCM с этим 32-байтовым hex-значением. Без его установки сервер отказывается запускаться, если также не установлен PLATYPUS_DEV=1 (что включает запасной вариант хранения на диске для разработки по адресу <data-dir>/ca.kek — небезопасно для продакшена, так как шифротекст и ключ оказываются на одном томе).
  • Viewport десктопного класса, мобильная вёрстка отсутствует (пока). Веб-интерфейс рассчитан на viewport ≥ 1280px; навигационная панель / боковая панель / строка состояния занимают ~300px, оставляя тело контента в оптимальной зоне чтения 80–100 символов. Адаптивного сжатия для узких окон сейчас нет — viewport менее 1024px покажет горизонтальную прокрутку таблиц. Поддержка планшетов/телефонов в бэклоге (P4 в UX аудите), но не блокирует; администрирование — это работа за столом.
  • Учётные данные хранилища объектов. Когда дистрибьютор включён (задан distributor.store.endpoint), задавайте PLATYPUS_DISTRIBUTOR_STORE_ACCESS_KEY_ID и PLATYPUS_DISTRIBUTOR_STORE_SECRET_ACCESS_KEY вместо того, чтобы вшивать их в config.yml. Прилагаемый config.docker.yml поставляется с пустыми полями YAML по этой причине.

Использование

Топология

  • Сервер: 192.168.88.129
    • Единый TLS вход (REST API + связь с агентом + установщик): 0.0.0.0:9443
  • Управляемый хост: 192.168.88.130 (запускает platypus-agent)

Краткий обзор

Сначала запустите ./platypus-server. config.yml генерируется из assets/config.example.yml, если его нет. Значения по умолчанию разумны.

Чтобы зарегистрировать новый управляемый хост:

  1. Откройте веб-интерфейс / десктопное приложение, перейдите в проект, нажмите Add Agent.
  2. Выберите целевую ОС / архитектуру и TTL, нажмите Generate.
  3. Скопируйте однострочную команду, отображаемую в интерфейсе, и выполните её на управляемом хосте.

Сгенерированная сервером однострочная команда выглядит так:

root@kitploit:~
curl -fsSL https://<server>:9443/api/v1/install/<one-shot-token> | sh

Одноразовый токен установки истекает вскоре после выдачи и сжигается при первом успешном обращении. Возвращаемый сервером скрипт:

  • встраивает CA проекта, чтобы загрузка бинарника агента проверялась с помощью curl --cacert (без -k, без TOFU);
  • вставляет одноразовый PAT, чтобы агент мог завершить регистрацию и получить свой mTLS клиентский сертификат;
  • отказывается запускаться, если на сервере не настроен CA проекта, если только оператор явно не установит PLATYPUS_INSECURE_DOWNLOAD=1.

Не вводите вручную URL типа curl http://... для устаревшего пути /agent/<host>:<port> — этот поток удалён. Всегда генерируйте команду установки через интерфейс, чтобы она содержала якорь доверия.

Десктоп / Веб

Откройте десктопное приложение (platypus-desktop) или веб-интерфейс (make web-ui-serve), введите URL сервера и секрет, и вы внутри. Вкладки: Сессии (каждый подключившийся агент), Терминал, Файлы, Туннели, Слушатели.

Расширенное использование

  • REST API
  • Python SDK

Другие материалы

  • Презентация на KCon 2019
  • Презентация на GCSIS 2021

Участники

Этот проект существует благодаря всем людям, которые вносят вклад.

Спонсоры (Backers)

Спасибо всем нашим спонсорам! 🙏 [Стать спонсором]

Спонсоры

Поддержите этот проект, став спонсором. Ваш логотип появится здесь со ссылкой на ваш сайт. [Стать спонсором]

Скачать инструмент