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

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

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

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

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

Категории

Все категории
Loading categories
vmsan — Firecracker упрощён. Запускайте безопасные микроВМ за миллисекунды — от установки до интерактивной оболочки одной командой. | Kitploit
Инструменты/GitHubGitHub/angelorc/vmsan
Безопасность облачной инфраструктурыБезопасность контейнеровДинамический анализ (песочница)Скриптинг и автоматизацияВиртуализация для безопасностиDevSecOps
GitHubangelorc/vmsan

vmsan

Firecracker упрощён. Запускайте безопасные микроВМ за миллисекунды — от установки до интерактивной оболочки одной командой.

Репозиторий
8285 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

vmsan

🔥 Инструментарий для песочницы Firecracker microVM

npm version npm downloads bundle size install size license

Создавайте, управляйте и подключайтесь к изолированным microVM с помощью Firecracker прямо из командной строки. Загрузите изолированную VM за миллисекунды, выполняйте команды, передавайте файлы — без SSH.

📚 Полная документация на vmsan.dev

vmsan demo

✨ Возможности

  • ⚡ Загрузка за миллисекунды — microVM Firecracker стартуют менее чем за 200 мс
  • 🔒 Изоляция безопасности — jailer, seccomp, cgroups и отдельные сетевые пространства имён для каждой VM
  • 🖥️ Интерактивная оболочка — WebSocket PTY с полной поддержкой терминала
  • 📂 Передача файлов — загрузка и скачивание без SSH
  • 🐳 Docker-образы — создание rootfs из любого OCI-образа с помощью --from-image
  • 🏃 Выполнение команд — запуск команд с потоковым выводом, инъекцией переменных окружения и sudo
  • 🧩 Несколько сред выполнения — base, node22, node24, python3.13
  • 📸 Снимки VM — сохранение и восстановление состояния VM
  • 📊 Вывод в JSON — флаг --json для скриптов и автоматизации

📋 Предварительные требования

  • Linux (x86_64 или aarch64) с поддержкой KVM
  • Доступ root/sudo (требуется для настройки сетевых устройств TAP и jailer)
  • Docker (для установки из исходников, локальной пересборки сред выполнения и --from-image)

🚀 Установка

root@kitploit:~
curl -fsSL https://vmsan.dev/install | bash

Эта команда загружает и устанавливает всё в ~/.vmsan/:

  • Firecracker + Jailer (последний релиз)
  • Ядро Linux (vmlinux 6.1)
  • Корневая файловая система Ubuntu 24.04 (преобразована из squashfs в ext4)
  • CLI vmsan + внутри-VM агент
  • Образы сред выполнения (node22, node24, python3.13) загружаются как предварительно собранные артефакты

При установке стандартного релиза встроенные среды выполнения загружаются с https://artifacts.vmsan.dev/ и не требуют Docker. При установке из исходников среды выполнения собираются локально.

Удаление
root@kitploit:~
curl -fsSL https://vmsan.dev/install | bash -s -- --uninstall
Настройка разработки

Если вы хотите собрать из исходников:

root@kitploit:~
# Установка зависимостей
bun install

# Сборка агента внутри VM
cd agent && make install && cd ..

# Сборка CLI
bun run build

# Связывание локальной сборки
mkdir -p ~/.vmsan/bin
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan

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

root@kitploit:~
# Создать и запустить VM
vmsan create --runtime node22 --memory 512 --cpus 2

# Создать VM из Docker-образа
vmsan create --from-image node:22-alpine

# Список всех VM
vmsan list

# Выполнить команду внутри VM
vmsan exec <vm-id> ls -la

# Интерактивное выполнение с PTY
vmsan exec -i <vm-id> bash

# Подключиться к оболочке запущенной VM
vmsan connect <vm-id>

# Загрузить файл в VM
vmsan upload <vm-id> ./local-file.txt /remote/path/file.txt

# Скачать файл из VM
vmsan download <vm-id> /remote/path/file.txt ./local-file.txt

# Создать снимок запущенной VM
vmsan snapshot create <vm-id>

# Список снимков
vmsan snapshot list

# Восстановить VM из снимка
vmsan create --snapshot <snapshot-id>

# Остановить VM
vmsan stop <vm-id>

# Удалить VM
vmsan remove <vm-id>

Глобальные флаги

ФлагОписание
--jsonВывод структурированного JSON
--verboseПоказать подробный отладочный вывод

Команды

⚠️ Известные ограничения

  • Нет сетевого взаимодействия между VM (планируется в 0.4.0)
  • Нет декларативной конфигурации / vmsan.toml (планируется в 0.5.0)
  • Нет поддержки нескольких хостов (планируется в 0.7.0)
  • Использует nftables с атомарным применением правил для сетевой изоляции (начиная с 0.2.0)
  • Нет фильтрации DNS или SNI (планируется в 0.3.0)
  • ICMP по умолчанию заблокирован из VM (предотвращает ICMP-туннелирование)
  • UDP по умолчанию заблокирован, кроме DNS (предотвращает эксфильтрацию по UDP; QUIC/HTTP3 работать не будут)
  • NTP (UDP 123) заблокирован — для синхронизации времени используется kvm-clock, долгоживущие VM могут дрейфовать
  • Брандмауэр хоста (ufw/firewalld) может требовать явных правил разрешения для трафика vmsan
  • Только Linux — требуется поддержка KVM
  • Основная платформа: Ubuntu 24.04 LTS

