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
provisioner — Sistema de provisionamento e compartilhamento para SBCs | Kitploit
Ferramentas/GitHubGitHub/alessandrocarminati/provisioner
Segurança de Sistemas EmbarcadosMapeamento de RedeScripting e AutomaçãoSegurança de Hardware e IoTFerramenta de Acesso RemotoAnálise de Firmware
GitHubalessandrocarminati/provisioner

provisioner

Sistema de provisionamento e compartilhamento para SBCs

Ver Repositório
7há 6 mesesAinda não revisado

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

Provisioner

Visão Geral

Provisioner é um companheiro de provisionamento focado em desenvolvedores para placas de computador de placa única (SBCs), particularmente plataformas baseadas em U-Boot.

image info

Ele fornece um ambiente autocontido para:

  • Aceder remotamente a placas
  • Automatizar fluxos de trabalho de inicialização
  • Provisionar kernels e sistemas de arquivos raiz
  • Executar operações de flashing
  • Compartilhar hardware de laboratório com segurança

O modelo operacional é intencionalmente simples:

Uma placa => Uma instância do Provisioner

O Provisioner é executado próximo ao hardware e expõe acesso remoto controlado aos desenvolvedores através de uma interface multiplexada e segura.

Componentes do Sistema

O projeto é composto por dois elementos principais:

ComponenteExecuta emFunção
ProvisionerHost / nó de labPlano de controlo, gateway serial, serviços de provisionamento
goinitPlaca alvoAgente de flashing & runtime de provisionamento

O Provisioner orquestra os fluxos de trabalho; o goinit executa-os localmente na placa.

Visão Geral da Arquitetura

O Provisioner faz a ponte entre três planos operacionais:

  1. Plano de Acesso do Utilizador: Monitor SSH e túneis
  2. Plano de Provisionamento: Entrega de artefactos via TFTP e HTTP
  3. Plano de Controlo da Placa: Consola serial e APIs goinit

Isso permite controlo contínuo desde o bootloader até ao provisionamento em tempo de execução.

Subsistemas Principais

Motor Serial

Detém a conexão física da consola e fornece:

  • Multiplexagem da consola
  • Monitor interativo
  • Automação de scripts
  • Transferência de ficheiros
  • Registo (logging)

A serial continua a ser o caminho de controlo de recurso final.

Serviços de Provisionamento

Serviços incorporados fornecem artefactos de boot:

TFTP

  • Entrega do kernel
  • Busca por proxy HTTP via nomes de ficheiro codificados

HTTP

  • Imagens do sistema de ficheiros raiz
  • Device trees
  • Artefactos do kernel
  • Binários genéricos

Plano de Controlo via SSH

O Provisioner expõe um endpoint SSH unificado que atua como camada de acesso e controlo.

Todas as interações remotas são multiplexadas numa única conexão SSH e governadas por autenticação de chave pública.

Os canais multiplexados incluem:

  • Shell do monitor
  • Túneis da consola serial
  • CLI de controlo
  • Transferências de ficheiros

Governação de acesso:

  • Identidade por chave pública
  • Ativar/desativar túnel por utilizador
  • Aplicação centralizada de permissões

O SSH transporta, portanto, ambos:

  • Tráfego do plano de gestão
  • Fluxos do plano de dados serial

Roteador Interno

No centro do modelo de E/S do Provisioner está o roteador, um artefacto de software conectável que intermedeia fluxos de terminal entre produtores e consumidores.

Todo o tráfego da consola passa por este componente, em vez de diretamente entre subsistemas.

Modelo Produtor / Consumidor

Os clientes do roteador podem:

  • Produzir dados de terminal
  • Consumir dados de terminal
  • Operar bidirecionalmente

Exemplos:

  • Sessões de monitor SSH
  • Túneis seriais
  • Scripts de automação
  • Agentes de registo
  • Utilitários de transferência

Clientes Humanos vs. Máquina

O roteador distingue entre duas variantes de cliente:

TipoCaracterísticasExemplos
HumanoInterativo, ciente de ANSITerminais SSH
MáquinaDeterminístico, E/S brutaScripts, automação

Isso permite tratamento de fluxo adaptado para usabilidade vs. determinismo.

Estratégias de Roteamento

Unicast

  • Único destinatário
  • Usado para sessões de controlo exclusivas ou transferências

Multicast

  • Entrega em broadcast
  • Usado para monitorização, registo, observadores

