Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
vmsan — Firecracker simplificado. Inicie microVMs seguras em milissegundos, da instalação ao shell interativo em um único comando. | Kitploit
Ferramentas/GitHubGitHub/angelorc/vmsan
Segurança de Infraestrutura em NuvemSegurança de ContêineresAnálise Dinâmica (Sandboxing)Scripting e AutomaçãoVirtualização para SegurançaDevSecOps
GitHubangelorc/vmsan

vmsan

Firecracker simplificado. Inicie microVMs seguras em milissegundos, da instalação ao shell interativo em um único comando.

Ver Repositório
828há 5 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

vmsan

🔥 Conjunto de ferramentas para sandbox microVM Firecracker

npm version npm downloads bundle size install size license

Crie, gerencie e conecte-se a microVMs Firecracker isoladas a partir da linha de comando. Inicie uma VM em sandbox em milissegundos, execute comandos, transfira arquivos — sem necessidade de SSH.

📚 Leia a documentação completa em vmsan.dev

Demonstração vmsan

✨ Recursos

  • ⚡ Inicialização em milissegundos — microVMs Firecracker iniciam em < 200ms
  • 🔒 Isolamento de segurança — jailer, seccomp, cgroups e namespaces de rede por VM
  • 🖥️ Shell interativo — PTY via WebSocket com suporte total a terminal
  • 📂 Transferência de arquivos — upload e download sem SSH
  • 🐳 Imagens Docker — construa rootfs a partir de qualquer imagem OCI com --from-image
  • 🏃 Execução de comandos — execute comandos com saída em streaming, injeção de variáveis de ambiente e sudo
  • 🧩 Múltiplos runtimes — base, node22, node24, python3.13
  • 📸 Snapshots de VM — salve e restaure o estado da VM
  • 📊 Saída JSON — flag --json para scripts e automação

📋 Pré-requisitos

  • Linux (x86_64 ou aarch64) com suporte a KVM
  • Acesso root/sudo (necessário para rede com dispositivo TAP e jailer)
  • Docker (para instalações a partir da fonte, reconstruções de runtime locais e --from-image)

🚀 Instalação

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

Isso baixa e instala tudo em ~/.vmsan/:

  • Firecracker + Jailer (última versão)
  • Kernel Linux (vmlinux 6.1)
  • Rootfs Ubuntu 24.04 (convertido de squashfs para ext4)
  • CLI vmsan + agente in-VM
  • Imagens de runtime (node22, node24, python3.13) baixadas como artefatos pré-construídos

As instalações de versão padrão baixam runtimes integrados de https://artifacts.vmsan.dev/ e não exigem Docker. Instalações a partir da fonte ainda constroem runtimes localmente.

Desinstalação
root@kitploit:~
curl -fsSL https://vmsan.dev/install | bash -s -- --uninstall
Configuração de desenvolvimento

Se você quiser compilar a partir da fonte:

root@kitploit:~
# Instalar dependências
bun install

# Compilar o agente in-VM
cd agent && make install && cd ..

# Compilar a CLI
bun run build

# Vincular compilação local
mkdir -p ~/.vmsan/bin
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan

📖 Uso

root@kitploit:~
# Criar e iniciar uma VM
vmsan create --runtime node22 --memory 512 --cpus 2

# Criar uma VM a partir de uma imagem Docker
vmsan create --from-image node:22-alpine

# Listar todas as VMs
vmsan list

# Executar um comando dentro de uma VM
vmsan exec <vm-id> ls -la

# Execução interativa com PTY
vmsan exec -i <vm-id> bash

# Conectar ao shell de uma VM em execução
vmsan connect <vm-id>

# Fazer upload de um arquivo para uma VM
vmsan upload <vm-id> ./local-file.txt /remote/path/file.txt

# Fazer download de um arquivo de uma VM
vmsan download <vm-id> /remote/path/file.txt ./local-file.txt

# Criar snapshot de uma VM em execução
vmsan snapshot create <vm-id>

# Listar snapshots
vmsan snapshot list

# Restaurar uma VM a partir de um snapshot
vmsan create --snapshot <snapshot-id>

# Parar uma VM
vmsan stop <vm-id>

# Remover uma VM
vmsan remove <vm-id>

Flags globais

FlagDescrição
--jsonSaída estruturada em JSON
--verboseExibir saída detalhada de debug

Comandos

⚠️ Limitações conhecidas

  • Sem rede entre VMs (planejado para 0.4.0)
  • Sem configuração declarativa / vmsan.toml (planejado para 0.5.0)
  • Sem suporte a múltiplos hosts (planejado para 0.7.0)
  • Usa nftables com aplicação atômica de regras para isolamento de rede (desde 0.2.0)
  • Sem filtragem DNS ou SNI (planejado para 0.3.0)
  • ICMP bloqueado por padrão nas VMs (impede tunelamento ICMP)
  • UDP bloqueado por padrão, exceto DNS (impede exfiltração UDP; QUIC/HTTP3 não funcionarão)
  • NTP (UDP 123) bloqueado — kvm-clock usado para sincronização de tempo; VMs de longa duração podem apresentar desvio
  • Firewall do host (ufw/firewalld) pode precisar de regras explícitas de permissão para tráfego vmsan
  • Apenas Linux — requer suporte KVM
  • Plataforma principal: Ubuntu 24.04 LTS