🛠️ Разработка

root@kitploit:~
# Сборка
bun run build

# Связывание локальной сборки
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan

# Режим разработки (слежение)
bun run dev

# Запуск тестов
bun run test

# Проверка типов
bun run typecheck

# Линтинг и форматирование
bun run lint
bun run fmt

🏗️ Архитектура

root@kitploit:~
bin/            Точка входа CLI
src/
  commands/     Подкоманды CLI
  services/    Клиент Firecracker, клиент агента, сервис VM
  lib/         Утилиты (jailer, сеть, оболочка, логирование)
  errors/      Система типизированных ошибок
  generated/   Определения типов API Firecracker
agent/          Go-агент, работающий внутри VM
docs/           Сайт документации (vmsan.dev)

Как это работает

  1. vmsan использует Firecracker для создания лёгких microVM с jailer для изоляции безопасности
  2. Каждая VM получает сетевое устройство TAP с собственной подсетью /30 (198.19.{slot}.0/30)
  3. Go-агент работает внутри VM и предоставляет HTTP API для выполнения команд, операций с файлами и доступа к оболочке
  4. CLI взаимодействует с агентом через сеть хост-гость

Состояние сохраняется в ~/.vmsan/:

root@kitploit:~
~/.vmsan/
  vms/          Файлы состояния VM (JSON)
  jailer/       Директории chroot
  bin/          Бинарный файл агента
  kernels/      Образы ядер VM
  rootfs/       Базовые корневые файловые системы
  registry/     Кэш rootfs Docker-образов
  snapshots/    Снимки VM

⚖️ Сравнение vmsan с аналогами

Почему vmsan? Docker использует общее ядро хоста — побег из контейнера означает полный компрометацию. gVisor перехватывает системные вызовы в пользовательском пространстве, уменьшая поверхность атаки, но не устраняя её полностью. Kata Containers обеспечивает настоящую изоляцию VM, но требует сложной оркестрации (containerd, shimv2, K8s). Vagrant запускает полноценные VM, которые загружаются 30+ секунд и потребляют сотни мегабайт.

vmsan даёт вам аппаратный уровень изоляции с минимальной поверхностью атаки Firecracker (< 50 тыс. строк кода), загружается за миллисекунды и требует нулевой настройки — установил и работай.

📄 Лицензия

Apache-2.0

Опубликовано под лицензией APACHE-2.0. Сделано @angelorc и сообществом 💛


🤖 автообновлено с помощью automd

Скачать инструмент
КомандаАлиасОписание
createСоздать и запустить новую microVM
listlsСписок всех VM
startЗапустить остановленную VM
stopОстановить запущенную VM
removermУдалить VM
execВыполнить команду внутри запущенной VM
connectОткрыть интерактивную оболочку для VM
uploadЗагрузить файлы в VM
downloadСкачать файлы из VM
networkОбновить сетевую политику на запущенной VM
snapshotУправление снимками VM (создать, список, удалить)
doctorПроверить системные предварительные требования и работоспособность установки
vmsanDockergVisorKata ContainersVagrant
Уровень изоляции✅ Аппаратный (KVM)❌ Общее ядро⚠️ Ядро пространства пользователя✅ Аппаратный (QEMU/CH)✅ Аппаратный (VBox/VMware)
Время запуска✅ ~125 мс✅ ~50 мс✅ ~5 мс⚠️ ~200 мс+❌ 30-60 с
Сложность настройки✅ Одна команда✅ Низкая⚠️ Средняя❌ Высокая⚠️ Средняя
Модель безопасности✅ Jailer + seccomp + cgroups + выделенное ядро⚠️ Пространства имён + cgroups⚠️ Фильтрация системных вызовов✅ Полная VM + вложенные контейнеры✅ Полная VM
Сетевая изоляция✅ Встроенные политики (разрешить/запретить/своя)❌ Вручную (iptables)⚠️ Наследуется от Docker❌ Вручную⚠️ NAT/мост
Поддержка Docker-образов✅ --from-image✅ Родная✅ Через runsc✅ Через containerd❌
Интерактивная оболочка✅ WebSocket PTY✅ exec✅ exec✅ exec✅ SSH
Передача файлов✅ Встроенная загрузка/скачивание✅ cp✅ cp✅ cp⚠️ Общие папки / SCP
Вывод JSON✅ Все команды⚠️ Частично❌⚠️ Частично❌
Накладные расходы по памяти✅ ~5 МиБ на VM✅ ~1 МиБ⚠️ ~15 МиБ❌ ~30 МиБ+❌ 512 МиБ+
Лучше всего подходит для🏆 Песочницы ИИ, недоверенный код, мультитенантОбщие рабочие нагрузкиУсиление безопасности K8sСоответствие требованиям K8sСреды разработки