Vários engenheiros podem observar a mesma consola sem interferência.

Observador ANSI

Um observador conectável dedicado mitiga nuances de terminais ANSI:

  • Observa sequências de controlo
  • Normaliza artefactos de renderização
  • Previne quebra de automação

Implementado como um plugin, não como lógica hardcoded.

CLI do Monitor

O shell do monitor fornece controlo interativo da placa.

root@kitploit:~
> ?  
 ? : este texto  
 board_stat : reporta o último estado da placa goinit; a placa deve ter imprimido PROVISIONER_MGMT_*  
 echo : devolve o argumento  
 enuser : ativa o túnel para o utilizador  
 exec_assm : Carrega e executa o script assm especificado  
 exec_scr : Carrega e executa o script especificado  
 exec_state : devolve o estado do script especificado  
 exit : sai deste shell  
 filter : Comandos de filtro: digite 'filter help' para mais info  
 help : este texto  
 log_serial : copia para um ficheiro ser.log todos os dados enviados e recebidos pela serial. Nota: substitui o anterior.  
 log_serial_stop : Requer paragem do subsistema de registo serial.  
 send_serial : envia ficheiro pela serial: send_serial <file> <plain|gzip|xmodem_unix|xmodem_uboot> [dest_path]  
 send_serial_deps : verifica dependências remotas para send_serial plain/gzip: stty, dd, base64, gzip, rm (ou busybox).  
 toff : comando PDU usando SNMP para desligar a placa  
 ton : comando PDU usando SNMP para ligar a placa  
 tterm : termina a conexão do túnel serial  
 ulist : lista o estado do túnel por utilizador  
>

Subsistema de Filtro

root@kitploit:~
filter help
disponíveis: enable, disable, default, show, add, remove, help

As regras podem ser definidas em ASCII ou HEX:

root@kitploit:~
filter add ascii Hello Hello World 
filter add hex 48656c6c6f 48656c6c6f 576f726c64

Os filtros podem:

  • Intercetar dados recebidos
  • Encaminhar ou suprimir fluxos
  • Injetar respostas

Isso é útil para automação de boot e normalização da consola.

Transferência de Ficheiros via Serial

O Provisioner suporta transferência direta de ficheiros pela serial:

root@kitploit:~
send_serial <file> <mode> [dest_path]

Modos:

ModoMétodo
plainBase64
gzipBase64 + compressão
xmodem_unixXMODEM via rx
xmodem_ubootXMODEM via loadx

Dependências verificadas via:

root@kitploit:~
send_serial_deps

Utilitários necessários:

  • stty
  • dd
  • base64
  • gzip
  • rm / busybox

Integração com send_console-ng

O motor de transferência deriva do utilitário standalone send_console-ng, adaptado para o Provisioner. Ele permite transferência de ficheiros quando:

  • Não existe rede
  • Apenas um prompt de shell está disponível
  • Ferramentas de recuperação precisam ser enviadas manualmente

Capacidades:

  • Configuração remota do terminal
  • Compressão e codificação
  • Streaming em buffer
  • Sonda de dependências

Comparado ao utilitário original:

  • Dependências stdbuf e cat removidas
  • dd introduzido para portabilidade
  • Suporte XMODEM adicionado onde existem recetores

Isso permite que o Provisioner opere mesmo em estados de placa severamente degradados.

Automação & Scripting

assm: Scripts Nativos

Motor expect semelhante a assembly:

  • Correspondência de prompt
  • Respostas determinísticas
  • Execução orientada a bytes

Mais adequado para fluxos de login e boot.

exec_scr: Scripts Externos

Executa programas externos vinculados ao fluxo serial.

Modos:

ModoComportamento
lineBufferizado por linha
charFluxo de bytes

Integrações Opcionais

Google Calendar (Opcional)

Existe uma integração leve de reserva, mas não é um foco principal do projeto. Usada apenas para:

  • Acesso baseado em tempo
  • Reserva de laboratório partilhado

O Provisioner não pretende tornar-se um agendador de laboratório completo.

Build & Portabilidade

O Provisioner é escrito em Go e compila de forma cruzada facilmente.

Build nativa

root@kitploit:~
make

Exemplos de compilação cruzada

root@kitploit:~
GOARCH=arm64 make

Não são necessários toolchains externos.

Implementável em:

  • Servidores
  • Hosts de borda
  • Sistemas classe Raspberry Pi
  • Gateways de laboratório
Baixar ferramenta