🛠️ Desenvolvimento

root@kitploit:~
# Compilar
bun run build

# Vincular compilação local
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan

# Modo de desenvolvimento (watch)
bun run dev

# Executar testes
bun run test

# Verificação de tipos
bun run typecheck

# Lint e formatação
bun run lint
bun run fmt

🏗️ Arquitetura

root@kitploit:~
bin/            Ponto de entrada da CLI
src/
  commands/     Subcomandos da CLI
  services/     Cliente Firecracker, cliente agente, serviço de VM
  lib/          Utilitários (jailer, rede, shell, logging)
  errors/       Sistema de erros tipados
  generated/    Definições de tipos da API do Firecracker
agent/          Agente Go que executa dentro da VM
docs/           Site de documentação (vmsan.dev)

Como funciona

  1. vmsan usa Firecracker para criar microVMs leves com um jailer para isolamento de segurança
  2. Cada VM recebe um dispositivo de rede TAP com sua própria sub-rede /30 (198.19.{slot}.0/30)
  3. Um agente baseado em Go é executado dentro da VM, expondo uma API HTTP para execução de comandos, operações com arquivos e acesso ao shell
  4. A CLI se comunica com o agente através da rede host-convidado

O estado é persistido em ~/.vmsan/:

root@kitploit:~
~/.vmsan/
  vms/          Arquivos de estado da VM (JSON)
  jailer/       Diretórios chroot
  bin/          Binário do agente
  kernels/      Imagens do kernel da VM
  rootfs/       Sistemas de arquivos raiz base
  registry/     Cache de rootfs de imagens Docker
  snapshots/    Snapshots da VM

⚖️ Comparação com outras ferramentas

Por que vmsan? O Docker compartilha o kernel do host — uma fuga de contêiner significa game over. O gVisor intercepta chamadas de sistema no espaço do usuário, reduzindo a superfície de ataque, mas não a eliminando. O Kata Containers fornece isolamento real de VM, mas requer orquestração complexa (containerd, shimv2, K8s). O Vagrant inicia VMs completas que levam mais de 30 segundos e centenas de MBs.

O vmsan oferece isolamento em nível de hardware com a superfície de ataque mínima do Firecracker (< 50k linhas de código), inicializa em milissegundos e requer configuração zero — instale e use.

📄 Licença

Apache-2.0

Publicado sob a licença APACHE-2.0. Feito por @angelorc e comunidade 💛


🤖 atualizado automaticamente com automd

Baixar ferramenta
ComandoAliasDescrição
createCriar e iniciar uma nova microVM
listlsListar todas as VMs
startIniciar uma VM parada
stopParar uma VM em execução
removermRemover uma VM
execExecutar um comando dentro de uma VM em execução
connectAbrir um shell interativo para uma VM
uploadFazer upload de arquivos para uma VM
downloadFazer download de arquivos de uma VM
networkAtualizar política de rede em uma VM em execução
snapshotGerenciar snapshots da VM (criar, listar, excluir)
doctorVerificar pré-requisitos do sistema e saúde da instalação
vmsanDockergVisorKata ContainersVagrant
Nível de isolamento✅ Hardware (KVM)❌ Kernel compartilhado⚠️ Kernel em espaço de usuário✅ Hardware (QEMU/CH)✅ Hardware (VBox/VMware)
Tempo de inicialização✅ ~125ms✅ ~50ms✅ ~5ms⚠️ ~200ms+❌ 30-60s
Complexidade de configuração✅ Um comando✅ Baixa⚠️ Média❌ Alta⚠️ Média
Modelo de segurança✅ Jailer + seccomp + cgroups + kernel dedicado⚠️ Namespaces + cgroups⚠️ Filtragem de syscalls✅ VM completa + contêineres aninhados✅ VM completa
Isolamento de rede✅ Políticas integradas (allow/deny/custom)❌ Manual (iptables)⚠️ Herdado do Docker❌ Manual⚠️ NAT/ponte
Suporte a imagens Docker✅ --from-image✅ Nativo✅ Via runsc✅ Via containerd❌
Shell interativo✅ WebSocket PTY✅ exec✅ exec✅ exec✅ SSH
Transferência de arquivos✅ Upload/download integrados✅ cp✅ cp✅ cp⚠️ Pastas compartilhadas / SCP
Saída JSON✅ Todos os comandos⚠️ Parcial❌⚠️ Parcial❌
Sobrecarga de memória✅ ~5 MiB por VM✅ ~1 MiB⚠️ ~15 MiB❌ ~30 MiB+❌ 512 MiB+
Melhor para🏆 Sandbox de IA, código não confiável, multi-inquilinoCargas de trabalho geraisHardening de K8sConformidade em K8sAmbientes de desenvolvimento